Merge "Add cinder_test testcase"
[functest.git] / functest / opnfv_tests / openstack / vping / vping_base.py
index 13ee67d..2451c2d 100644 (file)
@@ -20,6 +20,7 @@ from xtesting.core import testcase
 
 from functest.utils import config
 from functest.utils import env
+from functest.utils import functest_utils
 
 
 class VPingBase(testcase.TestCase):
@@ -35,7 +36,7 @@ class VPingBase(testcase.TestCase):
         super(VPingBase, self).__init__(**kwargs)
         self.logger = logging.getLogger(__name__)
         self.cloud = os_client_config.make_shade()
-        self.ext_net = self.cloud.get_network("ext-net")
+        self.ext_net = functest_utils.get_external_network(self.cloud)
         self.logger.debug("ext_net: %s", self.ext_net)
         self.guid = '-' + str(uuid.uuid4())
         self.network = None
@@ -44,6 +45,7 @@ class VPingBase(testcase.TestCase):
         self.image = None
         self.flavor = None
         self.vm1 = None
+        self.sec1 = None
 
     def run(self, **kwargs):  # pylint: disable=too-many-locals
         """
@@ -62,9 +64,12 @@ class VPingBase(testcase.TestCase):
         image_base_name = '{}-{}'.format(
             getattr(config.CONF, 'vping_image_name'), self.guid)
         self.logger.info("Creating image with name: '%s'", image_base_name)
+        meta = getattr(config.CONF, 'openstack_extra_properties', None)
+        self.logger.info("Image metadata: %s", meta)
         self.image = self.cloud.create_image(
             image_base_name,
-            filename=getattr(config.CONF, 'openstack_image_url'))
+            filename=getattr(config.CONF, 'openstack_image_url'),
+            meta=meta)
         self.logger.debug("image: %s", self.image)
 
         private_net_name = getattr(
@@ -117,6 +122,12 @@ class VPingBase(testcase.TestCase):
         self.cloud.set_flavor_specs(
             self.flavor.id, getattr(config.CONF, 'flavor_extra_specs', {}))
 
+        self.sec1 = self.cloud.create_security_group(
+            getattr(config.CONF, 'vping_sg_name') + self.guid,
+            getattr(config.CONF, 'vping_sg_desc'))
+        self.cloud.create_security_group_rule(
+            self.sec1.id, protocol='icmp', direction='ingress')
+
         vm1_name = getattr(config.CONF, 'vping_vm_name_1') + self.guid
         self.logger.info(
             "Creating VM 1 instance with name: '%s'", vm1_name)
@@ -125,9 +136,12 @@ class VPingBase(testcase.TestCase):
             flavor=self.flavor.id,
             auto_ip=False, wait=True,
             timeout=getattr(config.CONF, 'vping_vm_boot_timeout'),
-            network=self.network.id)
+            network=self.network.id,
+            security_groups=[self.sec1.id])
         self.logger.debug("vm1: %s", self.vm1)
         self.vm1 = self.cloud.wait_for_server(self.vm1, auto_ip=False)
+        p_console = self.cloud.get_server_console(self.vm1.id)
+        self.logger.debug("vm1 console: \n%s", p_console)
 
     def _execute(self):
         """
@@ -150,6 +164,7 @@ class VPingBase(testcase.TestCase):
         """
         assert self.cloud
         self.cloud.delete_server(self.vm1, wait=True)
+        self.cloud.delete_security_group(self.sec1.id)
         self.cloud.delete_image(self.image)
         self.cloud.remove_router_interface(self.router, self.subnet.id)
         self.cloud.delete_router(self.router.id)