def get_all_ris()

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


def get_all_ris(account_number, region, cross_account_role):

    # Init
    var_list = []

    # Use boto3 on source account
    client_ec2 = create_boto_client(
        account_number, region, 'ec2', cross_account_role)

    # No paginator for reservations
    # paginator = client_ec2.get_paginator('')
    result = client_ec2.describe_reserved_instances()

    for i in result['ReservedInstances']:
        # only get active ones
        if i['State'] == 'active':
            var_list.append(
                {
                    'EntryType': 'ri',
                    'AccountNumber': str(account_number),
                    'InstanceCount': int(i['InstanceCount']),
                    'InstanceType': str(i['InstanceType']),
                    'Scope': str(i['Scope']),
                    'ProductDescription': str(i['ProductDescription']),
                    'Id': str(i['ReservedInstancesId']),
                    'Start': str(i['Start']),
                    'End': str(i['End']),
                    'InstanceTenancy': str(i['InstanceTenancy']),
                    'OfferingClass': str(i['OfferingClass'])
                })

    return var_list