Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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')
Exemplo n.º 4
0
'''

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))
Exemplo n.º 5
0
    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'
#)
Exemplo n.º 6
0
#!/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']))
Exemplo n.º 7
0
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))