Added invalid id exceptions when filtering snapshots and volumes

This commit is contained in:
Nuwan Goonasekera 2017-09-18 23:12:39 +05:30
commit 08c4eff0b2
3 changed files with 34 additions and 16 deletions

View file

@ -1775,11 +1775,17 @@ class EBSBackend(object):
self.volumes[volume_id] = volume
return volume
def describe_volumes(self, filters=None):
def describe_volumes(self, volume_ids=None, filters=None):
matches = self.volumes.values()
if volume_ids:
matches = [vol for vol in matches
if vol.id in volume_ids]
if len(volume_ids) > len(matches):
unknown_ids = set(volume_ids) - set(matches)
raise InvalidVolumeIdError(unknown_ids)
if filters:
volumes = self.volumes.values()
return generic_filter(filters, volumes)
return self.volumes.values()
matches = generic_filter(filters, matches)
return matches
def get_volume(self, volume_id):
volume = self.volumes.get(volume_id, None)
@ -1827,11 +1833,17 @@ class EBSBackend(object):
self.snapshots[snapshot_id] = snapshot
return snapshot
def describe_snapshots(self, filters=None):
def describe_snapshots(self, snapshot_ids=None, filters=None):
matches = self.snapshots.values()
if snapshot_ids:
matches = [vol for vol in matches
if vol.id in snapshot_ids]
if len(snapshot_ids) > len(matches):
unknown_ids = set(snapshot_ids) - set(matches)
raise InvalidSnapshotIdError(unknown_ids)
if filters:
snapshots = self.snapshots.values()
return generic_filter(filters, snapshots)
return self.snapshots.values()
matches = generic_filter(filters, matches)
return matches
def get_snapshot(self, snapshot_id):
snapshot = self.snapshots.get(snapshot_id, None)