Explorar o código

Tests using default net subnet to avoid quota limit in AWS

almahmoud %!s(int64=7) %!d(string=hai) anos
pai
achega
b84b6054ae

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

@@ -137,6 +137,7 @@ class BaseObjectLifeCycleMixin(ObjectLifeCycleMixin):
     """
 
     def wait_for(self, target_states, terminal_states=None, timeout=None,
+
                  interval=None):
         if timeout is None:
             timeout = self._provider.config.default_wait_timeout

+ 6 - 7
test/helpers/__init__.py

@@ -112,15 +112,14 @@ def get_provider_test_data(provider, key):
     return None
 
 
-def create_test_network(provider, label):
+def get_or_create_default_network(provider):
     """
-    Create a network with one subnet, returning the network and subnet objects.
+    Get the default network with the default subnet, if already created,
+    or create then return them
     """
-    net = provider.networking.networks.create(label=label,
-                                              cidr_block='10.0.0.0/16')
-    cidr_block = (net.cidr_block).split('/')[0] or '10.0.0.1'
-    sn = net.create_subnet(label=label, cidr_block='{0}/28'.format(cidr_block),
-                           zone=get_provider_test_data(provider, 'placement'))
+    sn = provider.networking.subnets.get_or_create_default(
+        zone=get_provider_test_data(provider, 'placement'))
+    net = provider.networking.networks.get(sn.network_id)
     return net, sn
 
 

+ 6 - 8
test/test_block_store_service.py

@@ -47,12 +47,11 @@ class CloudBlockStoreServiceTestCase(ProviderTestBase):
         label = "cb-attachvol-{0}".format(helpers.get_uuid())
         # Declare these variables and late binding will allow
         # the cleanup method access to the most current values
-        net = None
         test_instance = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                test_instance, net)):
-            net, subnet = helpers.create_test_network(
-                self.provider, label)
+                test_instance)):
+            net, subnet = helpers.get_or_create_default_network(
+                self.provider)
             test_instance = helpers.get_test_instance(
                 self.provider, label, subnet=subnet)
 
@@ -79,11 +78,10 @@ class CloudBlockStoreServiceTestCase(ProviderTestBase):
         # Declare these variables and late binding will allow
         # the cleanup method access to the most current values
         test_instance = None
-        net = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                test_instance, net)):
-            net, subnet = helpers.create_test_network(
-                self.provider, label)
+                test_instance)):
+            net, subnet = helpers.get_or_create_default_network(
+                self.provider)
             test_instance = helpers.get_test_instance(
                 self.provider, label, subnet=subnet)
 

+ 25 - 31
test/test_compute_service.py

@@ -48,13 +48,11 @@ class CloudComputeServiceTestCase(ProviderTestBase):
                 "Instance %s should have been deleted but still exists." %
                 label)
 
-        with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                                               network=net)):
-            net, subnet = helpers.create_test_network(self.provider, label)
+        net, subnet = helpers.get_or_create_default_network(self.provider)
 
-            sit.check_crud(self, self.provider.compute.instances, Instance,
-                           "cb-instcrud", create_inst, cleanup_inst,
-                           custom_check_delete=check_deleted)
+        sit.check_crud(self, self.provider.compute.instances, Instance,
+                       "cb-instcrud", create_inst, cleanup_inst,
+                       custom_check_delete=check_deleted)
 
     def _is_valid_ip(self, address):
         try:
@@ -72,12 +70,11 @@ class CloudComputeServiceTestCase(ProviderTestBase):
         # Declare these variables and late binding will allow
         # the cleanup method access to the most current values
         test_instance = None
-        net = None
         fw = None
         kp = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                test_instance, net, fw, kp)):
-            net, subnet = helpers.create_test_network(self.provider, label)
+                test_instance, fw, kp)):
+            net, subnet = helpers.get_or_create_default_network(self.provider)
             kp = self.provider.security.key_pairs.create(name=label)
             fw = self.provider.security.vm_firewalls.create(
                 label=label, description=label, network_id=net.id)
@@ -276,27 +273,25 @@ class CloudComputeServiceTestCase(ProviderTestBase):
                 for _ in range(vm_type.num_ephemeral_disks):
                     lc.add_ephemeral_device()
 
-                net, subnet = helpers.create_test_network(self.provider, label)
+                net, subnet = helpers.get_or_create_default_network(
+                    self.provider)
+
+                inst = helpers.create_test_instance(
+                    self.provider,
+                    label,
+                    subnet=subnet,
+                    launch_config=lc)
 
                 with helpers.cleanup_action(lambda:
-                                            helpers.delete_test_network(net)):
-
-                    inst = helpers.create_test_instance(
-                        self.provider,
-                        label,
-                        subnet=subnet,
-                        launch_config=lc)
-
-                    with helpers.cleanup_action(lambda:
-                                                helpers.delete_test_instance(
-                                                    inst)):
-                        try:
-                            inst.wait_till_ready()
-                        except WaitStateException as e:
-                            self.fail("The block device mapped launch did not "
-                                      " complete successfully: %s" % e)
-                        # TODO: Check instance attachments and make sure they
-                        # correspond to requested mappings
+                                            helpers.delete_test_instance(
+                                                inst)):
+                    try:
+                        inst.wait_till_ready()
+                    except WaitStateException as e:
+                        self.fail("The block device mapped launch did not "
+                                  " complete successfully: %s" % e)
+                    # TODO: Check instance attachments and make sure they
+                    # correspond to requested mappings
 
     @helpers.skipIfNoService(['compute.instances', 'networking.networks',
                               'security.vm_firewalls'])
@@ -306,11 +301,10 @@ class CloudComputeServiceTestCase(ProviderTestBase):
         # Declare these variables and late binding will allow
         # the cleanup method access to the most current values
         test_inst = None
-        net = None
         fw = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                test_inst, net, fw)):
-            net, subnet = helpers.create_test_network(self.provider, label)
+                test_inst, fw)):
+            net, subnet = helpers.get_or_create_default_network(self.provider)
             test_inst = helpers.get_test_instance(self.provider, label,
                                                   subnet=subnet)
             fw = self.provider.security.vm_firewalls.create(

+ 3 - 4
test/test_image_service.py

@@ -24,7 +24,6 @@ class CloudImageServiceTestCase(ProviderTestBase):
         # Declare these variables and late binding will allow
         # the cleanup method access to the most current values
         test_instance = None
-        net = None
         subnet = None
 
         def create_img(label):
@@ -79,9 +78,9 @@ class CloudImageServiceTestCase(ProviderTestBase):
                                 " contain a valid value")
 
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                test_instance, net)):
-            net, subnet = helpers.create_test_network(
-                self.provider, instance_label)
+                test_instance)):
+            net, subnet = helpers.get_or_create_default_network(
+                self.provider)
             test_instance = helpers.get_test_instance(
                 self.provider, instance_label, subnet=subnet)
             sit.check_crud(self, self.provider.compute.images, MachineImage,

+ 26 - 39
test/test_security_service.py

@@ -60,11 +60,6 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
 
     @helpers.skipIfNoService(['security.vm_firewalls'])
     def test_crud_vm_firewall(self):
-        label = 'cb-crudfw-{0}'.format(helpers.get_uuid())
-
-        # Declare these variables and late binding will allow
-        # the cleanup method access to the most current values
-        net = None
 
         def create_fw(label):
             return self.provider.security.vm_firewalls.create(
@@ -74,12 +69,10 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
             if fw:
                 fw.delete()
 
-        with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                network=net)):
-            net, _ = helpers.create_test_network(self.provider, label)
+        net, _ = helpers.get_or_create_default_network(self.provider)
 
-            sit.check_crud(self, self.provider.security.vm_firewalls,
-                           VMFirewall, "cb-crudfw", create_fw, cleanup_fw)
+        sit.check_crud(self, self.provider.security.vm_firewalls,
+                       VMFirewall, "cb-crudfw", create_fw, cleanup_fw)
 
     @helpers.skipIfNoService(['security.vm_firewalls'])
     def test_vm_firewall_properties(self):
@@ -87,11 +80,10 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
 
         # Declare these variables and late binding will allow
         # the cleanup method access to the most current values
-        net = None
         fw = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                network=net, vm_firewall=fw)):
-            net, _ = helpers.create_test_network(self.provider, label)
+                vm_firewall=fw)):
+            net, _ = helpers.get_or_create_default_network(self.provider)
             fw = self.provider.security.vm_firewalls.create(
                 label=label, description=label, network_id=net.id)
 
@@ -101,30 +93,25 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
     def test_crud_vm_firewall_rules(self):
         label = 'cb-crudfw-rules-{0}'.format(helpers.get_uuid())
 
-        # Declare these variables and late binding will allow
-        # the cleanup method access to the most current values
-        net = None
-        with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                network=net)):
-            net, _ = helpers.create_test_network(self.provider, label)
+        net, _ = helpers.get_or_create_default_network(self.provider)
 
-            fw = None
-            with helpers.cleanup_action(lambda: fw.delete()):
-                fw = self.provider.security.vm_firewalls.create(
-                    label=label, description=label, network_id=net.id)
+        fw = None
+        with helpers.cleanup_action(lambda: fw.delete()):
+            fw = self.provider.security.vm_firewalls.create(
+                label=label, description=label, network_id=net.id)
 
-                def create_fw_rule(label):
-                    return fw.rules.create(
-                        direction=TrafficDirection.INBOUND, protocol='tcp',
-                        from_port=1111, to_port=1111, cidr='0.0.0.0/0')
+            def create_fw_rule(label):
+                return fw.rules.create(
+                    direction=TrafficDirection.INBOUND, protocol='tcp',
+                    from_port=1111, to_port=1111, cidr='0.0.0.0/0')
 
-                def cleanup_fw_rule(rule):
-                    if rule:
-                        rule.delete()
+            def cleanup_fw_rule(rule):
+                if rule:
+                    rule.delete()
 
-                sit.check_crud(self, fw.rules, VMFirewallRule, "cb-crudfwrule",
-                               create_fw_rule, cleanup_fw_rule,
-                               skip_name_check=True)
+            sit.check_crud(self, fw.rules, VMFirewallRule, "cb-crudfwrule",
+                           create_fw_rule, cleanup_fw_rule,
+                           skip_name_check=True)
 
     @helpers.skipIfNoService(['security.vm_firewalls'])
     def test_vm_firewall_rule_properties(self):
@@ -135,8 +122,8 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
         net = None
         fw = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                network=net, vm_firewall=fw)):
-            net, _ = helpers.create_test_network(self.provider, label)
+                vm_firewall=fw)):
+            net, _ = helpers.get_or_create_default_network(self.provider)
             fw = self.provider.security.vm_firewalls.create(
                 label=label, description=label, network_id=net.id)
 
@@ -158,9 +145,9 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
         net = None
         fw = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                network=net, vm_firewall=fw)):
+                vm_firewall=fw)):
 
-            net, _ = helpers.create_test_network(self.provider, label)
+            net, _ = helpers.get_or_create_default_network(self.provider)
             fw = self.provider.security.vm_firewalls.create(
                 label=label, description=label, network_id=net.id)
 
@@ -182,8 +169,8 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
         net = None
         fw = None
         with helpers.cleanup_action(lambda: helpers.cleanup_test_resources(
-                network=net, vm_firewall=fw)):
-            net, _ = helpers.create_test_network(self.provider, label)
+                vm_firewall=fw)):
+            net, _ = helpers.get_or_create_default_network(self.provider)
             fw = self.provider.security.vm_firewalls.create(
                 label=label, description=label, network_id=net.id)
             rules = list(fw.rules)