From 0a30a2e20881cc7d364437974cc13182aa0abf83 Mon Sep 17 00:00:00 2001 From: zhulongcheng Date: Wed, 28 Aug 2019 01:05:58 +0800 Subject: [PATCH] cmd: replace Bucket.Get & json.Unmarshal with block.DownloadMeta (#1440) Signed-off-by: zhulongcheng --- cmd/thanos/compact.go | 20 +++----------------- cmd/thanos/downsample.go | 19 ++----------------- 2 files changed, 5 insertions(+), 34 deletions(-) diff --git a/cmd/thanos/compact.go b/cmd/thanos/compact.go index 214f22b28f..b662382194 100644 --- a/cmd/thanos/compact.go +++ b/cmd/thanos/compact.go @@ -2,9 +2,7 @@ package main import ( "context" - "encoding/json" "fmt" - "io/ioutil" "os" "path" "path/filepath" @@ -356,26 +354,14 @@ func genMissingIndexCacheFiles(ctx context.Context, logger log.Logger, bkt objst return nil } - rc, err := bkt.Get(ctx, path.Join(id.String(), block.MetaFilename)) + meta, err := block.DownloadMeta(ctx, logger, bkt, id) if err != nil { // Probably not finished block, skip it. - if bkt.IsObjNotFoundErr(err) { + if bkt.IsObjNotFoundErr(errors.Cause(err)) { level.Warn(logger).Log("msg", "meta file wasn't found", "block", id.String()) return nil } - return errors.Wrapf(err, "get meta for block %s", id) - } - defer runutil.CloseWithLogOnErr(logger, rc, "block reader") - - var meta metadata.Meta - - obj, err := ioutil.ReadAll(rc) - if err != nil { - return errors.Wrap(err, "read meta") - } - - if err = json.Unmarshal(obj, &meta); err != nil { - return errors.Wrap(err, "unmarshal meta") + return errors.Wrap(err, "download metadata") } // New version of compactor pushes index cache along with data block. diff --git a/cmd/thanos/downsample.go b/cmd/thanos/downsample.go index ac9febbdce..ac5ae31bbb 100644 --- a/cmd/thanos/downsample.go +++ b/cmd/thanos/downsample.go @@ -2,10 +2,7 @@ package main import ( "context" - "encoding/json" - "io/ioutil" "os" - "path" "path/filepath" "time" @@ -148,21 +145,9 @@ func downsampleBucket( return nil } - rc, err := bkt.Get(ctx, path.Join(id.String(), block.MetaFilename)) + m, err := block.DownloadMeta(ctx, logger, bkt, id) if err != nil { - return errors.Wrapf(err, "get meta for block %s", id) - } - defer runutil.CloseWithLogOnErr(logger, rc, "block reader") - - var m metadata.Meta - - obj, err := ioutil.ReadAll(rc) - if err != nil { - return errors.Wrap(err, "read meta") - } - - if err = json.Unmarshal(obj, &m); err != nil { - return errors.Wrap(err, "unmarshal meta") + return errors.Wrap(err, "download metadata") } metas = append(metas, &m)