From 885115d91df4bce3b39d0e4566d4bff16328c12d Mon Sep 17 00:00:00 2001 From: Juwon Date: Thu, 8 Aug 2024 16:46:20 +0900 Subject: [PATCH] Add feature : ASG bp check --- services/asg.py | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/services/asg.py b/services/asg.py index 987cfbc..7177c14 100644 --- a/services/asg.py +++ b/services/asg.py @@ -2,16 +2,40 @@ from models import RuleCheckResult import boto3 -# client = boto3.client("") +client = boto3.client("autoscaling") def autoscaling_group_elb_healthcheck_required(): + compliant_resources = [] + non_compliant_resources = [] + asgs = client.describe_auto_scaling_groups()["AutoScalingGroups"] + + for asg in asgs: + if asg.get("HealthCheckType", {}) == "ELB": + compliant_resources.append(asg["AutoScalingGroupARN"]) + else: + non_compliant_resources.append(asg["AutoScalingGroupARN"]) + return RuleCheckResult( - passed=False, compliant_resources=[], non_compliant_resources=[] + passed=not non_compliant_resources, + compliant_resources=compliant_resources, + non_compliant_resources=non_compliant_resources, ) def autoscaling_multiple_az(): + compliant_resources = [] + non_compliant_resources = [] + asgs = client.describe_auto_scaling_groups()["AutoScalingGroups"] + + for asg in asgs: + if len(asg.get("AvailabilityZones", 0)) > 1: + compliant_resources.append(asg["AutoScalingGroupARN"]) + else: + non_compliant_resources.append(asg["AutoScalingGroupARN"]) + return RuleCheckResult( - passed=False, compliant_resources=[], non_compliant_resources=[] + passed=not non_compliant_resources, + compliant_resources=compliant_resources, + non_compliant_resources=non_compliant_resources, )