-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathalb-list.py
61 lines (49 loc) · 1.6 KB
/
alb-list.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import boto3
import pprint
region_name = "us-east-1"
profile = "prod"
session = boto3.session.Session(profile_name=profile)
elb = session.client('elbv2')
ec2 = session.client('ec2')
def gettargetgroups(arn):
tgs=elb.describe_target_groups(LoadBalancerArn=arn)
tgstring=[]
for tg in tgs["TargetGroups"]:
tgstring.append(tg["TargetGroupName"])
return tgstring
def gettargetgrouparns(arn):
tgs=elb.describe_target_groups(LoadBalancerArn=arn)
tgarns=[]
for tg in tgs["TargetGroups"]:
tgarns.append(tg["TargetGroupArn"])
return tgarns
def getinstancename(instanceid):
instances=ec2.describe_instances(Filters=[
{
'Name': 'instance-id',
'Values': [
instanceid
]
},
],)
for instance in instances["Reservations"]:
for inst in instance["Instances"]:
for tag in inst["Tags"]:
if tag['Key'] == 'Name':
return (tag['Value'])
def gettargethealth(arn):
inss=elb.describe_target_health(TargetGroupArn=arn)
instanceids=[]
for ins in inss["TargetHealthDescriptions"]:
ins["Name"]=getinstancename(ins['Target']['Id'])
instanceids.append(ins['Target']['Id'])
print (ins)
lbs = elb.describe_load_balancers(PageSize=400)
for lb in lbs["LoadBalancers"]:
print("\n"*2)
print ("-"*6)
print("Name:",lb["LoadBalancerName"])
print("Type:",lb["Type"])
print("TargetGroups:",str(gettargetgroups(lb["LoadBalancerArn"])))
for tgs in gettargetgrouparns(lb["LoadBalancerArn"]):
gettargethealth(tgs)