Skip to content

Commit

Permalink
Changed instancetype.find() to return a list and fixed tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
nuwang committed Nov 26, 2015
1 parent f4529ab commit 4804286
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 16 deletions.
3 changes: 1 addition & 2 deletions cloudbridge/cloud/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -753,8 +753,7 @@ def __init__(self, provider):
def find(self, **kwargs):
name = kwargs.get('name')
if name:
return next((itype for itype in self.list() if itype.name == name),
None)
return [itype for itype in self.list() if itype.name == name]
else:
raise TypeError(
"Invalid parameters for search. Supported attributes: {name}")
Expand Down
4 changes: 2 additions & 2 deletions cloudbridge/cloud/providers/aws/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,8 +250,8 @@ def instance_type(self):
"""
Get the instance type.
"""
return next(self._provider.compute.instance_types.find(
name=self._ec2_instance.instance_type))
return self._provider.compute.instance_types.find(
name=self._ec2_instance.instance_type)[0]

def reboot(self):
"""
Expand Down
5 changes: 2 additions & 3 deletions cloudbridge/cloud/providers/openstack/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -509,9 +509,8 @@ def create(self, name, image, instance_type, zone=None,
image_id = image.id if isinstance(image, MachineImage) else image
instance_size = instance_type.id if \
isinstance(instance_type, InstanceType) else \
next(
self.provider.compute.instance_types.find(
name=instance_type)).id
self.provider.compute.instance_types.find(
name=instance_type)[0].id
zone_id = zone.id if isinstance(zone, PlacementZone) else zone
keypair_name = keypair.name if \
isinstance(keypair, KeyPair) else keypair
Expand Down
8 changes: 4 additions & 4 deletions test/test_compute_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,8 @@ def test_block_device_mapping_launch_config(self):
instance_type_name = helpers.get_provider_test_data(
self.provider,
"instance_type")
inst_type = next(self.provider.compute.instance_types.find(
name=instance_type_name))
inst_type = self.provider.compute.instance_types.find(
name=instance_type_name)[0]
for _ in range(inst_type.num_ephemeral_disks):
lc.add_ephemeral_device()

Expand Down Expand Up @@ -259,8 +259,8 @@ def test_block_device_mapping_attachments(self):
instance_type_name = helpers.get_provider_test_data(
self.provider,
"instance_type")
inst_type = next(self.provider.compute.instance_types.find(
name=instance_type_name))
inst_type = self.provider.compute.instance_types.find(
name=instance_type_name)[0]
for _ in range(inst_type.num_ephemeral_disks):
lc.add_ephemeral_device()

Expand Down
10 changes: 5 additions & 5 deletions test/test_instance_types_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,14 @@ def test_instance_types_find(self):
instance_type_name = helpers.get_provider_test_data(
self.provider,
"instance_type")
inst_type = next(self.provider.compute.instance_types.find(
name=instance_type_name))
inst_type = self.provider.compute.instance_types.find(
name=instance_type_name)[0]
self.assertTrue(isinstance(inst_type, InstanceType),
"Find must return an InstanceType object")

with self.assertRaises(StopIteration):
inst_type = next(self.provider.compute.instance_types.find(
name="non_existent_instance_type"))
self.assertFalse(self.provider.compute.instance_types.find(
name="non_existent_instance_type"), "Searching for a non-existent"
" instance type must return an empty list")

with self.assertRaises(TypeError):
self.provider.compute.instance_types.find(
Expand Down

0 comments on commit 4804286

Please sign in to comment.