diff --git a/aws-experiment-launch/deploy.py b/aws-experiment-launch/deploy.py index 913827ed3..555b1614a 100644 --- a/aws-experiment-launch/deploy.py +++ b/aws-experiment-launch/deploy.py @@ -1,17 +1,21 @@ +from Queue import Queue +from threading import Thread import argparse import base64 import boto3 import datetime import json +import logging import os import sys import time -from Queue import Queue -from threading import Thread - from utils import utils +logging.basicConfig(level=logging.INFO, format='%(threadName)s %(asctime)s - %(name)s - %(levelname)s - %(message)s') +LOGGER = logging.getLogger(__file__) +LOGGER.setLevel(logging.INFO) + class InstanceResource: ON_DEMAND = 1 SPOT_INSTANCE = 2 @@ -37,17 +41,17 @@ def run_one_region_codedeploy(region_number, region_config, node_name_tag, commi filters = [{'Name': 'tag:Name','Values': [node_name_tag]}] instance_ids = utils.get_instance_ids(ec2_client.describe_instances(Filters=filters)) - print("Number of instances: %d" % len(instance_ids)) + LOGGER.info("Number of instances: %d" % len(instance_ids)) - print("Waiting for all %d instances in region %s to start running"%(len(instance_ids),region_number)) + LOGGER.info("Waiting for all %d instances in region %s to start running"%(len(instance_ids),region_number)) waiter = ec2_client.get_waiter('instance_running') waiter.wait(InstanceIds=instance_ids) - print("Waiting for all %d instances in region %s to be INSTANCE STATUS OK"%(len(instance_ids),region_number)) + LOGGER.info("Waiting for all %d instances in region %s to be INSTANCE STATUS OK"%(len(instance_ids),region_number)) waiter = ec2_client.get_waiter('instance_status_ok') waiter.wait(InstanceIds=instance_ids) - print("Waiting for all %d instances in region %s to be SYSTEM STATUS OK"%(len(instance_ids),region_number)) + LOGGER.info("Waiting for all %d instances in region %s to be SYSTEM STATUS OK"%(len(instance_ids),region_number)) waiter = ec2_client.get_waiter('system_status_ok') waiter.wait(InstanceIds=instance_ids) @@ -56,7 +60,7 @@ def run_one_region_codedeploy(region_number, region_config, node_name_tag, commi deployment_group = APPLICATION_NAME + "-" + commit_id[:6] + "-" + CURRENT_SESSION repo = REPO - print("Setting up to deploy commit_id %s on region %s" % (commit_id, region_number)) + LOGGER.info("Setting up to deploy commit_id %s on region %s" % (commit_id, region_number)) utils.get_application(codedeploy, application_name) deployment_group = utils.create_deployment_group( codedeploy, region_number, application_name, deployment_group, node_name_tag) @@ -72,7 +76,7 @@ def deploy(codedeploy, application_name, deployment_group, repo, commit_id): - commit_id: commit ID to be deployed - wait: wait until the CodeDeploy finishes """ - print("Launching CodeDeploy with commit " + commit_id) + LOGGER.info("Launching CodeDeploy with commit " + commit_id) res = codedeploy.create_deployment( applicationName=application_name, deploymentGroupName=deployment_group, @@ -87,20 +91,20 @@ def deploy(codedeploy, application_name, deployment_group, repo, commit_id): } ) deployment_id = res["deploymentId"] - print("Deployment ID: " + deployment_id) + LOGGER.info("Deployment ID: " + deployment_id) # The deployment is launched at this point, so exit unless asked to wait # until it finishes info = {'status': 'Created'} start = time.time() while info['status'] not in ('Succeeded', 'Failed', 'Stopped',) and (time.time() - start < 600.0): info = codedeploy.get_deployment(deploymentId=deployment_id)['deploymentInfo'] - print(info['status']) + LOGGER.info(info['status']) time.sleep(15) if info['status'] == 'Succeeded': - print("\nDeploy Succeeded") + LOGGER.info("\nDeploy Succeeded") else: - print("\nDeploy Failed") - print(info) + LOGGER.info("\nDeploy Failed") + LOGGER.info(info) return deployment_id def run_one_region_codedeploy_wrapper(region_number, region_config, node_name_tag, commit_id, queue): @@ -135,11 +139,11 @@ if __name__ == "__main__": commit_id = args.commit_id if not os.path.isfile(args.instance_output) or not commit_id: - print "%s does not exist" % args.instance_output + LOGGER.info("%s does not exist" % args.instance_output) sys.exit(1) with open(args.instance_output, "r") as fin: region_list = [line.split(" ") for line in fin.readlines()] region_list = [(item[0].strip(), item[1].strip()) for item in region_list] results = launch_code_deploy(region_list, args.region_config, commit_id) - print(results) + LOGGER.info(results)