From 3292627ace4f6d6853a05fd2c54f3aab0b233ac7 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Thu, 25 Aug 2022 15:17:04 +0200 Subject: [PATCH] Fix mimirtool commands issued to API returning 404 (#2834) (#2835) Signed-off-by: Marco Pracucci Signed-off-by: Marco Pracucci (cherry picked from commit 13bf78a0bb0974c976200a16ae6cca87af8590c3) Co-authored-by: Marco Pracucci --- pkg/mimirtool/client/client.go | 1 - pkg/mimirtool/commands/alerts.go | 4 ++-- pkg/mimirtool/commands/rules.go | 12 ++++++------ 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/pkg/mimirtool/client/client.go b/pkg/mimirtool/client/client.go index 504303c13a7..dbb53c641e4 100644 --- a/pkg/mimirtool/client/client.go +++ b/pkg/mimirtool/client/client.go @@ -27,7 +27,6 @@ const ( ) var ( - ErrNoConfig = errors.New("No config exists for this user") ErrResourceNotFound = errors.New("requested resource not found") errConflict = errors.New("conflict with current state of target resource") ) diff --git a/pkg/mimirtool/commands/alerts.go b/pkg/mimirtool/commands/alerts.go index f9ab3c73938..995d651e742 100644 --- a/pkg/mimirtool/commands/alerts.go +++ b/pkg/mimirtool/commands/alerts.go @@ -92,7 +92,7 @@ func (a *AlertmanagerCommand) setup(k *kingpin.ParseContext) error { func (a *AlertmanagerCommand) getConfig(k *kingpin.ParseContext) error { cfg, templates, err := a.cli.GetAlertmanagerConfig(context.Background()) if err != nil { - if err == client.ErrResourceNotFound { + if errors.Is(err, client.ErrResourceNotFound) { log.Infof("no Alertmanager config currently exists for this user") return nil } @@ -130,7 +130,7 @@ func (a *AlertmanagerCommand) loadConfig(k *kingpin.ParseContext) error { func (a *AlertmanagerCommand) deleteConfig(k *kingpin.ParseContext) error { err := a.cli.DeleteAlermanagerConfig(context.Background()) - if err != nil && err != client.ErrResourceNotFound { + if err != nil && !errors.Is(err, client.ErrResourceNotFound) { return err } return nil diff --git a/pkg/mimirtool/commands/rules.go b/pkg/mimirtool/commands/rules.go index bcc13a2ed52..64457b0210d 100644 --- a/pkg/mimirtool/commands/rules.go +++ b/pkg/mimirtool/commands/rules.go @@ -343,7 +343,7 @@ func (r *RuleCommand) listRules(k *kingpin.ParseContext) error { func (r *RuleCommand) printRules(k *kingpin.ParseContext) error { rules, err := r.cli.ListRules(context.Background(), "") if err != nil { - if err == client.ErrResourceNotFound { + if errors.Is(err, client.ErrResourceNotFound) { log.Infof("no rule groups currently exist for this user") return nil } @@ -357,7 +357,7 @@ func (r *RuleCommand) printRules(k *kingpin.ParseContext) error { func (r *RuleCommand) getRuleGroup(k *kingpin.ParseContext) error { group, err := r.cli.GetRuleGroup(context.Background(), r.Namespace, r.RuleGroup) if err != nil { - if err == client.ErrResourceNotFound { + if errors.Is(err, client.ErrResourceNotFound) { log.Infof("this rule group does not currently exist") return nil } @@ -370,7 +370,7 @@ func (r *RuleCommand) getRuleGroup(k *kingpin.ParseContext) error { func (r *RuleCommand) deleteRuleGroup(k *kingpin.ParseContext) error { err := r.cli.DeleteRuleGroup(context.Background(), r.Namespace, r.RuleGroup) - if err != nil && err != client.ErrResourceNotFound { + if err != nil && !errors.Is(err, client.ErrResourceNotFound) { log.Fatalf("Unable to delete rule group from Grafana Mimir, %v", err) } return nil @@ -387,7 +387,7 @@ func (r *RuleCommand) loadRules(k *kingpin.ParseContext) error { for _, group := range ns.Groups { fmt.Printf("group: '%v', ns: '%v'\n", group.Name, ns.Namespace) curGroup, err := r.cli.GetRuleGroup(context.Background(), ns.Namespace, group.Name) - if err != nil && err != client.ErrResourceNotFound { + if err != nil && !errors.Is(err, client.ErrResourceNotFound) { return errors.Wrap(err, "load operation unsuccessful, unable to contact Grafana Mimir API") } if curGroup != nil { @@ -511,7 +511,7 @@ func (r *RuleCommand) syncRules(k *kingpin.ParseContext) error { //TODO: Skipping the 404s here might end up in an unsual scenario. // If we're unable to reach the Mimir API due to a bad URL, we'll assume no rules are // part of the namespace and provide a diff of the whole ruleset. - if err != nil && err != client.ErrResourceNotFound { + if err != nil && !errors.Is(err, client.ErrResourceNotFound) { return errors.Wrap(err, "sync operation unsuccessful, unable to contact the Grafana Mimir API") } @@ -606,7 +606,7 @@ func (r *RuleCommand) executeChanges(ctx context.Context, changes []rules.Namesp "namespace": ch.Namespace, }).Infof("deleting group") err = r.cli.DeleteRuleGroup(ctx, ch.Namespace, g.Name) - if err != nil && err != client.ErrResourceNotFound { + if err != nil && !errors.Is(err, client.ErrResourceNotFound) { return err } }