mirror of
https://github.com/20kaushik02/CSE546_Cloud_Computing_Projects.git
synced 2025-12-06 08:44:07 +00:00
27 lines
1.3 KiB
Python
27 lines
1.3 KiB
Python
import boto3
|
|
from pprint import pprint
|
|
|
|
# creds from ~/.aws/credentials
|
|
session = boto3.Session(profile_name="dev")
|
|
|
|
dev_ec2_client = session.client("ec2", region_name="us-east-1")
|
|
|
|
# Get all instances' information
|
|
all_instances = dev_ec2_client.describe_instances()
|
|
with open("output.txt", "w") as out_f:
|
|
pprint(all_instances, stream=out_f)
|
|
|
|
print("Capacity Reservations:", len(all_instances["Reservations"]))
|
|
for idx, reservation in enumerate(all_instances["Reservations"]):
|
|
print("Reservation", idx + 1, ":-")
|
|
print("\tGroups:", len(reservation["Groups"])) # TODO: add grp info logging
|
|
print("\tInstances:", len(reservation["Instances"]))
|
|
for inst_idx, instance in enumerate(reservation["Instances"]):
|
|
print("\tInstance", inst_idx + 1, ":-")
|
|
print("\t\tInstance ID:", instance["InstanceId"])
|
|
print("\t\tInstance state:", instance["State"]["Name"])
|
|
print(f"\t\t{instance["InstanceType"]} in {instance["Placement"]["AvailabilityZone"]}")
|
|
print(f"\t\t{instance["CpuOptions"]["CoreCount"]}vCPU, {instance["Hypervisor"]} hypervisor")
|
|
print(f"\t\t{instance["PlatformDetails"]} on {instance["RootDeviceType"]} volume")
|
|
print("\t\tPublic IP address:", instance["PublicIpAddress"] if "PublicIpAddress" in instance else "N/A")
|