#!/bin/python3
# rewrite this to aslo cancel-spot-instance-requests

import boto3

# Create an EC2 client
ec2_client = boto3.client('ec2')

# Retrieve instance IDs
response = ec2_client.describe_instances()


for reservation in response['Reservations'] :
  for instance in reservation['Instances']:
        print( instance)

instance_ids = [instance['InstanceId']
                 for reservation in response['Reservations']
                 for instance in reservation['Instances']]

# Terminate instances
for instance_id in instance_ids:
    print(f"Terminating instance: {instance_id}")
    ec2_client.terminate_instances(InstanceIds=[instance_id])

# Check the status of the terminated instances
terminated_instances = ec2_client.describe_instances(InstanceIds=instance_ids)
for reservation in terminated_instances['Reservations']:
    for instance in reservation['Instances']:
        print(f"Instance ID: {instance['InstanceId']}, State: {instance['State']['Name']}")