in hq/app/aws/support/TrustedAdvisorSGOpenPorts.scala [31:66]
private[support] def parseSGOpenPortsDetail(detail: TrustedAdvisorResourceDetail): Attempt[SGOpenPortsDetail] = {
detail.metadata.asScala.toList match {
case region :: name :: SGIds(sgId, vpcId) :: protocol :: alertLevel :: port :: _ =>
Attempt.Right {
SGOpenPortsDetail(
status = detail.status,
region = detail.region,
name = name,
id = sgId,
vpcId = vpcId,
protocol = protocol,
port = port,
alertLevel = alertLevel,
isSuppressed = detail.isSuppressed
)
}
case region :: name :: sgId :: protocol :: alertLevel :: port :: _ =>
Attempt.Right {
SGOpenPortsDetail(
status = detail.status,
region = detail.region,
name = name,
id = sgId,
vpcId = "EC2 classic",
protocol = protocol,
port = port,
alertLevel = alertLevel,
isSuppressed = detail.isSuppressed
)
}
case metadata =>
Attempt.Left {
Failure(s"Could not parse SGOpenPorts from TrustedAdvisorResourceDetail with metadata $metadata", "Could not parse SGOpenPorts result", 500).attempt
}
}
}