Merge "Add cinder_test testcase"
[functest.git] / functest / opnfv_tests / openstack / vping / vping_base.py
index 6f2f5df..2451c2d 100644 (file)
@@ -45,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
         """
@@ -63,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(
@@ -118,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)
@@ -126,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):
         """
@@ -151,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)