Selaa lähdekoodia

Fix remaining AWS tests

Nuwan Goonasekera 7 vuotta sitten
vanhempi
sitoutus
8a6f9944c5

+ 1 - 1
cloudbridge/cloud/base/resources.py

@@ -776,7 +776,7 @@ class BaseNetwork(BaseCloudResource, BaseObjectLifeCycleMixin, Network):
     CB_DEFAULT_NETWORK_LABEL = os.environ.get('CB_DEFAULT_NETWORK_LABEL',
                                               'cloudbridge-net')
     CB_DEFAULT_IPV4RANGE = os.environ.get('CB_DEFAULT_IPV4RANGE',
-                                          '10.0.0.0/16')
+                                          u'10.0.0.0/16')
 
     def __init__(self, provider):
         super(BaseNetwork, self).__init__(provider)

+ 12 - 14
cloudbridge/cloud/providers/aws/services.py

@@ -415,33 +415,31 @@ class AWSImageService(BaseImageService):
 
     def find(self, **kwargs):
         # Filter by name or label
-        label = kwargs.get('label', None)
+        label = kwargs.pop('label', None)
         # Popped here, not used in the generic find
         owner = kwargs.pop('owners', None)
+
+        # All kwargs should have been popped at this time.
+        if len(kwargs) > 0:
+            raise TypeError("Unrecognised parameters for search: %s."
+                            " Supported attributes: %s" % (kwargs, 'label'))
+
         extra_args = {}
         if owner:
             extra_args.update(Owners=owner)
 
-        obj_list = []
-
         # The original list is made by combining both searches by "tag:Name"
         # and "AMI name" to allow for searches of public images
         if label:
             log.debug("Searching for AWS Image Service %s", label)
+            obj_list = []
             obj_list.extend(self.svc.find(filter_name='name',
                                           filter_value=label, **extra_args))
             obj_list.extend(self.svc.find(filter_name='tag:Name',
                                           filter_value=label, **extra_args))
-
-        if not label:
-            obj_list = self
-
-        # Add name filter for the generic find method, to allow searching
-        # through AMI names for a match (public images will likely have an
-        # AMI name and no tag:Name)
-        kwargs.update({'name': label})
-        filters = ['label', 'name']
-        return cb_helpers.generic_find(filters, kwargs, obj_list)
+            return obj_list
+        else:
+            return []
 
     def list(self, filter_by_owner=True, limit=None, marker=None):
         return self.svc.list(Owners=['self'] if filter_by_owner else
@@ -879,7 +877,7 @@ class AWSSubnetService(BaseSubnetService):
         # accommodate the number of available zones. That is where the fixed
         # number comes from in the for loop as that many iterations will yield
         # more potential subnets than any region has zones.
-        ip_net = ipaddress.ip_network(AWSNetwork.CB_DEFAULT_IPV4RANGE.decode())
+        ip_net = ipaddress.ip_network(AWSNetwork.CB_DEFAULT_IPV4RANGE)
         for x in range(5):
             if len(region.zones) <= len(list(ip_net.subnets(
                     prefixlen_diff=x))):

+ 4 - 4
test/test_network_service.py

@@ -203,10 +203,10 @@ class CloudNetworkServiceTestCase(ProviderTestBase):
                     "Router {0} state {1} should be {2}.".format(
                         router.id, router.state, RouterState.DETACHED))
 
-                self.assertFalse(
-                    router.network_id,
-                    "Router {0} should not be assoc. with network {1}".format(
-                            router.id, router.network_id))
+                self.assertEqual(
+                    router.network_id, net.id,  "Router {0} should be assoc."
+                    " with network {1}, but is associated with {2}"
+                    .format(router.id, net.id, router.network_id))
 
                 self.assertTrue(
                     len(router.subnets) == 0,