// AddTagsAction adds tags to an alert at OpsGenie. func AddTagsAction(c *gcli.Context) { cli, err := NewAlertClient(c) if err != nil { os.Exit(1) } req := alerts.AddTagsAlertRequest{} if val, success := getVal("id", c); success { req.ID = val } if val, success := getVal("alias", c); success { req.Alias = val } if val, success := getVal("tags", c); success { req.Tags = strings.Split(val, ",") } req.User = grabUsername(c) if val, success := getVal("source", c); success { req.Source = val } if val, success := getVal("note", c); success { req.Note = val } printVerboseMessage("Add tag request prepared from flags, sending request to OpsGenie..") _, err = cli.AddTags(req) if err != nil { fmt.Printf("%s\n", err.Error()) os.Exit(1) } printVerboseMessage("Tags added successfully.") }
// AddTags method adds tags to an alert at OpsGenie. func (cli *OpsGenieAlertClient) AddTags(req alerts.AddTagsAlertRequest) (*alerts.AddTagsAlertResponse, error) { req.APIKey = cli.apiKey resp, err := cli.sendRequest(cli.buildPostRequest(addTagsAlertURL, req)) if resp == nil { return nil, err } defer resp.Body.Close() var addTagsAlertResp alerts.AddTagsAlertResponse if err = resp.Body.FromJsonTo(&addTagsAlertResp); err != nil { message := "Server response can not be parsed, " + err.Error() logging.Logger().Warn(message) return nil, errors.New(message) } return &addTagsAlertResp, nil }