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