aboutsummaryrefslogtreecommitdiffstats
path: root/testcases
diff options
context:
space:
mode:
Diffstat (limited to 'testcases')
-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.py17
-rwxr-xr-xtestcases/OpenStack/tempest/run_tempest.py11
-rw-r--r--testcases/OpenStack/vPing/vping_util.py12
-rwxr-xr-xtestcases/features/copper.py18
-rwxr-xr-xtestcases/features/doctor.py29
-rwxr-xr-xtestcases/features/domino.py12
-rwxr-xr-xtestcases/features/promise.py9
-rwxr-xr-xtestcases/features/sfc/sfc.py116
-rwxr-xr-xtestcases/security_scan/security_scan.py12
-rwxr-xr-xtestcases/vnf/vIMS/vIMS.py24
-rwxr-xr-xtestcases/vnf/vRNC/parser.py7
17 files changed, 182 insertions, 178 deletions
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 f3eb79d26..b77cbdf54 100755
--- a/testcases/OpenStack/rally/run_rally-cert.py
+++ b/testcases/OpenStack/rally/run_rally-cert.py
@@ -15,18 +15,18 @@
#
""" tests configuration """
-import argparse
import json
import os
import re
import subprocess
import time
+
+import argparse
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
-import yaml
-
+from functest.utils.functest_utils import FUNCTEST_REPO as REPO_PATH
tests = ['authenticate', 'glance', 'cinder', 'heat', 'keystone',
'neutron', 'nova', 'quotas', 'requests', 'vm', 'all']
@@ -70,18 +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)
-
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
-f.close()
+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 306664feb..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,11 +58,7 @@ args = parser.parse_args()
""" logging configuration """
logger = ft_logger.Logger("run_tempest").getLogger()
-REPO_PATH = os.environ['repos_dir'] + '/functest/'
-
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
-f.close()
+functest_yaml = ft_utils.get_functest_yaml()
TEST_DB = functest_yaml.get("results").get("test_db_url")
MODE = "smoke"
@@ -94,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 3f4adae73..d3ca44139 100644
--- a/testcases/OpenStack/vPing/vping_util.py
+++ b/testcases/OpenStack/vPing/vping_util.py
@@ -1,20 +1,16 @@
import os
-import re
import pprint
+import re
import sys
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
-import yaml
-
-REPO_PATH = os.environ['repos_dir'] + '/functest/'
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
-f.close()
+functest_yaml = ft_utils.get_functest_yaml()
NAME_VM_1 = functest_yaml.get("vping").get("vm_name_1")
NAME_VM_2 = functest_yaml.get("vping").get("vm_name_2")
@@ -343,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 c79754a1b..9be909427 100755
--- a/testcases/features/copper.py
+++ b/testcases/features/copper.py
@@ -15,12 +15,12 @@
# limitations under the License.
#
import argparse
-import os
import sys
import time
+
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
-import yaml
+
parser = argparse.ArgumentParser()
parser.add_argument("-r", "--report",
@@ -28,11 +28,10 @@ parser.add_argument("-r", "--report",
action="store_true")
args = parser.parse_args()
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
-
-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()
@@ -42,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 02edd25ca..68c80a9e4 100755
--- a/testcases/features/doctor.py
+++ b/testcases/features/doctor.py
@@ -16,42 +16,53 @@
import argparse
import os
import time
-import yaml
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()
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
+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 291a3b49b..c717c060e 100755
--- a/testcases/features/domino.py
+++ b/testcases/features/domino.py
@@ -15,9 +15,7 @@
#
import argparse
-import os
import time
-import yaml
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
@@ -29,20 +27,24 @@ parser.add_argument("-r", "--report",
action="store_true")
args = parser.parse_args()
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
+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/promise.py b/testcases/features/promise.py
index 3728adfe5..3f58dcee8 100755
--- a/testcases/features/promise.py
+++ b/testcases/features/promise.py
@@ -9,20 +9,18 @@
#
# Maintainer : jose.lausuch@ericsson.com
#
-import argparse
import json
import os
import subprocess
import time
+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
import keystoneclient.v2_0.client as ksclient
-from neutronclient.v2_0 import client as ntclient
import novaclient.client as nvclient
-import yaml
-
+from neutronclient.v2_0 import client as ntclient
parser = argparse.ArgumentParser()
@@ -32,8 +30,7 @@ parser.add_argument("-r", "--report",
action="store_true")
args = parser.parse_args()
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
+functest_yaml = functest_utils.get_functest_yaml()
dirs = functest_yaml.get('general').get('directories')
PROMISE_REPO = dirs.get('dir_repo_promise')
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 66911c1d8..ffcd09b84 100755
--- a/testcases/vnf/vIMS/vIMS.py
+++ b/testcases/vnf/vIMS/vIMS.py
@@ -11,28 +11,26 @@
# http://www.apache.org/licenses/LICENSE-2.0
########################################################################
-import argparse
import datetime
import json
import os
import pprint
-import requests
import subprocess
import time
-import yaml
+import argparse
+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 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
from orchestrator import orchestrator
-import functest.utils.functest_logger as ft_logger
-import functest.utils.functest_utils as functest_utils
-import functest.utils.openstack_utils as os_utils
-
-
pp = pprint.PrettyPrinter(indent=4)
@@ -49,17 +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)
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
-f.close()
+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/testcases/vnf/vRNC/parser.py b/testcases/vnf/vRNC/parser.py
index 00593b0b0..d22ca8ea4 100755
--- a/testcases/vnf/vRNC/parser.py
+++ b/testcases/vnf/vRNC/parser.py
@@ -14,11 +14,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-import os
import time
-import yaml
-import argparse
+import argparse
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
@@ -28,8 +26,7 @@ parser.add_argument("-r", "--report",
action="store_true")
args = parser.parse_args()
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
+functest_yaml = functest_utils.get_functest_yaml()
dirs = functest_yaml.get('general').get('directories')
PARSER_REPO = dirs.get('dir_repo_parser')