コード例 #1
0
def main():
	params = common.parse_cli_args('List Task Definitions', [])

	command = ["ecs", "list-task-definitions"]
	result = common.run_shell_command(params.region, command)

	print json.dumps(result, indent=2)
コード例 #2
0
def main():
    # Command Line Arguments
    args = [{
        'arg': '--host',
        'dest': 'host',
        'default': 'localhost:3000',
        'help': 'Blox CSS <Host>:<Port>'
    }, {
        'arg': '--cluster',
        'dest': 'cluster',
        'default': None,
        'required': False,
        'help': 'ECS cluster name'
    }, {
        'arg': '--status',
        'dest': 'status',
        'default': None,
        'required': False,
        'help': 'ECS task status'
    }, {
        'arg': '--task-arn',
        'dest': 'task',
        'default': None,
        'required': False,
        'help': 'ECS task Arn'
    }]

    # Parse Command Line Arguments
    params = common.parse_cli_args('List Blox Tasks', args)

    run_local(params)
コード例 #3
0
ファイル: css-list-instances.py プロジェクト: tabern/blox
def main():
	# Command Line Arguments
	args = [
		{'arg':'--host', 'dest':'host', 'default':'localhost:3000', 'help':'Blox CSS <Host>:<Port>'},
		{'arg':'--cluster', 'dest':'cluster', 'default':None, 'required':False, 'help':'ECS cluster name'},
		{'arg':'--status', 'dest':'status', 'default':None, 'required':False, 'help':'EC2 instance status'},
		{'arg':'--instance-arn', 'dest':'instance', 'default':None, 'required':False, 'help':'EC2 instance Arn'}
	]
	
	# Parse Command Line Arguments
	params = common.parse_cli_args('List Blox Instances', args)

	run_local(params)
コード例 #4
0
def main():
	args = [
		{'arg':'--cluster', 'dest':'cluster', 'default':None, 'help':'ECS cluster name'},
		{'arg':'--num', 'dest':'num', 'default':None, 'help':'number of instances to increment by'}
	]
	params = common.parse_cli_args('Increment Cluster Instances', args)
	params.num = int(params.num)

	command = ["ecs", "describe-clusters", "--clusters", params.cluster]
	clusterResult = common.run_shell_command(params.region, command)
	if len(clusterResult['clusters']) == 0:
		print "Error: Cluster '%s' does not exist." % params.cluster
		sys.exit(1)

	command = ["ecs", "list-container-instances", "--cluster", params.cluster]
	containersResult = common.run_shell_command(params.region, command)
	if len(containersResult['containerInstanceArns']) == 0:
		print "Error: Cluster '%s' does not contain any instances." % params.cluster
		sys.exit(1)

	command = ["ecs", "describe-container-instances", "--cluster", params.cluster, "--container-instances", containersResult['containerInstanceArns'][0]]
	containerResult = common.run_shell_command(params.region, command)
	if len(containerResult['containerInstances']) == 0:
		print "Error: Could not retrieve container instance '%s'." % containersResult['containerInstanceArns'][0]
		sys.exit(1)

	command = ["ec2", "describe-instances", "--instance-ids", containerResult['containerInstances'][0]['ec2InstanceId']]
	instanceResult = common.run_shell_command(params.region, command)
	if len(instanceResult['Reservations']) == 0:
		print "Error: Could not retrieve ec2 instance '%s'." % containerResult['containerInstances'][0]['ec2InstanceId']
		sys.exit(1)

	amiId = instanceResult['Reservations'][0]['Instances'][0]['ImageId']
	keyName = instanceResult['Reservations'][0]['Instances'][0]['KeyName']
	securityGroup = instanceResult['Reservations'][0]['Instances'][0]['SecurityGroups'][0]['GroupId']
	subnetId = instanceResult['Reservations'][0]['Instances'][0]['SubnetId']
	instanceType = instanceResult['Reservations'][0]['Instances'][0]['InstanceType']
	instanceProfileArn = instanceResult['Reservations'][0]['Instances'][0]['IamInstanceProfile']['Arn']
	instanceProfile = None

	instanceProfileRegex = re.match('(.+)\/(.+)', instanceProfileArn)
	if instanceProfileRegex != None:
		instanceProfile = instanceProfileRegex.group(2)

	userDataRaw = "#!/bin/bash\necho ECS_CLUSTER=%s >> /etc/ecs/ecs.config\n" % params.cluster
	userData = base64.b64encode(userDataRaw)

	for i in range(params.num):
		command = ["ec2", "run-instances", "--image-id", amiId, "--instance-type", instanceType, "--user-data", userData, "--iam-instance-profile", "Name=\"%s\"" % instanceProfile, "--security-group-ids", securityGroup, "--key-name", keyName]
		result = common.run_shell_command(params.region, command)
		print "Created instance '%s'." % result['Instances'][0]['InstanceId']
コード例 #5
0
def main():
	args = [
		{'arg':'--file', 'dest':'file', 'default':None, 'help':'path to task definition file'}
	]
	params = common.parse_cli_args('Register Task Definition', args)

	if not os.path.isfile(params.file):
		print "Error: File path '%s' does not exist." % params.file
		sys.exit(1)

	command = ["ecs", "register-task-definition", "--cli-input-json", "file://%s" % params.file]
	result = common.run_shell_command(params.region, command)

	print json.dumps(result, indent=2)
