def get_organizations()

in Back-End/lambdas/receive_sqs_message.py [0:0]


def get_organizations(account_number, region, cross_account_role):

    # Init
    var_list = []

    # Use boto3 on source account
    client_org = create_boto_client(
        account_number, region, 'organizations', cross_account_role)

    # Page all org
    paginator = client_org.get_paginator('list_accounts')

    for page in paginator.paginate():
        for i in page['Accounts']:
            if i['Status'] == 'ACTIVE':

                acc_number = i['Id']

                # Try Get Tags
                try:
                    org_tags = client_org.list_tags_for_resource(ResourceId=acc_number)['Tags']
                except ClientError as e:
                    org_tags = 'No Tags Exist'

                var_list.append(
                    {
                        'AccountNumber': str(acc_number),
                        'Id': str(i['Arn']),
                        'Region': 'us-east-1',
                        'EntryType': 'org',
                        'Name': str(i['Name']),
                        'Email': str(i['Email']),
                        'Status': str(i['Status']),
                        'JoinedMethod': str(i['JoinedMethod']),
                        'Tags': str(org_tags)
                    })

    return var_list