[vyos_vrouter] Support https endpoints 43/49143/1
authorShuyaNakama <shuya.nakama@okinawaopenlabs.org>
Thu, 14 Dec 2017 17:37:33 +0000 (17:37 +0000)
committerCédric Ollivier <cedric.ollivier@orange.com>
Sun, 17 Dec 2017 09:41:10 +0000 (10:41 +0100)
JIRA: FUNCTEST-881

vyos_vrouter did not support https endpoints [1].

I fixed the following two points.
 1. Modifying blueprint of Cloudify.
 2. Changing nova client of utilvnf module.

Point 1
 I added command of support https endpoint to blueprint of vyos_vrouter.
 The Blueprint of vyos_vrouter is on our github repository [2].
 I updated our repository.

Point 2
 I changed nova client of utilvnf module.
 Utilvnf module is utility module of vyos_vrouter.
 Nova client of utilvnf module did not support https endpoints.
 So, I changed to use nova client of snaps.

After fixed the source code, I confirmed the vyos_vrouter was succeeded in the following two environments.
 1. Our labs   (Instoller:fuel,    environment of https endpoints)
 2. Orange POD (Instoller:compass, environment of http endpoints)

[1] https://jira.opnfv.org/browse/FUNCTEST-881
[2] https://github.com/oolorg/opnfv-vnf-vyos-blueprint/blob/master/function-test-openstack-blueprint.yaml

Change-Id: I468df0f2486a34bc558ad161eb7de44264549006
Signed-off-by: ShuyaNakama <shuya.nakama@okinawaopenlabs.org>
(cherry picked from commit fc0d8c601ce627d5f7b8c5e3eef73bd01c6db7d4)

docker/vnf/testcases.yaml
functest/ci/testcases.yaml
functest/opnfv_tests/vnf/router/cloudify_vrouter.py
functest/opnfv_tests/vnf/router/test_controller/function_test_exec.py
functest/opnfv_tests/vnf/router/utilvnf.py
functest/opnfv_tests/vnf/router/vnf_controller/vm_controller.py

index eccabbe..7205ec5 100644 (file)
@@ -29,7 +29,7 @@ tiers:
                 description: >-
                     This test case is vRouter testing.
                 dependencies:
-                    installer: '^((?!compass|fuel).)*$'
+                    installer: ''
                     scenario: 'os-nosdn-nofeature-ha'
                 run:
                     module: 'functest.opnfv_tests.vnf.router.cloudify_vrouter'
index b08b7d6..8e48f42 100644 (file)
@@ -397,7 +397,7 @@ tiers:
                 description: >-
                     This test case is vRouter testing.
                 dependencies:
-                    installer: '^((?!compass|fuel).)*$'
+                    installer: ''
                     scenario: 'os-nosdn-nofeature-ha'
                 run:
                     module: 'functest.opnfv_tests.vnf.router.cloudify_vrouter'
index ea09b21..c5aec1a 100644 (file)
@@ -109,10 +109,7 @@ class CloudifyVrouter(vrouter_base.VrouterOnBoardingBase):
 
         self.__logger.info("Additional pre-configuration steps")
 
-        self.util.set_credentials(self.snaps_creds.username,
-                                  self.snaps_creds.password,
-                                  self.snaps_creds.auth_url,
-                                  self.snaps_creds.project_name)
+        self.util.set_credentials(self.snaps_creds)
 
         # needs some images
         self.__logger.info("Upload some OS images if it doesn't exist")
@@ -365,7 +362,8 @@ class CloudifyVrouter(vrouter_base.VrouterOnBoardingBase):
 
     def test_vnf(self):
         cfy_client = self.orchestrator['object']
-        credentials = {"username": self.snaps_creds.username,
+        credentials = {"snaps_creds": self.snaps_creds,
+                       "username": self.snaps_creds.username,
                        "password": self.snaps_creds.password,
                        "auth_url": self.snaps_creds.auth_url,
                        "tenant_name": self.snaps_creds.project_name}
index 9303aec..d023d47 100644 (file)
@@ -37,10 +37,7 @@ class FunctionTestExec(object):
         self.test_cmd_map_yaml = yaml.safe_load(test_cmd_map_file)
         test_cmd_map_file.close()
 
-        self.util.set_credentials(credentials["username"],
-                                  credentials["password"],
-                                  credentials["auth_url"],
-                                  credentials["tenant_name"])
+        self.util.set_credentials(credentials["snaps_creds"])
 
         with open(self.util.test_env_config_yaml) as file_fd:
             test_env_config_yaml = yaml.safe_load(file_fd)
index c31d677..9d19683 100644 (file)
@@ -18,10 +18,9 @@ import yaml
 
 from functest.utils.constants import CONST
 from git import Repo
-from novaclient import client as novaclient
-from keystoneauth1.identity import v3
-from keystoneauth1 import session
 from requests.auth import HTTPBasicAuth
+from snaps.openstack.utils import nova_utils
+
 
 RESULT_SPRIT_INDEX = {
     "transfer": 8,
@@ -53,10 +52,7 @@ class Utilvnf(object):
     logger = logging.getLogger(__name__)
 
     def __init__(self):
-        self.username = ""
-        self.password = ""
-        self.auth_url = ""
-        self.tenant_name = ""
+        self.snaps_creds = ""
 
         data_dir = data_dir = CONST.__getattribute__('dir_router_data')
 
@@ -114,31 +110,12 @@ class Utilvnf(object):
             self.logger.debug("removed %s" % self.test_result_json_file)
 
     def get_nova_client(self):
-        creds = self.get_nova_credentials()
-        auth = v3.Password(auth_url=creds['auth_url'],
-                           username=creds['username'],
-                           password=creds['password'],
-                           project_name=creds['tenant_name'],
-                           user_domain_id='default',
-                           project_domain_id='default')
-        sess = session.Session(auth=auth)
-        nova_client = novaclient.Client(NOVA_CLIENT_API_VERSION, session=sess)
+        nova_client = nova_utils.nova_client(self.snaps_creds)
 
         return nova_client
 
-    def set_credentials(self, username, password, auth_url, tenant_name):
-        self.username = username
-        self.password = password
-        self.auth_url = auth_url
-        self.tenant_name = tenant_name
-
-    def get_nova_credentials(self):
-        creds = {}
-        creds['username'] = self.username
-        creds['password'] = self.password
-        creds['auth_url'] = self.auth_url
-        creds['tenant_name'] = self.tenant_name
-        return creds
+    def set_credentials(self, snaps_creds):
+        self.snaps_creds = snaps_creds
 
     def get_address(self, server_name, network_name):
         nova_client = self.get_nova_client()
index 50487d1..d1c2e32 100644 (file)
@@ -32,10 +32,7 @@ class VmController(object):
         credentials = util_info["credentials"]
 
         self.util = Utilvnf()
-        self.util.set_credentials(credentials["username"],
-                                  credentials["password"],
-                                  credentials["auth_url"],
-                                  credentials["tenant_name"])
+        self.util.set_credentials(credentials["snaps_creds"])
 
         with open(self.util.test_env_config_yaml) as file_fd:
             test_env_config_yaml = yaml.safe_load(file_fd)