aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xci/prepare_env.py8
-rwxr-xr-xci/run_tests.py10
-rw-r--r--cli/commands/cli_env.py4
-rw-r--r--cli/commands/cli_os.py5
-rw-r--r--cli/commands/cli_testcase.py9
-rw-r--r--cli/commands/cli_tier.py9
-rw-r--r--docs/release-notes/functest-release.rst7
-rw-r--r--testcases/Controllers/ONOS/Teston/adapters/client.py14
-rw-r--r--testcases/Controllers/ONOS/Teston/adapters/connection.py18
-rw-r--r--testcases/Controllers/ONOS/Teston/adapters/environment.py39
-rw-r--r--testcases/Controllers/ONOS/Teston/adapters/foundation.py9
-rwxr-xr-xtestcases/Controllers/ONOS/Teston/onosfunctest.py12
-rwxr-xr-xtestcases/OpenStack/examples/create_instance_and_ip.py1
-rwxr-xr-xtestcases/OpenStack/rally/run_rally-cert.py8
-rwxr-xr-xtestcases/OpenStack/tempest/run_tempest.py7
-rw-r--r--testcases/OpenStack/vPing/vping_util.py5
-rwxr-xr-xtestcases/features/copper.py16
-rwxr-xr-xtestcases/features/doctor.py28
-rwxr-xr-xtestcases/features/domino.py9
-rwxr-xr-xtestcases/features/sfc/sfc.py116
-rwxr-xr-xtestcases/security_scan/security_scan.py12
-rwxr-xr-xtestcases/vnf/vIMS/vIMS.py7
-rw-r--r--utils/functest_utils.py2
-rwxr-xr-xutils/openstack_clean.py2
-rwxr-xr-xutils/openstack_snapshot.py6
25 files changed, 196 insertions, 167 deletions
diff --git a/ci/prepare_env.py b/ci/prepare_env.py
index b8c536f1a..0b528cfb3 100755
--- a/ci/prepare_env.py
+++ b/ci/prepare_env.py
@@ -13,18 +13,18 @@
#
-import argparse
+import json
import os
import re
import subprocess
import sys
-import json
+import argparse
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_utils as os_utils
import yaml
-
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
actions = ['start', 'check']
parser = argparse.ArgumentParser()
@@ -44,8 +44,6 @@ CI_INSTALLER_TYPE = ""
CI_INSTALLER_IP = ""
CI_SCENARIO = ""
CI_DEBUG = False
-REPOS_DIR = os.getenv('repos_dir')
-FUNCTEST_REPO = REPOS_DIR + '/functest/'
CONFIG_FUNCTEST_PATH = os.environ["CONFIG_FUNCTEST_YAML"]
CONFIG_PATCH_PATH = os.path.join(os.path.dirname(
CONFIG_FUNCTEST_PATH), "config_patch.yaml")
diff --git a/ci/run_tests.py b/ci/run_tests.py
index d8f488388..194793838 100755
--- a/ci/run_tests.py
+++ b/ci/run_tests.py
@@ -8,21 +8,21 @@
# http://www.apache.org/licenses/LICENSE-2.0
#
-import argparse
import datetime
import os
import re
import sys
+import argparse
import functest.ci.generate_report as generate_report
import functest.ci.tier_builder as tb
-from functest.testcases.Controllers.ODL.OpenDaylightTesting import ODLTestCases
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_clean as os_clean
import functest.utils.openstack_snapshot as os_snapshot
import functest.utils.openstack_utils as os_utils
-
+from functest.testcases.Controllers.ODL.OpenDaylightTesting import ODLTestCases
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--test", dest="test", action='store',
@@ -41,9 +41,7 @@ logger = ft_logger.Logger("run_tests").getLogger()
""" global variables """
-REPOS_DIR = os.getenv('repos_dir')
-FUNCTEST_REPO = ("%s/functest/" % REPOS_DIR)
-EXEC_SCRIPT = ("%sci/exec_test.sh" % FUNCTEST_REPO)
+EXEC_SCRIPT = ("%s/ci/exec_test.sh" % FUNCTEST_REPO)
CLEAN_FLAG = True
REPORT_FLAG = False
EXECUTED_TEST_CASES = []
diff --git a/cli/commands/cli_env.py b/cli/commands/cli_env.py
index 9e6372d4d..0f5ef2c60 100644
--- a/cli/commands/cli_env.py
+++ b/cli/commands/cli_env.py
@@ -12,9 +12,9 @@ import git
import os
import functest.utils.functest_utils as ft_utils
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
ENV_FILE = "/home/opnfv/functest/conf/env_active"
-FUNCTEST_REPO = "/home/opnfv/repos/functest/"
class CliEnv:
@@ -35,7 +35,7 @@ class CliEnv:
else:
answer = raw_input("Invalid answer. Please type [y|n]\n")
- cmd = ("python /home/opnfv/repos/functest/ci/prepare_env.py start")
+ cmd = ("python %s/ci/prepare_env.py start" % FUNCTEST_REPO)
ft_utils.execute_command(cmd)
def show(self):
diff --git a/cli/commands/cli_os.py b/cli/commands/cli_os.py
index a3b7ad31e..d38dc9e6a 100644
--- a/cli/commands/cli_os.py
+++ b/cli/commands/cli_os.py
@@ -14,11 +14,10 @@ import click
import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_clean as os_clean
import functest.utils.openstack_snapshot as os_snapshot
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
functest_yaml = ft_utils.get_functest_yaml()
-REPOS_DIR = os.getenv('repos_dir')
-FUNCTEST_REPO = ("%s/functest/" % REPOS_DIR)
FUNCTEST_CONF_DIR = functest_yaml.get("general").get(
"directories").get("dir_functest_conf")
RC_FILE = os.getenv('creds')
@@ -81,7 +80,7 @@ class CliOpenStack:
def check(self):
self.ping_endpoint()
- cmd = FUNCTEST_REPO + "ci/check_os.sh"
+ cmd = FUNCTEST_REPO + "/ci/check_os.sh"
ft_utils.execute_command(cmd, verbose=False)
def snapshot_create(self):
diff --git a/cli/commands/cli_testcase.py b/cli/commands/cli_testcase.py
index 498f08132..68f9ed610 100644
--- a/cli/commands/cli_testcase.py
+++ b/cli/commands/cli_testcase.py
@@ -15,6 +15,7 @@ import click
import functest.ci.tier_builder as tb
import functest.utils.functest_utils as ft_utils
import functest.utils.functest_vacation as vacation
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
functest_yaml = ft_utils.get_functest_yaml()
@@ -54,9 +55,9 @@ class CliTestcase:
"Run first 'functest env prepare'")
else:
if noclean:
- cmd = ("python /home/opnfv/repos/functest/ci/run_tests.py "
- "-n -t %s" % testname)
+ cmd = ("python %s/ci/run_tests.py "
+ "-n -t %s" % (FUNCTEST_REPO, testname))
else:
- cmd = ("python /home/opnfv/repos/functest/ci/run_tests.py "
- "-t %s" % testname)
+ cmd = ("python %s/ci/run_tests.py "
+ "-t %s" % (FUNCTEST_REPO, testname))
ft_utils.execute_command(cmd)
diff --git a/cli/commands/cli_tier.py b/cli/commands/cli_tier.py
index ea86a79ff..314246890 100644
--- a/cli/commands/cli_tier.py
+++ b/cli/commands/cli_tier.py
@@ -14,6 +14,7 @@ import os
import click
import functest.ci.tier_builder as tb
import functest.utils.functest_utils as ft_utils
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
functest_yaml = ft_utils.get_functest_yaml()
@@ -64,9 +65,9 @@ class CliTier:
"Run first 'functest env prepare'")
else:
if noclean:
- cmd = ("python /home/opnfv/repos/functest/ci/run_tests.py "
- "-n -t %s" % tiername)
+ cmd = ("python %s/ci/run_tests.py "
+ "-n -t %s" % (FUNCTEST_REPO, tiername))
else:
- cmd = ("python /home/opnfv/repos/functest/ci/run_tests.py "
- "-t %s" % tiername)
+ cmd = ("python %s/ci/run_tests.py "
+ "-t %s" % (FUNCTEST_REPO, tiername))
ft_utils.execute_command(cmd)
diff --git a/docs/release-notes/functest-release.rst b/docs/release-notes/functest-release.rst
index 6ebab22a7..9623b43d4 100644
--- a/docs/release-notes/functest-release.rst
+++ b/docs/release-notes/functest-release.rst
@@ -242,6 +242,13 @@ Colorado known restrictions/issues
| | | metadata service excluded from onos scenarios|
| | | https://gerrit.opnfv.org/gerrit/#/c/18729/ |
+-----------+-----------+----------------------------------------------+
+| any | odl_l3-* | Tempest cases related to using floating IP |
+| | | addresses fail because of a known ODL bug. |
+| | | vPing_ssh test case is excluded for the same |
+| | | reason. |
+| | | https://jira.opnfv.org/browse/APEX-112 |
+| | | https://jira.opnfv.org/browse/FUNCTEST-445 |
++-----------+-----------+----------------------------------------------+
| apex/fuel | *-bgpvpn | vPing_ssh (floating ips not supported) and |
| | | vIMS excluded. Some Tempest cases related to |
| | | floating ips also excluded. |
diff --git a/testcases/Controllers/ONOS/Teston/adapters/client.py b/testcases/Controllers/ONOS/Teston/adapters/client.py
index 77de092e4..6b3285e5e 100644
--- a/testcases/Controllers/ONOS/Teston/adapters/client.py
+++ b/testcases/Controllers/ONOS/Teston/adapters/client.py
@@ -10,15 +10,19 @@ Description:
# http://www.apache.org/licenses/LICENSE-2.0
#
"""
-from environment import environment
-import time
+import json
import pexpect
import requests
-import json
+import time
+
+from environment import environment
+import functest.utils.functest_logger as ft_logger
class client(environment):
+ logger = ft_logger.Logger("client").getLogger()
+
def __init__(self):
environment.__init__(self)
self.loginfo = environment()
@@ -50,7 +54,7 @@ class client(environment):
[len(lastshowscreeninfo)::])
lastshowscreeninfo = curshowscreeninfo
if Result == 0:
- print "Done!"
+ self.logger.info("Done!")
return
time.sleep(1)
circletime += 1
@@ -61,7 +65,7 @@ class client(environment):
def onosstart(self):
# This is the compass run machine user&pass,you need to modify
- print "Test Begin....."
+ self.logger.info("Test Begin.....")
self.OnosConnectionSet()
masterhandle = self.SSHlogin(self.localhost, self.masterusername,
self.masterpassword)
diff --git a/testcases/Controllers/ONOS/Teston/adapters/connection.py b/testcases/Controllers/ONOS/Teston/adapters/connection.py
index 16f2ef32c..b2a2e3d88 100644
--- a/testcases/Controllers/ONOS/Teston/adapters/connection.py
+++ b/testcases/Controllers/ONOS/Teston/adapters/connection.py
@@ -16,11 +16,15 @@ Description:
import os
import pexpect
import re
+
from foundation import foundation
+import functest.utils.functest_logger as ft_logger
class connection(foundation):
+ logger = ft_logger.Logger("connection").getLogger()
+
def __init__(self):
foundation.__init__(self)
self.loginfo = foundation()
@@ -33,7 +37,7 @@ class connection(foundation):
username: login user name
password: login password
"""
- print("Now Adding an user to known hosts " + ipaddr)
+ self.logger.info("Now Adding an user to known hosts " + ipaddr)
login = handle
login.sendline("ssh -l %s -p 8101 %s" % (username, ipaddr))
index = 0
@@ -78,7 +82,7 @@ class connection(foundation):
"""
Generate ssh keys, used for some server have no sshkey.
"""
- print "Now Generating SSH keys..."
+ self.logger.info("Now Generating SSH keys...")
# Here file name may be id_rsa or id_ecdsa or others
# So here will have a judgement
keysub = handle
@@ -112,7 +116,7 @@ class connection(foundation):
parameters:
password: root login password
"""
- print("Now changing to user root")
+ self.logger.info("Now changing to user root")
login = pexpect.spawn("su - root")
index = 0
while index != 2:
@@ -129,7 +133,7 @@ class connection(foundation):
"""
Exit root user.
"""
- print("Now Release user root")
+ self.logger.info("Now Release user root")
login = pexpect.spawn("exit")
index = login.expect(['logout', pexpect.EOF, pexpect.TIMEOUT])
if index == 0:
@@ -145,7 +149,7 @@ class connection(foundation):
parameters:
envalue: environment value to add
"""
- print "Now Adding bash environment"
+ self.logger.info("Now Adding bash environment")
fileopen = open("/etc/profile", 'r')
findContext = 1
while findContext:
@@ -165,7 +169,7 @@ class connection(foundation):
Change ONOS root path in file:bash_profile
onospath: path of onos root
"""
- print "Now Changing ONOS Root Path"
+ self.logger.info("Now Changing ONOS Root Path")
filepath = onospath + 'onos/tools/dev/bash_profile'
line = open(filepath, 'r').readlines()
lenall = len(line) - 1
@@ -175,7 +179,7 @@ class connection(foundation):
NewFile = open(filepath, 'w')
NewFile.writelines(line)
NewFile.close
- print "Done!"
+ self.logger.info("Done!")
def OnosConnectionSet(self):
"""
diff --git a/testcases/Controllers/ONOS/Teston/adapters/environment.py b/testcases/Controllers/ONOS/Teston/adapters/environment.py
index 231677333..f2755b669 100644
--- a/testcases/Controllers/ONOS/Teston/adapters/environment.py
+++ b/testcases/Controllers/ONOS/Teston/adapters/environment.py
@@ -15,17 +15,21 @@ Description:
#
"""
-import os
-import time
import pexpect
+import pxssh
import re
+import os
import sys
-import pxssh
+import time
+
from connection import connection
+import functest.utils.functest_logger as ft_logger
class environment(connection):
+ logger = ft_logger.Logger("environment").getLogger()
+
def __init__(self):
connection.__init__(self)
self.loginfo = connection()
@@ -39,9 +43,9 @@ class environment(connection):
handle: current working handle
codeurl: clone code url
"""
- print "Now loading test codes! Please wait in patient..."
+ self.logger.info("Now loading test codes! Please wait in patient...")
originalfolder = sys.path[0]
- print originalfolder
+ self.logger.info(originalfolder)
gitclone = handle
gitclone.sendline("git clone " + codeurl)
index = 0
@@ -82,7 +86,7 @@ class environment(connection):
parameters:
handle(input): current working handle
"""
- print "Now Cleaning test environment"
+ self.logger.info("Now Cleaning test environment")
handle.sendline("sudo apt-get install -y mininet")
handle.prompt()
handle.sendline("sudo pip install configobj")
@@ -102,7 +106,7 @@ class environment(connection):
cmd(input): onos-push-keys xxx(xxx is device)
password(input): login in password
"""
- print "Now Pushing Onos Keys:" + cmd
+ self.logger.info("Now Pushing Onos Keys:" + cmd)
Pushkeys = handle
Pushkeys.sendline(cmd)
Result = 0
@@ -121,7 +125,7 @@ class environment(connection):
break
time.sleep(2)
Pushkeys.prompt()
- print "Done!"
+ self.logger.info("Done!")
def SetOnosEnvVar(self, handle, masterpass, agentpass):
"""
@@ -131,13 +135,14 @@ class environment(connection):
masterpass: scripts running server's password
agentpass: onos cluster&compute node password
"""
- print "Now Setting test environment"
+ self.logger.info("Now Setting test environment")
for host in self.hosts:
- print "try to connect " + str(host)
+ self.logger.info("try to connect " + str(host))
result = self.CheckSshNoPasswd(host)
if not result:
- print ("ssh login failed,try to copy master publickey" +
- "to agent " + str(host))
+ self.logger.info(
+ "ssh login failed,try to copy master publickey" +
+ "to agent " + str(host))
self.CopyPublicKey(host)
self.OnosPushKeys(handle, "onos-push-keys " + self.OCT, masterpass)
self.OnosPushKeys(handle, "onos-push-keys " + self.OC1, agentpass)
@@ -173,7 +178,7 @@ class environment(connection):
user: onos&compute node user
password: onos&compute node password
"""
- print "Now Changing ONOS name&password"
+ self.logger.info("Now Changing ONOS name&password")
filepath = self.home + '/onos/tools/build/envDefaults'
line = open(filepath, 'r').readlines()
lenall = len(line) - 1
@@ -187,7 +192,7 @@ class environment(connection):
NewFile = open(filepath, 'w')
NewFile.writelines(line)
NewFile.close
- print "Done!"
+ self.logger.info("Done!")
def ChangeTestCasePara(self, testcase, user, password):
"""
@@ -196,7 +201,7 @@ class environment(connection):
user: onos&compute node user
password: onos&compute node password
"""
- print "Now Changing " + testcase + " name&password"
+ self.logger.info("Now Changing " + testcase + " name&password")
if self.masterusername == 'root':
filepath = '/root/'
else:
@@ -232,7 +237,7 @@ class environment(connection):
login.sendline('ls -l')
# match prompt
login.prompt()
- print("SSH login " + ipaddr + " success!")
+ self.logger.info("SSH login " + ipaddr + " success!")
return login
def SSHRelease(self, handle):
@@ -256,7 +261,7 @@ class environment(connection):
str(publickey) + ">>/root/.ssh/authorized_keys\'")
tmphandle.prompt()
self.SSHRelease(tmphandle)
- print "Add OCT PublicKey to " + host + " success"
+ self.logger.info("Add OCT PublicKey to " + host + " success")
def OnosEnvSetup(self, handle):
"""
diff --git a/testcases/Controllers/ONOS/Teston/adapters/foundation.py b/testcases/Controllers/ONOS/Teston/adapters/foundation.py
index 47605eb74..3fae2a5d2 100644
--- a/testcases/Controllers/ONOS/Teston/adapters/foundation.py
+++ b/testcases/Controllers/ONOS/Teston/adapters/foundation.py
@@ -11,12 +11,14 @@ Description:
#
"""
+import datetime
import logging
import os
+import re
import time
import yaml
-import re
-import datetime
+
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
class foundation:
@@ -24,7 +26,7 @@ class foundation:
def __init__(self):
# currentpath = os.getcwd()
- REPO_PATH = os.environ['repos_dir'] + '/functest/'
+ REPO_PATH = FUNCTEST_REPO + '/'
currentpath = REPO_PATH + 'testcases/Controllers/ONOS/Teston/CI'
self.cipath = currentpath
self.logdir = os.path.join(currentpath, 'log')
@@ -47,7 +49,6 @@ class foundation:
filemode='w')
filelog = logging.FileHandler(self.logfilepath)
logging.getLogger('Functest').addHandler(filelog)
- print loginfo
logging.info(loginfo)
def getdefaultpara(self):
diff --git a/testcases/Controllers/ONOS/Teston/onosfunctest.py b/testcases/Controllers/ONOS/Teston/onosfunctest.py
index 2790e6941..6b922fba9 100755
--- a/testcases/Controllers/ONOS/Teston/onosfunctest.py
+++ b/testcases/Controllers/ONOS/Teston/onosfunctest.py
@@ -18,13 +18,13 @@ import datetime
import os
import re
import time
-import argparse
-
-from neutronclient.v2_0 import client as neutronclient
+import argparse
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
import functest.utils.openstack_utils as openstack_utils
+from functest.utils.functest_utils import FUNCTEST_REPO as REPO_PATH
+from neutronclient.v2_0 import client as neutronclient
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--testcase", help="Testcase name")
@@ -41,10 +41,6 @@ ONOS_REPO_PATH = functest_utils.get_parameter_from_yaml(
"general.directories.dir_repos")
ONOS_CONF_DIR = functest_utils.get_parameter_from_yaml(
"general.directories.dir_functest_conf")
-REPO_PATH = ONOS_REPO_PATH + '/functest/'
-if not os.path.exists(REPO_PATH):
- logger.error("Functest repository directory not found '%s'" % REPO_PATH)
- exit(-1)
ONOSCI_PATH = ONOS_REPO_PATH + "/"
starttime = datetime.datetime.now()
@@ -59,7 +55,7 @@ GLANCE_IMAGE_FILENAME = functest_utils.get_parameter_from_yaml(
"onos_sfc.image_file_name")
GLANCE_IMAGE_PATH = functest_utils.get_parameter_from_yaml(
"general.directories.dir_functest_data") + "/" + GLANCE_IMAGE_FILENAME
-SFC_PATH = REPO_PATH + functest_utils.get_parameter_from_yaml(
+SFC_PATH = REPO_PATH + "/" + functest_utils.get_parameter_from_yaml(
"general.directories.dir_onos_sfc")
diff --git a/testcases/OpenStack/examples/create_instance_and_ip.py b/testcases/OpenStack/examples/create_instance_and_ip.py
index 92a3df6b5..3d41e5dde 100755
--- a/testcases/OpenStack/examples/create_instance_and_ip.py
+++ b/testcases/OpenStack/examples/create_instance_and_ip.py
@@ -28,7 +28,6 @@ args = parser.parse_args()
""" logging configuration """
logger = ft_logger.Logger("create_instance_and_ip").getLogger()
-REPO_PATH = os.environ['repos_dir'] + '/functest/'
HOME = os.environ['HOME'] + "/"
VM_BOOT_TIMEOUT = 180
diff --git a/testcases/OpenStack/rally/run_rally-cert.py b/testcases/OpenStack/rally/run_rally-cert.py
index 43096c19e..b77cbdf54 100755
--- a/testcases/OpenStack/rally/run_rally-cert.py
+++ b/testcases/OpenStack/rally/run_rally-cert.py
@@ -26,6 +26,7 @@ import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
import functest.utils.openstack_utils as os_utils
import iniparse
+from functest.utils.functest_utils import FUNCTEST_REPO as REPO_PATH
tests = ['authenticate', 'glance', 'cinder', 'heat', 'keystone',
'neutron', 'nova', 'quotas', 'requests', 'vm', 'all']
@@ -69,16 +70,11 @@ else:
""" logging configuration """
logger = ft_logger.Logger("run_rally").getLogger()
-REPO_PATH = os.environ['repos_dir'] + '/functest/'
-if not os.path.exists(REPO_PATH):
- logger.error("Functest repository directory not found '%s'" % REPO_PATH)
- exit(-1)
-
functest_yaml = functest_utils.get_functest_yaml()
HOME = os.environ['HOME'] + "/"
-RALLY_DIR = REPO_PATH + functest_yaml.get("general").get(
+RALLY_DIR = REPO_PATH + '/' + functest_yaml.get("general").get(
"directories").get("dir_rally")
TEMPLATE_DIR = RALLY_DIR + "scenario/templates"
SUPPORT_DIR = RALLY_DIR + "scenario/support"
diff --git a/testcases/OpenStack/tempest/run_tempest.py b/testcases/OpenStack/tempest/run_tempest.py
index fbb65dbb7..390c8a65f 100755
--- a/testcases/OpenStack/tempest/run_tempest.py
+++ b/testcases/OpenStack/tempest/run_tempest.py
@@ -14,7 +14,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
#
import ConfigParser
-import argparse
import os
import re
import shutil
@@ -22,11 +21,12 @@ import subprocess
import sys
import time
+import argparse
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_utils as os_utils
import yaml
-
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
modes = ['full', 'smoke', 'baremetal', 'compute', 'data_processing',
'identity', 'image', 'network', 'object_storage', 'orchestration',
@@ -58,8 +58,6 @@ args = parser.parse_args()
""" logging configuration """
logger = ft_logger.Logger("run_tempest").getLogger()
-REPO_PATH = os.environ['repos_dir'] + '/functest/'
-
functest_yaml = ft_utils.get_functest_yaml()
TEST_DB = functest_yaml.get("results").get("test_db_url")
@@ -92,6 +90,7 @@ RESULTS_DIR = functest_yaml.get("general").get("directories").get(
TEMPEST_RESULTS_DIR = RESULTS_DIR + '/tempest'
TEST_LIST_DIR = functest_yaml.get("general").get("directories").get(
"dir_tempest_cases")
+REPO_PATH = FUNCTEST_REPO + '/'
TEMPEST_CUSTOM = REPO_PATH + TEST_LIST_DIR + 'test_list.txt'
TEMPEST_BLACKLIST = REPO_PATH + TEST_LIST_DIR + 'blacklist.txt'
TEMPEST_DEFCORE = REPO_PATH + TEST_LIST_DIR + 'defcore_req.txt'
diff --git a/testcases/OpenStack/vPing/vping_util.py b/testcases/OpenStack/vPing/vping_util.py
index 8e9ce23ec..d3ca44139 100644
--- a/testcases/OpenStack/vPing/vping_util.py
+++ b/testcases/OpenStack/vPing/vping_util.py
@@ -7,10 +7,9 @@ import time
import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_utils as os_utils
import paramiko
+from functest.utils.functest_utils import FUNCTEST_REPO as REPO_PATH
from scp import SCPClient
-REPO_PATH = os.environ['repos_dir'] + '/functest/'
-
functest_yaml = ft_utils.get_functest_yaml()
NAME_VM_1 = functest_yaml.get("vping").get("vm_name_1")
@@ -340,7 +339,7 @@ def transfer_ping_script(ssh, floatip):
logger.info("Trying to transfer ping.sh to %s..." % floatip)
scp = SCPClient(ssh.get_transport())
- ping_script = REPO_PATH + "testcases/OpenStack/vPing/ping.sh"
+ ping_script = REPO_PATH + '/' + "testcases/OpenStack/vPing/ping.sh"
try:
scp.put(ping_script, "~/")
except:
diff --git a/testcases/features/copper.py b/testcases/features/copper.py
index 73def7db2..9be909427 100755
--- a/testcases/features/copper.py
+++ b/testcases/features/copper.py
@@ -14,23 +14,24 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+import argparse
import sys
import time
-import argparse
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
+
parser = argparse.ArgumentParser()
parser.add_argument("-r", "--report",
help="Create json result file",
action="store_true")
args = parser.parse_args()
-functest_yaml = functest_utils.get_functest_yaml()
-
-dirs = functest_yaml.get('general').get('directories')
-COPPER_REPO = dirs.get('dir_repo_copper')
+COPPER_REPO = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_repo_copper')
+RESULTS_DIR = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_results')
logger = ft_logger.Logger("copper").getLogger()
@@ -40,7 +41,10 @@ def main():
start_time = time.time()
- ret_val = functest_utils.execute_command(cmd, logger, exit_on_error=False)
+ log_file = RESULTS_DIR + "/copper.log"
+ ret_val = functest_utils.execute_command(cmd,
+ exit_on_error=False,
+ output_file=log_file)
stop_time = time.time()
duration = round(stop_time - start_time, 1)
diff --git a/testcases/features/doctor.py b/testcases/features/doctor.py
index 6e6f26f37..68c80a9e4 100755
--- a/testcases/features/doctor.py
+++ b/testcases/features/doctor.py
@@ -13,12 +13,14 @@
# 0.2: measure test duration and publish results under json format
#
#
+import argparse
+import os
import time
-import argparse
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
+
parser = argparse.ArgumentParser()
parser.add_argument("-r", "--report",
help="Create json result file",
@@ -27,28 +29,40 @@ args = parser.parse_args()
functest_yaml = functest_utils.get_functest_yaml()
-dirs = functest_yaml.get('general').get('directories')
-DOCTOR_REPO = dirs.get('dir_repo_doctor')
+DOCTOR_REPO = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_repo_doctor')
+RESULTS_DIR = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_results')
logger = ft_logger.Logger("doctor").getLogger()
def main():
exit_code = -1
+
+ # if the image name is explicitly set for the doctor suite, set it as
+ # enviroment variable
+ if 'doctor' in functest_yaml and 'image_name' in functest_yaml['doctor']:
+ os.environ["IMAGE_NAME"] = functest_yaml['doctor']['image_name']
+
cmd = 'cd %s/tests && ./run.sh' % DOCTOR_REPO
+ log_file = RESULTS_DIR + "/doctor.log"
+
start_time = time.time()
- ret = functest_utils.execute_command(cmd, logger, info=True,
- exit_on_error=False)
+ ret = functest_utils.execute_command(cmd,
+ info=True,
+ exit_on_error=False,
+ output_file=log_file)
stop_time = time.time()
duration = round(stop_time - start_time, 1)
if ret == 0:
- logger.info("doctor OK")
+ logger.info("Doctor test case OK")
test_status = 'OK'
exit_code = 0
else:
- logger.info("doctor FAILED")
+ logger.info("Doctor test case FAILED")
test_status = 'NOK'
details = {
diff --git a/testcases/features/domino.py b/testcases/features/domino.py
index cc98f546d..c717c060e 100755
--- a/testcases/features/domino.py
+++ b/testcases/features/domino.py
@@ -14,9 +14,9 @@
# 0.3: add report flag to push results when needed
#
+import argparse
import time
-import argparse
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
@@ -31,15 +31,20 @@ functest_yaml = functest_utils.get_functest_yaml()
dirs = functest_yaml.get('general').get('directories')
DOMINO_REPO = dirs.get('dir_repo_domino')
+RESULTS_DIR = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_results')
logger = ft_logger.Logger("domino").getLogger()
def main():
cmd = 'cd %s && ./tests/run_multinode.sh' % DOMINO_REPO
+ log_file = RESULTS_DIR + "/domino.log"
start_time = time.time()
- ret = functest_utils.execute_command(cmd, logger, exit_on_error=False)
+ ret = functest_utils.execute_command(cmd,
+ exit_on_error=False,
+ output_file=log_file)
stop_time = time.time()
duration = round(stop_time - start_time, 1)
diff --git a/testcases/features/sfc/sfc.py b/testcases/features/sfc/sfc.py
index 3cf1052b6..27d80bc00 100755
--- a/testcases/features/sfc/sfc.py
+++ b/testcases/features/sfc/sfc.py
@@ -1,12 +1,14 @@
-import argparse
import os
import subprocess
import sys
import time
+
+import argparse
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_utils as os_utils
import paramiko
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
parser = argparse.ArgumentParser()
@@ -19,7 +21,6 @@ args = parser.parse_args()
""" logging configuration """
logger = ft_logger.Logger("ODL_SFC").getLogger()
-REPO_PATH = os.environ['repos_dir'] + '/functest/'
HOME = os.environ['HOME'] + "/"
VM_BOOT_TIMEOUT = 180
@@ -203,8 +204,8 @@ def main():
# CREATION OF THE 2 SF ####
- tacker_script = "/home/opnfv/repos/functest/testcases/features/sfc/" + \
- TACKER_SCRIPT
+ tacker_script = "%s/testcases/features/sfc/%s" % \
+ (FUNCTEST_REPO, TACKER_SCRIPT)
logger.info("Executing tacker script: '%s'" % tacker_script)
subprocess.call(tacker_script, shell=True)
@@ -260,15 +261,16 @@ def main():
try:
while 1:
- (stdin, stdout, stderr) = ssh.exec_command("ps lax | grep python")
- if "vxlan_tool.py" in stdout.readlines()[0]:
+ (stdin, stdout, stderr) = ssh.exec_command(
+ "ps aux | grep \"vxlan_tool.py\" | grep -v grep")
+ if len(stdout.readlines()) > 0:
logger.debug("HTTP firewall started")
break
else:
logger.debug("HTTP firewall not started")
time.sleep(3)
- except:
- logger.error("vxlan_tool not started in SF1")
+ except Exception:
+ logger.exception("vxlan_tool not started in SF1")
# SSH TO START THE VXLAN_TOOL ON SF2
try:
@@ -284,15 +286,16 @@ def main():
try:
while 1:
- (stdin, stdout, stderr) = ssh.exec_command("ps lax | grep python")
- if "vxlan_tool.py" in stdout.readlines()[0]:
+ (stdin, stdout, stderr) = ssh.exec_command(
+ "ps aux | grep \"vxlan_tool.py\" | grep -v grep")
+ if len(stdout.readlines()) > 0:
logger.debug("SSH firewall started")
break
else:
logger.debug("SSH firewall not started")
time.sleep(3)
- except:
- logger.error("vxlan_tool not started in SF2")
+ except Exception:
+ logger.exception("vxlan_tool not started in SF2")
# SSH to modify the classification flows in compute
@@ -303,55 +306,59 @@ def main():
shell=True,
stdout=subprocess.PIPE)
- # SSH TO EXECUTE cmd_client
+ logger.info("Waiting for 60 seconds before TEST")
+ for j in range(0, 6):
+ logger.info("Test starting in {0} seconds".format(str((6 - j)*10)))
+ time.sleep(10)
+
+ i = 0
+ # SSH TO EXECUTE cmd_client
logger.info("TEST STARTED")
try:
ssh.connect(floatip_client, username="root",
password="opnfv", timeout=2)
command = "nc -w 5 -zv " + instance_ip_2 + " 22 2>&1"
(stdin, stdout, stderr) = ssh.exec_command(command)
+
+ # WRITE THE CORRECT WAY TO DO LOGGING
+ if "timed out" in stdout.readlines()[0]:
+ logger.info('\033[92m' + "TEST 1 [PASSED] "
+ "==> SSH BLOCKED" + '\033[0m')
+ i = i + 1
+ else:
+ logger.error('\033[91m' + "TEST 1 [FAILED] "
+ "==> SSH NOT BLOCKED" + '\033[0m')
+ return
except:
logger.debug("Waiting for %s..." % floatip_client)
time.sleep(6)
# timeout -= 1
- # WRITE THE CORRECT WAY TO DO LOGGING
- i = 0
- if "timed out" in stdout.readlines()[0]:
- logger.info('\033[92m' + "TEST 1 [PASSED] "
- "==> SSH BLOCKED" + '\033[0m')
- i = i + 1
- else:
- logger.error('\033[91m' + "TEST 1 [FAILED] "
- "==> SSH NOT BLOCKED" + '\033[0m')
- return
-
# SSH TO EXECUTE cmd_client
-
try:
ssh.connect(floatip_client, username="root",
password="opnfv", timeout=2)
command = "nc -w 5 -zv " + instance_ip_2 + " 80 2>&1"
(stdin, stdout, stderr) = ssh.exec_command(command)
+
+ if "succeeded" in stdout.readlines()[0]:
+ logger.info('\033[92m' + "TEST 2 [PASSED] "
+ "==> HTTP WORKS" + '\033[0m')
+ i = i + 1
+ else:
+ logger.error('\033[91m' + "TEST 2 [FAILED] "
+ "==> HTTP BLOCKED" + '\033[0m')
+ return
except:
logger.debug("Waiting for %s..." % floatip_client)
time.sleep(6)
# timeout -= 1
- if "succeeded" in stdout.readlines()[0]:
- logger.info('\033[92m' + "TEST 2 [PASSED] "
- "==> HTTP WORKS" + '\033[0m')
- i = i + 1
- else:
- logger.error('\033[91m' + "TEST 2 [FAILED] "
- "==> HTTP BLOCKED" + '\033[0m')
- return
-
# CHANGE OF CLASSIFICATION #
logger.info("Changing the classification")
- tacker_classi = "/home/opnfv/repos/functest/testcases/features/sfc/" + \
- TACKER_CHANGECLASSI
+ tacker_classi = "%s/testcases/features/sfc/%s" % \
+ (FUNCTEST_REPO, TACKER_CHANGECLASSI)
subprocess.call(tacker_classi, shell=True)
logger.info("Wait for ODL to update the classification rules in OVS")
@@ -373,41 +380,40 @@ def main():
password="opnfv", timeout=2)
command = "nc -w 5 -zv " + instance_ip_2 + " 80 2>&1"
(stdin, stdout, stderr) = ssh.exec_command(command)
+
+ if "timed out" in stdout.readlines()[0]:
+ logger.info('\033[92m' + "TEST 3 [WORKS] "
+ "==> HTTP BLOCKED" + '\033[0m')
+ i = i + 1
+ else:
+ logger.error('\033[91m' + "TEST 3 [FAILED] "
+ "==> HTTP NOT BLOCKED" + '\033[0m')
+ return
except:
logger.debug("Waiting for %s..." % floatip_client)
time.sleep(6)
# timeout -= 1
- if "timed out" in stdout.readlines()[0]:
- logger.info('\033[92m' + "TEST 3 [WORKS] "
- "==> HTTP BLOCKED" + '\033[0m')
- i = i + 1
- else:
- logger.error('\033[91m' + "TEST 3 [FAILED] "
- "==> HTTP NOT BLOCKED" + '\033[0m')
- return
-
# SSH TO EXECUTE cmd_client
-
try:
ssh.connect(floatip_client, username="root",
password="opnfv", timeout=2)
command = "nc -w 5 -zv " + instance_ip_2 + " 22 2>&1"
(stdin, stdout, stderr) = ssh.exec_command(command)
+
+ if "succeeded" in stdout.readlines()[0]:
+ logger.info('\033[92m' + "TEST 4 [WORKS] "
+ "==> SSH WORKS" + '\033[0m')
+ i = i + 1
+ else:
+ logger.error('\033[91m' + "TEST 4 [FAILED] "
+ "==> SSH BLOCKED" + '\033[0m')
+ return
except:
logger.debug("Waiting for %s..." % floatip_client)
time.sleep(6)
# timeout -= 1
- if "succeeded" in stdout.readlines()[0]:
- logger.info('\033[92m' + "TEST 4 [WORKS] "
- "==> SSH WORKS" + '\033[0m')
- i = i + 1
- else:
- logger.error('\033[91m' + "TEST 4 [FAILED] "
- "==> SSH BLOCKED" + '\033[0m')
- return
-
if i == 4:
for x in range(0, 5):
logger.info('\033[92m' + "SFC TEST WORKED"
diff --git a/testcases/security_scan/security_scan.py b/testcases/security_scan/security_scan.py
index 36b795431..7b9250215 100755
--- a/testcases/security_scan/security_scan.py
+++ b/testcases/security_scan/security_scan.py
@@ -12,17 +12,19 @@
# nominated node. Post scan a report is downloaded and if '--clean' is passed
# all trace of the scan is removed from the remote system.
-import argparse
-import connect
import datetime
import os
import sys
-
from ConfigParser import SafeConfigParser
-from keystoneclient.auth.identity import v2
+
+import argparse
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
from keystoneclient import session
+from keystoneclient.auth.identity import v2
from novaclient import client
+import connect
+
__version__ = 0.1
__author__ = 'Luke Hinds (lhinds@redhat.com)'
__url__ = 'https://wiki.opnfv.org/display/functest/Functest+Security'
@@ -30,7 +32,7 @@ __url__ = 'https://wiki.opnfv.org/display/functest/Functest+Security'
# Global vars
INSTALLER_IP = os.getenv('INSTALLER_IP')
oscapbin = 'sudo /bin/oscap'
-functest_dir = '/home/opnfv/repos/functest/testcases/security_scan/'
+functest_dir = '%s/testcases/security_scan/' % FUNCTEST_REPO
# Apex Spefic var needed to query Undercloud
if os.getenv('OS_AUTH_URL') is None:
diff --git a/testcases/vnf/vIMS/vIMS.py b/testcases/vnf/vIMS/vIMS.py
index 7a96c94e1..ffcd09b84 100755
--- a/testcases/vnf/vIMS/vIMS.py
+++ b/testcases/vnf/vIMS/vIMS.py
@@ -25,6 +25,7 @@ import functest.utils.openstack_utils as os_utils
import keystoneclient.v2_0.client as ksclient
import novaclient.client as nvclient
import requests
+from functest.utils.functest_utils import FUNCTEST_REPO as REPO_PATH
from neutronclient.v2_0 import client as ntclient
from clearwater import clearwater
@@ -46,15 +47,11 @@ args = parser.parse_args()
""" logging configuration """
logger = ft_logger.Logger("vIMS").getLogger()
-REPO_PATH = os.environ['repos_dir'] + '/functest/'
-if not os.path.exists(REPO_PATH):
- logger.error("Functest repository directory not found '%s'" % REPO_PATH)
- exit(-1)
functest_yaml = functest_utils.get_functest_yaml()
# Cloudify parameters
-VIMS_DIR = (REPO_PATH +
+VIMS_DIR = (REPO_PATH + '/' +
functest_yaml.get("general").get("directories").get("dir_vIMS"))
VIMS_DATA_DIR = functest_yaml.get("general").get(
"directories").get("dir_vIMS_data") + "/"
diff --git a/utils/functest_utils.py b/utils/functest_utils.py
index ff8234104..041601e21 100644
--- a/utils/functest_utils.py
+++ b/utils/functest_utils.py
@@ -28,7 +28,7 @@ import yaml
logger = ft_logger.Logger("functest_utils").getLogger()
REPOS_DIR = os.getenv('repos_dir')
-FUNCTEST_REPO = ("%s/functest/" % REPOS_DIR)
+FUNCTEST_REPO = ("%s/functest" % REPOS_DIR)
# ----------------------------------------------------------
diff --git a/utils/openstack_clean.py b/utils/openstack_clean.py
index 3b937c917..ef26be1f3 100755
--- a/utils/openstack_clean.py
+++ b/utils/openstack_clean.py
@@ -233,7 +233,7 @@ def remove_ports(neutron_client, ports, network_ids):
except:
logger.debug(" > WARNING: Port %s does not contain fixed_ips"
% port_id)
- print port
+ logger.info(port)
router_id = port['device_id']
if len(port['fixed_ips']) == 0 and router_id == '':
logger.debug("Removing port %s ..." % port_id)
diff --git a/utils/openstack_snapshot.py b/utils/openstack_snapshot.py
index 058f9ded3..236cf74e5 100755
--- a/utils/openstack_snapshot.py
+++ b/utils/openstack_snapshot.py
@@ -20,7 +20,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
#
-import os
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_utils as os_utils
@@ -29,11 +28,6 @@ import yaml
logger = ft_logger.Logger("openstack_snapshot").getLogger()
-REPO_PATH = os.environ['repos_dir'] + '/functest/'
-if not os.path.exists(REPO_PATH):
- logger.error("Functest repository directory not found '%s'" % REPO_PATH)
- exit(-1)
-
OS_SNAPSHOT_FILE = ft_utils.get_parameter_from_yaml(
"general.openstack.snapshot_file")