// MakeStopLink creates a tokenized link for stopping func makeStopLink(region reapable.Region, id reapable.ID, tokenSecret, apiURL string) (string, error) { stop, err := token.Tokenize(tokenSecret, token.NewStopJob(region.String(), id.String())) if err != nil { log.Error("Error creating ScaleToZero link: ", err) return "", err } return makeURL(apiURL, "stop", stop), nil }
// MakeWhitelistLink creates a tokenized link for whitelisting func makeWhitelistLink(region reapable.Region, id reapable.ID, tokenSecret, apiURL string) (string, error) { whitelist, err := token.Tokenize(tokenSecret, token.NewWhitelistJob(region.String(), id.String())) if err != nil { log.Error("Error creating whitelist link: ", err) return "", err } return makeURL(apiURL, "whitelist", whitelist), nil }
// MakeTerminateLink creates a tokenized link for terminating func makeTerminateLink(region reapable.Region, id reapable.ID, tokenSecret, apiURL string) (string, error) { term, err := token.Tokenize(tokenSecret, token.NewTerminateJob(region.String(), id.String())) if err != nil { return "", err } return makeURL(apiURL, "terminate", term), nil }
// MakeIgnoreLink creates a tokenized link for ignoring for a duration func makeIgnoreLink(region reapable.Region, id reapable.ID, tokenSecret, apiURL string, duration time.Duration) (string, error) { delay, err := token.Tokenize(tokenSecret, token.NewDelayJob(region.String(), id.String(), duration)) if err != nil { return "", err } action := "delay_" + duration.String() return makeURL(apiURL, action, delay), nil }
func tagAutoScalingGroup(region reapable.Region, id reapable.ID, key, value string) (bool, error) { log.Info("Tagging AutoScalingGroup %s in %s with %s:%s", region.String(), id.String(), key, value) api := autoscaling.New(session.New(&aws.Config{Region: aws.String(region.String())})) createreq := &autoscaling.CreateOrUpdateTagsInput{ Tags: []*autoscaling.Tag{ &autoscaling.Tag{ ResourceId: aws.String(string(id)), ResourceType: aws.String("auto-scaling-group"), PropagateAtLaunch: aws.Bool(false), Key: aws.String(key), Value: aws.String(value), }, }, } _, err := api.CreateOrUpdateTags(createreq) if err != nil { return false, err } return true, nil }