-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathclb-list.py
55 lines (47 loc) · 1.59 KB
/
clb-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
import boto3
import pprint
region_name = "us-east-1"
profile = "prod"
session = boto3.session.Session(profile_name=profile)
elb = session.client('elb')
ec2 = session.client('ec2')
def getinstancename(instanceid):
instances=ec2.describe_instances(Filters=[
{
'Name': 'instance-id',
'Values': [
instanceid
]
},
],)
resultset = {}
for instance in instances["Reservations"]:
for inst in instance["Instances"]:
resultset["State"]=inst["State"]["Name"]
for tag in inst["Tags"]:
if tag['Key'] == 'Name':
resultset["Name"]=tag['Value']
# print (resultset)
return resultset
def getinstancehealth(lbname,instanceid):
instancestate=elb.describe_instance_health(
LoadBalancerName=lbname,
Instances = [{
'InstanceId' : instanceid
}]
)
return instancestate['InstanceStates'][0]['State']
lbs = elb.describe_load_balancers(PageSize=400)
for lb in lbs["LoadBalancerDescriptions"]:
print("\n"*2)
print ("-"*6)
print("Name:",lb["LoadBalancerName"])
print("HealthCheck:",lb["HealthCheck"])
print("Instance Info:")
if len(lb["Instances"]) > 0:
for instance in lb["Instances"]:
instance.update(getinstancename(instance["InstanceId"]))
instance['Health']=getinstancehealth(lb["LoadBalancerName"], instance["InstanceId"])
print (instance)
else:
print("Instance List is Empty, Or no Instance is mapped")