Create a router in both vping scenarii 75/43975/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Mon, 2 Oct 2017 22:27:36 +0000 (00:27 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Mon, 2 Oct 2017 22:33:08 +0000 (00:33 +0200)
It fixes vping_userdata as it allows getting metadata due to the
gateway defined for the subnet.

It could be noted that DHCP can add the route needed if no gateway is
defined and if force_metadata is set in dhcp_agent.ini.

Change-Id: Ia62e0f00e3d2caee6262dd9cd9966d1f21fe40d5
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
functest/opnfv_tests/openstack/vping/vping_base.py
functest/opnfv_tests/openstack/vping/vping_ssh.py

index 8b622e1..a8525a3 100644 (file)
@@ -13,11 +13,13 @@ import time
 import uuid
 
 from functest.core import testcase
+from functest.opnfv_tests.openstack.snaps import snaps_utils
 from functest.utils.constants import CONST
 
 from snaps.openstack import create_flavor
 from snaps.openstack.create_flavor import FlavorSettings, OpenStackFlavor
 from snaps.openstack.create_network import NetworkSettings, SubnetSettings
+from snaps.openstack.create_router import RouterSettings
 from snaps.openstack.tests import openstack_tests
 from snaps.openstack.utils import deploy_utils
 
@@ -62,6 +64,8 @@ class VPingBase(testcase.TestCase):
         if CONST.__getattribute__('vping_unique_names'):
             self.guid = '-' + str(uuid.uuid4())
 
+        self.router_name = CONST.__getattribute__(
+            'vping_router_name') + self.guid
         self.vm1_name = CONST.__getattribute__('vping_vm_name_1') + self.guid
         self.vm2_name = CONST.__getattribute__('vping_vm_name_2') + self.guid
 
@@ -136,6 +140,18 @@ class VPingBase(testcase.TestCase):
                     cidr=private_subnet_cidr)]))
         self.creators.append(self.network_creator)
 
+        # Creating router to external network
+        log = "Creating router with name: '%s'" % self.router_name
+        self.logger.info(log)
+        ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
+        self.router_creator = deploy_utils.create_router(
+            self.os_creds,
+            RouterSettings(
+                name=self.router_name,
+                external_gateway=ext_net_name,
+                internal_subnets=[private_subnet_name]))
+        self.creators.append(self.router_creator)
+
         self.logger.info(
             "Creating flavor with name: '%s'" % self.flavor_name)
         scenario = CONST.__getattribute__('DEPLOY_SCENARIO')
index f94d20b..1a04ad0 100644 (file)
@@ -20,7 +20,6 @@ import pkg_resources
 
 from functest.core.testcase import TestCase
 from functest.energy import energy
-from functest.opnfv_tests.openstack.snaps import snaps_utils
 from functest.opnfv_tests.openstack.vping import vping_base
 from functest.utils.constants import CONST
 from snaps.openstack.create_instance import FloatingIpSettings, \
@@ -28,7 +27,6 @@ from snaps.openstack.create_instance import FloatingIpSettings, \
 
 from snaps.openstack.create_keypairs import KeypairSettings
 from snaps.openstack.create_network import PortSettings
-from snaps.openstack.create_router import RouterSettings
 from snaps.openstack.create_security_group import Direction, Protocol, \
     SecurityGroupSettings, SecurityGroupRuleSettings
 from snaps.openstack.utils import deploy_utils
@@ -51,8 +49,6 @@ class VPingSSH(vping_base.VPingBase):
         self.kp_name = CONST.__getattribute__('vping_keypair_name') + self.guid
         self.kp_priv_file = CONST.__getattribute__('vping_keypair_priv_file')
         self.kp_pub_file = CONST.__getattribute__('vping_keypair_pub_file')
-        self.router_name = CONST.__getattribute__(
-            'vping_router_name') + self.guid
         self.sg_name = CONST.__getattribute__('vping_sg_name') + self.guid
         self.sg_desc = CONST.__getattribute__('vping_sg_desc')
 
@@ -77,20 +73,6 @@ class VPingSSH(vping_base.VPingBase):
                                 public_filepath=self.kp_pub_file))
             self.creators.append(kp_creator)
 
-            # Creating router to external network
-            log = "Creating router with name: '%s'" % self.router_name
-            self.logger.info(log)
-            net_set = self.network_creator.network_settings
-            sub_set = [net_set.subnet_settings[0].name]
-            ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
-            router_creator = deploy_utils.create_router(
-                self.os_creds,
-                RouterSettings(
-                    name=self.router_name,
-                    external_gateway=ext_net_name,
-                    internal_subnets=sub_set))
-            self.creators.append(router_creator)
-
             # Creating Instance 1
             port1_settings = PortSettings(
                 name=self.vm1_name + '-vPingPort',
@@ -129,7 +111,7 @@ class VPingSSH(vping_base.VPingBase):
                 floating_ip_settings=[FloatingIpSettings(
                     name=self.vm2_name + '-FIPName',
                     port_name=port2_settings.name,
-                    router_name=router_creator.router_settings.name)])
+                    router_name=self.router_creator.router_settings.name)])
 
             log = ("Creating VM 2 instance with name: '%s'"
                    % instance2_settings.name)