Make sure invalid or malformed AMIs raise an exception

Closes: https://github.com/spulec/moto/issues/1408
This commit is contained in:
Nuwan Goonasekera 2017-12-22 18:50:18 +05:30
commit c68cd650e7
2 changed files with 24 additions and 0 deletions

View file

@ -48,6 +48,7 @@ from .exceptions import (
InvalidRouteError,
InvalidInstanceIdError,
InvalidAMIIdError,
MalformedAMIIdError,
InvalidAMIAttributeItemValueError,
InvalidSnapshotIdError,
InvalidVolumeIdError,
@ -1122,6 +1123,9 @@ class Ami(TaggedEC2Resource):
class AmiBackend(object):
AMI_REGEX = re.compile("ami-[a-z0-9]+")
def __init__(self):
self.amis = {}
@ -1170,6 +1174,12 @@ class AmiBackend(object):
if ami_ids:
images = [ami for ami in images if ami.id in ami_ids]
if len(ami_ids) > len(images):
unknown_ids = set(ami_ids) - set(images)
for id in unknown_ids:
if not self.AMI_REGEX.match(id):
raise MalformedAMIIdError(id)
raise InvalidAMIIdError(unknown_ids)
# Generic filters
if filters: