Kaynağa Gözat

Renamed find_by_name to find

nuwan_ag 10 yıl önce
ebeveyn
işleme
6baa54eb3d

+ 2 - 2
cloudbridge/cloud/interfaces/services.py

@@ -224,7 +224,7 @@ class LaunchConfig(object):
                             source=snap)
 
         # 4. Add all available ephemeral devices
-        inst_type = provider.compute.instance_types.find_by_name('m1.small')
+        inst_type = next(provider.compute.instance_types.find(name='m1.small'))
         for i in xrange(inst_type.num_ephemeral_disks):
             lc.add_block_device(LaunchConfig.DestinationType.LOCAL)
         ```
@@ -667,7 +667,7 @@ class InstanceTypesService(object):
         pass
 
     @abstractmethod
-    def find_by_name(self, name):
+    def find(self, **kwargs):
         """
         Searches for an instance by a given list of attributes.
 

+ 6 - 3
cloudbridge/cloud/providers/aws/services.py

@@ -551,9 +551,12 @@ class AWSInstanceTypesService(BaseInstanceTypesService):
         return [AWSInstanceType(self.provider, inst_data)
                 for inst_data in self.instance_data]
 
-    def find_by_name(self, name):
-        return next(
-            (itype for itype in self.list() if itype.name == name), None)
+    def find(self, **kwargs):
+        name = kwargs.get('name')
+        if name:
+            return (itype for itype in self.list() if itype.name == name)
+        else:
+            return None
 
 
 class AWSRegionService(BaseRegionService):

+ 9 - 4
cloudbridge/cloud/providers/openstack/services.py

@@ -244,9 +244,12 @@ class OpenStackInstanceTypesService(BaseInstanceTypesService):
         return [OpenStackInstanceType(f)
                 for f in self._provider.nova.flavors.list()]
 
-    def find_by_name(self, name):
-        return next(
-            (itype for itype in self.list() if itype.name == name), None)
+    def find(self, **kwargs):
+        name = kwargs.get('name')
+        if name:
+            return (itype for itype in self.list() if itype.name == name)
+        else:
+            return None
 
 
 class OpenStackBlockStoreService(BaseBlockStoreService):
@@ -454,7 +457,9 @@ class OpenStackInstanceService(BaseInstanceService):
         image_id = image.id if isinstance(image, MachineImage) else image
         instance_size = instance_type.name if \
             isinstance(instance_type, InstanceType) else \
-            self.provider.compute.instance_types.find_by_name(instance_type).id
+            next(
+                self.provider.compute.instance_types.find(
+                    name=instance_type)).id
         zone_name = zone.name if isinstance(zone, PlacementZone) else zone
         keypair_name = keypair.name if \
             isinstance(keypair, KeyPair) else keypair

+ 1 - 1
example.py

@@ -10,6 +10,6 @@ provider = CloudProviderFactory().create_provider(
     config)
 # print provider.security.list_key_pairs()
 # print provider.compute.instance_types.list()
-# print provider.compute.instance_types.find_by_name("m1.small")
+# print next(provider.compute.instance_types.find_by_name("m1.small"))
 instance = helpers.get_test_instance(provider)
 # print provider.security.list_security_groups()

+ 2 - 2
test/test_provider_compute_service.py

@@ -150,8 +150,8 @@ class ProviderComputeServiceTestCase(ProviderTestBase):
                 instance_type_name = helpers.get_provider_test_data(
                     self.provider,
                     "instance_type")
-                inst_type = self.provider.compute.instance_types.find_by_name(
-                    instance_type_name)
+                inst_type = next(self.provider.compute.instance_types.find(
+                    name=instance_type_name))
                 for _ in range(inst_type.num_ephemeral_disks):
                     lc.add_block_device(LaunchConfig.DestinationType.LOCAL)