add logic for instance ids

pull/37/head
Minh Doan 6 years ago
parent d3b80b53d6
commit af68a7fb06
  1. 31
      aws-experiment-launch/create_instances.py

@ -35,9 +35,9 @@ def run_one_region_instances(config, region_number, number_of_instances, instanc
node_name_tag = create_instances( node_name_tag = create_instances(
config, ec2_client, region_number, int(number_of_instances)) config, ec2_client, region_number, int(number_of_instances))
print("Created %s in region %s" % (node_name_tag, region_number)) print("Created %s in region %s" % (node_name_tag, region_number))
return node_name_tag return node_name_tag, ec2_client
else: else:
return None return None, None
def create_instances(config, ec2_client, region_number, number_of_instances): def create_instances(config, ec2_client, region_number, number_of_instances):
@ -90,27 +90,34 @@ if __name__ == "__main__":
description='This script helps you start instances across multiple regions') description='This script helps you start instances across multiple regions')
parser.add_argument('--regions', type=str, dest='regions', parser.add_argument('--regions', type=str, dest='regions',
default='3', help="Supply a csv list of all regions") default='3', help="Supply a csv list of all regions")
parser.add_argument('--instances', type=str, dest='numInstances', parser.add_argument('--instances', type=str, dest='num_instance_list',
default='1', help='number of instances') default='1', help='number of instances in respective of region')
parser.add_argument('--configuration', type=str, parser.add_argument('--region_config', type=str, dest='region_config', default='configuration.txt')
dest='config', default='configuration.txt')
parser.add_argument('--instance_output', type=str, dest='instance_output', parser.add_argument('--instance_output', type=str, dest='instance_output',
default='instance_output.txt', help='the file to append or write') default='instance_output.txt', help='the file to append or write')
parser.add_argument('--instance_ids_output', type=str, dest='instance_ids_output',
default='instance_ids_output.txt', help='the file to append or write')
parser.add_argument('--append', dest='append', type=bool, default=False, parser.add_argument('--append', dest='append', type=bool, default=False,
help='append to the current instance_output') help='append to the current instance_output')
args = parser.parse_args() args = parser.parse_args()
config = utils.read_region_config(args.config) config = utils.read_region_config(args.region_config)
region_list = args.regions.split(',') region_list = args.regions.split(',')
instances_list = args.numInstances.split(',') num_instance_list = args.num_instance_list.split(',')
assert len(region_list) == len(instances_list), "number of regions: %d != number of instances per region: %d" % (len(region_list), len(instances_list)) assert(len(region_list) == len(num_instance_list),
"number of regions: %d != number of instances per region: %d" % (len(region_list), len(num_instance_list)))
with open(args.instance_output, "a" if args.append else "w") as fout: write_mode = "a" if args.append else "w"
with open(args.instance_output, write_mode) as fout, open(args.instance_ids_output, write_mode) as fout2:
for i in range(len(region_list)): for i in range(len(region_list)):
region_number = region_list[i] region_number = region_list[i]
number_of_instances = instances_list[i] number_of_instances = num_instance_list[i]
node_name_tag = run_one_region_instances(config, region_number, number_of_instances, InstanceResource.ON_DEMAND) node_name_tag, ec2_client = run_one_region_instances(config, region_number, number_of_instances, InstanceResource.ON_DEMAND)
if node_name_tag: if node_name_tag:
print("Managed to create instances for region %s" % region_number ) print("Managed to create instances for region %s" % region_number )
fout.write("%s %s\n" % (node_name_tag, region_number)) fout.write("%s %s\n" % (node_name_tag, region_number))
filters = [{'Name': 'tag:Name','Values': [node_name_tag]}]
instance_ids = utils.get_instance_ids(ec2_client.describe_instances(Filters=filters))
for instance_id in instance_ids:
fout2.write(instance_id + " " + node_name_tag + " " + region_number)
else: else:
print("Failed to create instances for region %s" % region_number ) print("Failed to create instances for region %s" % region_number )
Loading…
Cancel
Save