(logger log.Logger)
| 290 | } |
| 291 | |
| 292 | func generateRandomSuffix(logger log.Logger) string { |
| 293 | suffix := make([]byte, 4) |
| 294 | _, err := crypto_rand.Read(suffix) |
| 295 | if err != nil { |
| 296 | level.Error(logger).Log("msg", "failed to generate random suffix", "err", err) |
| 297 | return "error" |
| 298 | } |
| 299 | return fmt.Sprintf("%2x", suffix) |
| 300 | } |
| 301 | |
| 302 | // KV implements Key-Value store on top of memberlist library. KV store has API similar to kv.Client, |
| 303 | // except methods also need explicit codec for each operation. |