// CreateAlertAction creates an alert at OpsGenie. func CreateAlertAction(c *gcli.Context) { cli, err := NewAlertClient(c) if err != nil { os.Exit(1) } req := alerts.CreateAlertRequest{} if val, success := getVal("message", c); success { req.Message = val } if val, success := getVal("teams", c); success { req.Teams = strings.Split(val, ",") } if val, success := getVal("recipients", c); success { req.Recipients = strings.Split(val, ",") } if val, success := getVal("alias", c); success { req.Alias = val } if val, success := getVal("actions", c); success { req.Actions = strings.Split(val, ",") } if val, success := getVal("source", c); success { req.Source = val } if val, success := getVal("tags", c); success { req.Tags = strings.Split(val, ",") } if val, success := getVal("description", c); success { req.Description = val } if val, success := getVal("entity", c); success { req.Entity = val } req.User = grabUsername(c) if val, success := getVal("note", c); success { req.Note = val } if c.IsSet("D") { req.Details = extractDetailsFromCommand(c) } printVerboseMessage("Create alert request prepared from flags, sending request to OpsGenie..") resp, err := cli.Create(req) if err != nil { fmt.Printf("%s\n", err.Error()) os.Exit(1) } printVerboseMessage("Alert created successfully.") fmt.Printf("alertId=%s\n", resp.AlertID) }