diff --git a/README.md b/README.md index e059259..973a1a3 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ This utility tool will delete all resources from your AWS account. Whitelisted r - EC2 key pairs - EC2 AMI images - EC2 security groups +- EC2 instances - EBS snapshots - CloudWatch alarms - SNS topics diff --git a/clean.py b/clean.py index 589d36f..248c491 100755 --- a/clean.py +++ b/clean.py @@ -87,6 +87,31 @@ def delete_cloudformation_stacks(self, cf): } self._simple_delete(cf.list_stacks, cf.delete_stack, "cloudformation", "StackSummaries", "StackName", args) + def delete_ec2_instances(self, ec2): + instances = ec2.describe_instances( + Filters=[{ + 'Name': 'instance-state-name', + 'Values': ['running', 'stopped', 'stopping'], + }] + ) + instance_list = [] + for reservation in instances["Reservations"]: + for instance in reservation["Instances"]: + instance_list.append(instance["InstanceId"]) + print(instance["InstanceId"] + ":") + print("\tInstanceType: " + instance["InstanceType"]) + if instance_list: + if self._ask("\nDelete EC2 Instances?", "no"): + response = ec2.terminate_instances( + InstanceIds= + instance_list + , + DryRun=False + ) + waiter = ec2.get_waiter('instance_terminated') + waiter.wait(InstanceIds=instance_list) + #print("Response was: ", response) + def delete_key_pairs(self, ec2): self._simple_delete(ec2.describe_key_pairs, ec2.delete_key_pair, "ec2_key_pairs", "KeyPairs", "KeyName") @@ -171,6 +196,9 @@ def get_boto_session(profile_name): cleaner.delete_sns_topics(sns) cleaner.delete_amis(sts, ec2) cleaner.delete_snapshots(sts, ec2) + cleaner.delete_ec2_instances(ec2) cleaner.delete_securitygroups(ec2) cleaner.delete_key_pairs(ec2) cleaner.delete_buckets(s3, s3_resource) + +