readSeedFile reads the cluster seed file from the object store.
(ctx context.Context)
| 215 | |
| 216 | // readSeedFile reads the cluster seed file from the object store. |
| 217 | func (rep *Reporter) readSeedFile(ctx context.Context) (*ClusterSeed, error) { |
| 218 | reader, _, err := rep.reader.Read(ctx, backend.ClusterSeedFileName, backend.KeyPath{}, nil) |
| 219 | if err != nil { |
| 220 | return nil, err |
| 221 | } |
| 222 | defer func() { |
| 223 | if closeErr := reader.Close(); err != nil { |
| 224 | level.Error(rep.logger).Log("msg", "failed to close reader", "err", closeErr) |
| 225 | } |
| 226 | }() |
| 227 | data, err := io.ReadAll(reader) |
| 228 | if err != nil { |
| 229 | return nil, err |
| 230 | } |
| 231 | seed, err := JSONCodec.Decode(data) |
| 232 | if err != nil { |
| 233 | return nil, backend.ErrBadSeedFile |
| 234 | } |
| 235 | return seed.(*ClusterSeed), nil |
| 236 | } |
| 237 | |
| 238 | // writeSeedFile writes the cluster seed to the object store. |
| 239 | func (rep *Reporter) writeSeedFile(ctx context.Context, seed ClusterSeed) error { |