def get_images()

in EC2/QuickInstanceEC2/qi.py [0:0]


def get_images(region, owners=[], windows=False):
    try:
        client = boto3.client('ec2', region_name=region)
        images = client.describe_images(Owners=owners, Filters=[
                {'Name': 'architecture', 'Values': ['x86_64']},
                {'Name': 'block-device-mapping.volume-type', 'Values': ['gp2']},
                {'Name': 'image-type', 'Values': ['machine']},
                {'Name': 'virtualization-type', 'Values': ['hvm']},
                {'Name': 'platform', 'Values': ['windows']} if windows else {},
                ])
        image_list = []
        filter_keyword = 'Microsoft Windows Server' if windows else 'Amazon Linux'
        for image in images['Images']:
            if 'amazon' in owners:
                if 'Description' in image and filter_keyword in image['Description']:
                    if windows and any(keyword not in image['Description'] for keyword in ['English', 'Base']):
                        continue
                    if windows: image['Description'] = image['Description'].replace('AMI provided by Amazon', '')
                    image_list.append(image)
            elif redhat_account in owners:
                image_list.append(image)
            elif ubuntu_account in owners:
                image_list.append(image)
        image_list.sort(key=lambda x: datetime.datetime.strptime(x['CreationDate'], '%Y-%m-%dT%H:%M:%S.000Z'))
        return image_list
    except:
        return