コード例 #6
0
def main(argv):
    # Command Line Arguments
    args = [{
        'arg': '--apigateway',
        'dest': 'apigateway',
        'default': None,
        'type': 'boolean',
        'help': 'Call API Gateway endpoint'
    }]
    if '--apigateway' in argv:
        args.extend([{
            'arg': '--stack',
            'dest': 'stack',
            'default': None,
            'help': 'CloudFormation stack name'
        }])
    else:
        args.extend([{
            'arg': '--host',
            'dest': 'host',
            'default': 'localhost:2000',
            'help': 'Blox Scheduler <Host>:<Port>'
        }])
    args.extend([{
        'arg': '--environment',
        'dest': 'environment',
        'default': None,
        'help': 'Blox environment name'
    }])
    args.extend([{
        'arg': '--cluster',
        'dest': 'cluster',
        'default': None,
        'help': 'ECS cluster name'
    }])
    args.extend([{
        'arg': '--task-definition',
        'dest': 'taskDef',
        'default': None,
        'help': 'ECS task definition arn'
    }])

    # Parse Command Line Arguments
    params = common.parse_cli_args('Create Blox Environment', args)

    if params.apigateway:
        run_apigateway(params)
    else:
        run_local(params)
コード例 #7
0
ファイル: blox-create-deployment.py プロジェクト: tabern/blox
def main(argv):
	# Command Line Arguments
	args = [{'arg':'--apigateway', 'dest':'apigateway', 'default':None, 'type':'boolean', 'help':'Call API Gateway endpoint'}]
	if '--apigateway' in argv:
		args.extend([{'arg':'--stack', 'dest':'stack', 'default':None, 'help':'CloudFormation stack name'}])
	else:
		args.extend([{'arg':'--host', 'dest':'host', 'default':'localhost:2000', 'help':'Blox Scheduler <Host>:<Port>'}])
	args.extend([{'arg':'--environment', 'dest':'environment', 'default':None, 'help':'Blox environment name'}])
	args.extend([{'arg':'--deployment-token', 'dest':'token', 'default':None, 'help':'Blox deployment token'}])

	# Parse Command Line Arguments
	params = common.parse_cli_args('Create Blox Deployment', args)

	if params.apigateway:
		run_apigateway(params)
	else:
		run_local(params)
コード例 #8
0
ファイル: blox-list-environments.py プロジェクト: tabern/blox
def main(argv):
	# Command Line Arguments
	args = [{'arg':'--apigateway', 'dest':'apigateway', 'default':None, 'type':'boolean', 'help':'Call API Gateway endpoint'}]
	if '--apigateway' in argv:
		args.extend([{'arg':'--stack', 'dest':'stack', 'default':None, 'help':'CloudFormation stack name'}])
	else:
		args.extend([{'arg':'--host', 'dest':'host', 'default':'localhost:2000', 'help':'Blox Scheduler <Host>:<Port>'}])
	args.extend([{'arg':'--environment', 'dest':'environment', 'default':None, 'required':False, 'help':'Blox environment name'}])
	args.extend([{'arg':'--cluster', 'dest':'cluster', 'default':None, 'required':False, 'help':'ECS cluster name'}])

	# Parse Command Line Arguments
	params = common.parse_cli_args('List Blox Environments', args)

	if params.apigateway:
		run_apigateway(params)
	else:
		run_local(params)
コード例 #9
0
def main():
    args = [{
        'arg': '--file',
        'dest': 'file',
        'default': None,
        'help': 'path to task definition file'
    }]
    params = common.parse_cli_args('Register Task Definition', args)

    if not os.path.isfile(params.file):
        print "Error: File path '%s' does not exist." % params.file
        sys.exit(1)

    command = [
        "ecs", "register-task-definition", "--cli-input-json",
        "file://%s" % params.file
    ]
    result = common.run_shell_command(params.region, command)

    print json.dumps(result, indent=2)
コード例 #10
0
def main(argv):
    # Command Line Arguments
    args = [{'arg': '--apigateway', 'dest': 'apigateway', 'default': None, 'type': 'boolean',
             'help': 'Call API Gateway endpoint'}]
    if '--apigateway' in argv:
        args.extend([{'arg': '--stack', 'dest': 'stack', 'default': None, 'help': 'CloudFormation stack name'}])
    else:
        args.extend(
            [{'arg': '--host', 'dest': 'host', 'default': 'localhost:2000', 'help': 'Blox Scheduler <Host>:<Port>'}])
    args.extend([{'arg': '--environment', 'dest': 'environment', 'default': None, 'help': 'Blox environment name'}])
    args.extend(
        [{'arg': '--deployment-id', 'dest': 'id', 'default': None, 'required': False, 'help': 'Blox deployment id'}])

    # Parse Command Line Arguments
    params = common.parse_cli_args('List Blox Deployments', args)

    if params.apigateway:
        run_apigateway(params)
    else:
        run_local(params)