MCPcopy Create free account
hub / github.com/coldbrewcloud/coldbrew-cli / scaleIn

Method scaleIn

commands/clusterscale/command.go:120–149  ·  view source on GitHub ↗
(autoScalingGroupName string, currentTarget, newTarget uint16)

Source from the content-addressed store, hash-verified

118}
119
120func (c *Command) scaleIn(autoScalingGroupName string, currentTarget, newTarget uint16) error {
121 console.UpdatingResource(fmt.Sprintf("Updating desired capacity to %d", newTarget), autoScalingGroupName, true)
122
123 err := c.awsClient.AutoScaling().UpdateAutoScalingGroupCapacity(autoScalingGroupName, 0, newTarget, newTarget)
124 if err != nil {
125 return fmt.Errorf("Failed to update capacity of EC2 Auto Scaling Group [%s]: %s", autoScalingGroupName, err.Error())
126 }
127
128 err = utils.Retry(func() (bool, error) {
129 autoScalingGroup, err := c.awsClient.AutoScaling().RetrieveAutoScalingGroup(autoScalingGroupName)
130 if err != nil {
131 return false, fmt.Errorf("Failed to retrieve EC2 Auto Scaling Group [%s]: %s", autoScalingGroupName, err.Error())
132 }
133 if autoScalingGroup == nil {
134 return false, fmt.Errorf("EC2 Auto Scaling Group [%s] was not found.", autoScalingGroupName)
135 }
136 if uint16(len(autoScalingGroup.Instances)) == newTarget {
137 return false, nil
138 }
139 return true, nil
140 }, time.Second, 5*time.Minute)
141 if err != nil {
142 return err
143 }
144
145 console.Blank()
146 //console.Info(fmt.Sprintf("EC2 Auto Scaling Group [%s] now has %d instances.", autoScalingGroupName, newTarget))
147
148 return nil
149}

Callers 1

RunMethod · 0.95

Implementers 8

Commandcommands/clusterstatus/command.go
Commandcommands/deploy/command.go
Commandcommands/clusterdelete/command.go
Commandcommands/delete/command.go
Commandcommands/clustercreate/command.go
Commandcommands/create/command.go
Commandcommands/clusterscale/command.go
Commandcommands/status/command.go

Calls 4

AutoScalingMethod · 0.80
ErrorMethod · 0.80

Tested by

no test coverage detected