in magenta-lib/src/main/scala/magenta/tasks/AWS.scala [427:491]
def refresh(
asg: AutoScalingGroup
)(implicit client: AutoScalingClient): AutoScalingGroup =
client
.describeAutoScalingGroups(
DescribeAutoScalingGroupsRequest
.builder()
.autoScalingGroupNames(asg.autoScalingGroupName())
.build()
)
.autoScalingGroups
.asScala
.head
def suspendAlarmNotifications(
name: String,
client: AutoScalingClient
): SuspendProcessesResponse =
client.suspendProcesses(
SuspendProcessesRequest
.builder()
.autoScalingGroupName(name)
.scalingProcesses("AlarmNotification")
.build()
)
def resumeAlarmNotifications(
name: String,
client: AutoScalingClient
): ResumeProcessesResponse =
client.resumeProcesses(
ResumeProcessesRequest
.builder()
.autoScalingGroupName(name)
.scalingProcesses("AlarmNotification")
.build()
)
trait TagRequirement
case class TagMatch(key: String, value: String) extends TagRequirement
case class TagExists(key: String) extends TagRequirement
case class TagAbsent(key: String) extends TagRequirement
def getGroupByName(
name: String,
client: AutoScalingClient,
reporter: DeployReporter
): AutoScalingGroup = {
val request = DescribeAutoScalingGroupsRequest
.builder()
.autoScalingGroupNames(name)
.maxRecords(1)
.build()
val autoScalingGroups = client
.describeAutoScalingGroups(request)
.autoScalingGroups()
.asScala
.toList
// We've asked for one record and the name must be unique per Region per account
autoScalingGroups.headOption.getOrElse(
reporter.fail(
s"Failed to identify an autoscaling group with name ${name}"
)
)
}