Skip to content

Commit deb558b

Browse files
authored
Merge pull request #29 from grafana/20200310_fix_404_handling
better 404 delete handling
2 parents ed1f454 + 578ff69 commit deb558b

File tree

4 files changed

+13
-65
lines changed

4 files changed

+13
-65
lines changed

pkg/client/alerts.go

Lines changed: 4 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ package client
22

33
import (
44
"context"
5-
"fmt"
65
"io/ioutil"
7-
"net/http"
86

97
"github.com/pkg/errors"
108
log "github.com/sirupsen/logrus"
@@ -26,47 +24,14 @@ func (r *CortexClient) CreateAlertmanagerConfig(ctx context.Context, cfg string,
2624
return err
2725
}
2826

29-
res, err := r.doRequest("/alertmanager/alerts", "POST", payload)
30-
if err != nil {
31-
return err
32-
}
33-
34-
defer res.Body.Close()
35-
err = checkResponse(res)
36-
if err != nil {
37-
return err
38-
}
39-
40-
return nil
27+
_, err = r.doRequest("/alertmanager/alerts", "POST", payload)
28+
return err
4129
}
4230

4331
// DeleteAlermanagerConfig deletes the users alertmanagerconfig
4432
func (r *CortexClient) DeleteAlermanagerConfig(ctx context.Context) error {
45-
res, err := r.doRequest("/alertmanager/alerts", "DELETE", nil)
46-
if err != nil {
47-
return err
48-
}
49-
50-
defer res.Body.Close()
51-
err = checkResponse(res)
52-
if err != nil {
53-
return err
54-
}
55-
body, err := ioutil.ReadAll(res.Body)
56-
57-
if err != nil {
58-
return err
59-
}
60-
61-
switch res.StatusCode {
62-
case http.StatusAccepted, http.StatusOK:
63-
return nil
64-
case http.StatusNotFound:
65-
log.Debugln("alertmanager config not found, already deleted")
66-
return nil
67-
}
68-
69-
return fmt.Errorf("error occured, %v", string(body))
33+
_, err := r.doRequest("/alertmanager/alerts", "DELETE", nil)
34+
return err
7035
}
7136

7237
// GetAlertmanagerConfig retrieves a rule group

pkg/client/rules.go

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ package client
22

33
import (
44
"context"
5-
"fmt"
65
"io/ioutil"
7-
"net/http"
86
"net/url"
97

108
"github.com/pkg/errors"
@@ -36,27 +34,8 @@ func (r *CortexClient) DeleteRuleGroup(ctx context.Context, namespace, groupName
3634
escapedNamespace := url.PathEscape(namespace)
3735
escapedGroupName := url.PathEscape(groupName)
3836

39-
res, err := r.doRequest("/api/prom/rules/"+escapedNamespace+"/"+escapedGroupName, "DELETE", nil)
40-
if err != nil {
41-
return err
42-
}
43-
44-
defer res.Body.Close()
45-
body, err := ioutil.ReadAll(res.Body)
46-
47-
if err != nil {
48-
return err
49-
}
50-
51-
switch res.StatusCode {
52-
case http.StatusAccepted, http.StatusOK:
53-
return nil
54-
case http.StatusNotFound:
55-
log.Debugln("alertmanager config not found, already deleted")
56-
return nil
57-
}
58-
59-
return fmt.Errorf("error occured, %v", string(body))
37+
_, err := r.doRequest("/api/prom/rules/"+escapedNamespace+"/"+escapedGroupName, "DELETE", nil)
38+
return err
6039
}
6140

6241
// GetRuleGroup retrieves a rule group

pkg/commands/alerts.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,5 +91,9 @@ func (a *AlertCommand) loadConfig(k *kingpin.ParseContext) error {
9191
}
9292

9393
func (a *AlertCommand) deleteConfig(k *kingpin.ParseContext) error {
94-
return a.cli.DeleteAlermanagerConfig(context.Background())
94+
err := a.cli.DeleteAlermanagerConfig(context.Background())
95+
if err != nil && err != client.ErrResourceNotFound {
96+
return err
97+
}
98+
return nil
9599
}

pkg/commands/rules.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ func (r *RuleCommand) getRuleGroup(k *kingpin.ParseContext) error {
216216

217217
func (r *RuleCommand) deleteRuleGroup(k *kingpin.ParseContext) error {
218218
err := r.cli.DeleteRuleGroup(context.Background(), r.Namespace, r.RuleGroup)
219-
if err != nil {
219+
if err != nil && err != client.ErrResourceNotFound {
220220
log.Fatalf("unable to delete rule group from cortex, %v", err)
221221
}
222222
return nil
@@ -409,7 +409,7 @@ func (r *RuleCommand) executeChanges(ctx context.Context, changes []rules.Namesp
409409
"namespace": ch.Namespace,
410410
}).Infof("deleting group")
411411
err = r.cli.DeleteRuleGroup(ctx, ch.Namespace, g.Name)
412-
if err != nil {
412+
if err != nil && err != client.ErrResourceNotFound {
413413
return err
414414
}
415415
}

0 commit comments

Comments
 (0)