MCPcopy Create free account
hub / github.com/cortexproject/cortex / ReadUserIndex

Function ReadUserIndex

pkg/util/users/index.go:69–96  ·  view source on GitHub ↗
(ctx context.Context, bkt objstore.InstrumentedBucket, logger log.Logger)

Source from the content-addressed store, hash-verified

67}
68
69func ReadUserIndex(ctx context.Context, bkt objstore.InstrumentedBucket, logger log.Logger) (*UserIndex, error) {
70 // Get the user index.
71 reader, err := bkt.WithExpectedErrs(bkt.IsObjNotFoundErr).Get(ctx, UserIndexCompressedFilename)
72 if err != nil {
73 if bkt.IsObjNotFoundErr(err) {
74 return nil, ErrIndexNotFound
75 }
76
77 return nil, errors.Wrap(err, "read user index")
78 }
79 defer runutil.CloseWithLogOnErr(logger, reader, "close user index reader")
80
81 // Read all the content.
82 gzipReader, err := gzip.NewReader(reader)
83 if err != nil {
84 return nil, ErrIndexCorrupted
85 }
86 defer runutil.CloseWithLogOnErr(logger, gzipReader, "close user index gzip reader")
87
88 // Deserialize it.
89 index := &UserIndex{}
90 d := json.NewDecoder(gzipReader)
91 if err := d.Decode(index); err != nil {
92 return nil, ErrIndexCorrupted
93 }
94
95 return index, nil
96}

Callers 5

ScanUsersMethod · 0.85

Calls 6

DecodeMethod · 0.95
CloseWithLogOnErrFunction · 0.92
GetMethod · 0.65
WrapMethod · 0.65
WithExpectedErrsMethod · 0.45
IsObjNotFoundErrMethod · 0.45