summaryrefslogtreecommitdiffstats
path: root/sfc/lib
diff options
context:
space:
mode:
Diffstat (limited to 'sfc/lib')
-rw-r--r--sfc/lib/config.py30
-rw-r--r--sfc/lib/utils.py39
2 files changed, 47 insertions, 22 deletions
diff --git a/sfc/lib/config.py b/sfc/lib/config.py
index c1e73e46..16613eab 100644
--- a/sfc/lib/config.py
+++ b/sfc/lib/config.py
@@ -10,7 +10,10 @@
import os
import yaml
+import sfc
+import functest
+import sfc.lib.utils as test_utils
from functest.utils.constants import CONST
import logging
import functest.utils.functest_utils as ft_utils
@@ -27,37 +30,44 @@ class CommonConfig(object):
def __init__(self):
self.line_length = 30
self.test_db = ft_utils.get_functest_config("results.test_db_url")
- self.repo_path = CONST.dir_repo_sfc
+ self.functest_repo_path = os.path.dirname(functest.__file__)
+ self.functest_logging_api = os.path.join(self.functest_repo_path,
+ "ci", "logging.ini")
+ self.sfc_repo_path = os.path.dirname(sfc.__file__)
self.sfc_test_dir = os.path.join(
- self.repo_path, "sfc", "tests", "functest")
+ self.sfc_repo_path, "tests", "functest")
self.vnfd_dir = os.path.join(self.sfc_test_dir, "vnfd-templates")
self.vnfd_default_params_file = os.path.join(
self.sfc_test_dir, "vnfd-default-params-file")
self.functest_results_dir = os.path.join(
CONST.dir_results, "odl-sfc")
self.config_file = os.path.join(self.sfc_test_dir, "config.yaml")
- self.installer_type = ft_utils.get_parameter_from_yaml(
- "defaults.installer.type", self.config_file)
- self.installer_ip = ft_utils.get_parameter_from_yaml(
- "defaults.installer.ip", self.config_file)
+
+ self.installer_type = CONST.__getattribute__('INSTALLER_TYPE')
+
+ self.installer_fields = test_utils.fill_installer_dict(
+ self.installer_type)
+
+ self.installer_ip = CONST.__getattribute__('INSTALLER_IP')
+
self.installer_user = ft_utils.get_parameter_from_yaml(
- "defaults.installer.user", self.config_file)
+ self.installer_fields['user'], self.config_file)
try:
self.installer_password = ft_utils.get_parameter_from_yaml(
- "defaults.installer.password", self.config_file)
+ self.installer_fields['password'], self.config_file)
except:
self.installer_password = None
try:
self.installer_key_file = ft_utils.get_parameter_from_yaml(
- "defaults.installer.key_file", self.config_file)
+ self.installer_fields['pkey_file'], self.config_file)
except:
self.installer_key_file = None
try:
self.installer_cluster = ft_utils.get_parameter_from_yaml(
- "defaults.installer.cluster", self.config_file)
+ self.installer_fields['cluster'], self.config_file)
except:
self.installer_cluster = None
diff --git a/sfc/lib/utils.py b/sfc/lib/utils.py
index 2a188960..bc7a9ddc 100644
--- a/sfc/lib/utils.py
+++ b/sfc/lib/utils.py
@@ -7,15 +7,15 @@
#
# http://www.apache.org/licenses/LICENSE-2.0
#
-
+import ConfigParser
import os
import re
import subprocess
import requests
import time
-import xmltodict
import yaml
+
import logging
import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_utils as os_utils
@@ -559,16 +559,20 @@ def get_nova_id(tacker_client, resource, vnf_id=None, vnf_name=None):
def get_odl_ip_port(nodes):
- local_jetty = os.path.join(os.getcwd(), 'jetty.xml')
- odl_node = next(n for n in nodes if n.is_odl())
- odl_node.get_file('/opt/opendaylight/etc/jetty.xml', local_jetty)
- with open(local_jetty) as fd:
- parsed = xmltodict.parse(fd.read(), dict_constructor=dict)
-
- ip = (parsed['Configure']['Call'][0]['Arg']['New']
- ['Set'][0]['Property']['@default'])
- port = (parsed['Configure']['Call'][0]['Arg']['New']
- ['Set'][1]['Property']['@default'])
+ controller_node = next(n for n in nodes if n.is_controller())
+ home_folder = controller_node.run_cmd('pwd')
+ remote_ml2_conf_etc = '/etc/neutron/plugins/ml2/ml2_conf.ini'
+ remote_ml2_conf_home = '{0}/ml2_conf.ini'.format(home_folder)
+ local_ml2_conf_file = os.path.join(os.getcwd(), 'ml2_conf.ini')
+ controller_node.run_cmd('sudo cp {0} {1}/'
+ .format(remote_ml2_conf_etc, home_folder))
+ controller_node.run_cmd('sudo chmod 777 {0}'
+ .format(remote_ml2_conf_home))
+ controller_node.get_file(remote_ml2_conf_home, local_ml2_conf_file)
+ con_par = ConfigParser.RawConfigParser()
+ con_par.read(local_ml2_conf_file)
+ ip, port = re.search(r'[0-9]+(?:\.[0-9]+){3}\:[0-9]+',
+ con_par.get('ml2_odl', 'url')).group().split(':')
return ip, port
@@ -651,3 +655,14 @@ def delete_classifier_and_acl(tacker_client, clf_name, odl_ip, odl_port):
odl_port,
'ietf-access-control-list:ipv4-acl',
clf_name)
+
+
+def fill_installer_dict(installer_type):
+ default_string = "defaults.installer.{}.".format(installer_type)
+ installer_yaml_fields = {
+ "user": default_string+"user",
+ "password": default_string+"password",
+ "cluster": default_string+"cluster",
+ "pkey_file": default_string+"pkey_file"
+ }
+ return installer_yaml_fields