import os
import datetime
from collections import Counter
import time
import boto
# default region = us-east-1
connection = boto.connect_ec2(aws_access_key_id=os.environ.get('AWS_ACCESS_KEY'),
aws_secret_access_key=os.environ.get('AWS_SECRET_KEY'))
# TODO: for name in ci_names
filters = {'tag:Name': 'WEB*CI', 'instance-state-name': 'running'}
instances = connection.get_only_instances(filters=filters)
print('found {} instances'.format(len(instances)))
# DEBUG print(instances)
instance_launch_times = Counter()
my_instances = dict()
for i in instances:
print('{} , {} , ssh key: {} , {}, {}'.format(i.id, i.state, i.key_name, i.tags, i.launch_time))
# "2015-11-13T04:56:53.000Z"
launch_time_dt_object = datetime.datetime.strptime(i.launch_time, '%Y-%m-%dT%H:%M:%S.%fZ')
epoch_seconds = int(time.mktime(launch_time_dt_object.timetuple()))
name = i.tags.get('Name')
instance_launch_times[i.id] = epoch_seconds
my_instances[i.id] = {'ssh_key': i.key_name, 'launch_time_seconds': epoch_seconds, 'launch_time': i.launch_time,
'name': name}
for i in sorted(instance_launch_times.items(), key=lambda pair: pair[1]):
# DEBUG print('{} {}'.format(i[0], i[1]))
print('{} {} {}'.format(my_instances[i[0]].get('launch_time'), my_instances[i[0]].get('name'),
my_instances[i[0]].get('ssh_key')))
print('done')