def test_yamlfmt(): output = utils.yamlfmt(SIMPLE_ORG_SPEC) assert isinstance(output, str) dt = datetime.datetime.utcnow() output = utils.yamlfmt(dt) assert isinstance(output, str) account = orgs.OrgAccount( orgs.Org(MASTER_ACCOUNT_ID, ORG_ACCESS_ROLE), name='account01', id='112233445566', email='*****@*****.**', ) output = utils.yamlfmt(account) assert isinstance(output, str)
def test_format_responses(): org_id, root_id = build_mock_org(SIMPLE_ORG_SPEC) crawler = setup_crawler(ORG_ACCESS_ROLE) crawler.execute(payloads.get_account_aliases) execution = crawler.execute(payloads.get_account_aliases) execution_responses = format_responses(execution) print(yamlfmt(execution_responses)) assert isinstance(execution_responses, list) for response in execution_responses: assert 'Account' in response assert 'Regions' in response
if len(sys.argv) > 1: ami = sys.argv[1] else: ami = None ec2_client = boto3.client('ec2') desc_re = re.compile(r'SMS ReplicationJobId = (.*) ReplicationRunId = .*') response = ec2_client.describe_images(Owners=['self'], ) #print(yamlfmt(response)) image_ids = [ image['ImageId'] for image in response['Images'] if desc_re.match(image['Description']) ] print(yamlfmt(image_ids)) sms_job_ids = list({ desc_re.match(image['Description']).group(1) for image in response['Images'] if desc_re.match(image['Description']) }) print(yamlfmt(sms_job_ids)) jobid_for_image = [ dict(image_id=image['ImageId'], sms_job_id=desc_re.match(image['Description']).group(1)) for image in response['Images'] if desc_re.match(image['Description']) ] print(yamlfmt(jobid_for_image)) sms_client = boto3.client('sms')
''' import sys import json import boto3 from organizer.utils import yamlfmt ROLE = 'service-role/AmazonEC2RunCommandRoleForManagedInstances' hostname = sys.argv[1] client = boto3.client('ssm') response = client.create_activation( Description=hostname, DefaultInstanceName=hostname, IamRole=ROLE, ) response.pop('ResponseMetadata') #print(yamlfmt(response)) activation_id = response['ActivationId'] activation_code = response['ActivationCode'] version = client.put_parameter( Name='/activation/{}'.format(hostname), Description='SSM activation for {}'.format(hostname), Type='SecureString', Overwrite=True, Value=json.dumps(response), ) print(yamlfmt(version))
response = sms_client.get_replication_jobs(nextToken=response['nextToken']) job_list += response['replicationJobList'] vm_name = next((job['vmServer']['vmName'] for job in job_list if 'latestAmiId' in job and job['latestAmiId'] == ami_id), None) print(vm_name) ssm_client = boto3.client('ssm') response = ssm_client.describe_instance_information( Filters=[{ 'Key': "ResourceType", 'Values': ["ManagedInstance"] }]) print(yamlfmt(response)) #instance_id = next(( instance_id = [ item['Name'] for item in response['InstanceInformationList'] if 'Name' in item and item['Name'] == vm_name ] #), None) print(instance_id) # get the instance id for thing matching hostname #response = client.list_tags_for_resource( # ResourceType='ManagedInstance', # ResourceId='string' #)
#!/usr/bin/env python import sys import re import boto3 from organizer.utils import yamlfmt # get AMI id if len(sys.argv) > 1: ami_id = sys.argv[1] else: ami_id = None ec2_client = boto3.client('ec2') if ami_id: response = ec2_client.describe_tags( Filters=[dict( Name='resource-id', Values=[ami_id], )], ) print(yamlfmt(response['Tags']))
else: vmname = None client = boto3.client('sms') # load up all replication jobs response = client.get_replication_jobs() jobs = response['replicationJobList'] while 'nextToken' in response: response = client.get_replication_jobs(nextToken=response['nextToken']) jobs += response['replicationJobList'] #print(yamlfmt(jobs)) # display failed rep jobs failed_jobs = [job for job in jobs if job['state'] == 'Failed'] #print(yamlfmt(failed_jobs)) failed_listing = [ dict(vmName=job['vmServer']['vmName'], statusMessage=job['statusMessage']) for job in failed_jobs ] #print(yamlfmt(failed_listing)) if vmname: print( yamlfmt([ job for job in failed_jobs if job['vmServer']['vmName'] == vmname ])) else: print(yamlfmt(failed_listing))