summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ci/config_functest.yaml27
-rwxr-xr-xci/prepare_env.py12
-rw-r--r--docker/requirements.pip1
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/LICENSE45
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-italic.eotbin75720 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-italic.ttfbin238084 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-italic.woffbin98556 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-regular.eotbin88070 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-regular.ttfbin288008 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-regular.woffbin114324 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-semibold.eotbin89897 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-semibold.ttfbin284640 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-semibold.woffbin115648 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eotbin75706 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttfbin240944 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woffbin98816 -> 0 bytes
-rwxr-xr-xdocs/com/lib/font/source-sans-pro/source-sans-pro.css39
-rwxr-xr-xtestcases/Controllers/ODL/OpenDaylightTesting.py2
-rw-r--r--testcases/Controllers/ONOS/Sfc/Sfc.py1
-rwxr-xr-xtestcases/Controllers/ONOS/Teston/onosfunctest.py1
-rwxr-xr-xtestcases/OpenStack/rally/run_rally-cert.py2
-rwxr-xr-xtestcases/OpenStack/tempest/gen_tempest_conf.py2
-rwxr-xr-xtestcases/OpenStack/tempest/run_tempest.py7
-rw-r--r--testcases/OpenStack/vPing/vping_util.py1
-rwxr-xr-xtestcases/features/copper.py3
-rwxr-xr-xtestcases/features/doctor.py3
-rwxr-xr-xtestcases/features/domino.py3
-rwxr-xr-xtestcases/features/promise.py76
-rwxr-xr-xtestcases/features/sfc/sfc.py3
-rwxr-xr-xtestcases/vnf/vIMS/vIMS.py6
-rwxr-xr-xtestcases/vnf/vRNC/parser.py20
-rw-r--r--utils/functest_utils.py61
32 files changed, 108 insertions, 207 deletions
diff --git a/ci/config_functest.yaml b/ci/config_functest.yaml
index 2b3317a1b..12e78d6df 100644
--- a/ci/config_functest.yaml
+++ b/ci/config_functest.yaml
@@ -162,20 +162,19 @@ multisite:
installer_password: 'root'
multisite_controller_ip: '10.1.0.50'
promise:
- general:
- tenant_name: promise
- tenant_description: promise Functionality Testing
- user_name: promiser
- user_pwd: test
- image_name: promise-img
- flavor_name: promise-flavor
- flavor_vcpus: 1
- flavor_ram: 128
- flavor_disk: 0
- network_name: promise-net
- subnet_name: promise-subnet
- subnet_cidr: 192.168.121.0/24
- router_name: promise-router
+ tenant_name: promise
+ tenant_description: promise Functionality Testing
+ user_name: promiser
+ user_pwd: test
+ image_name: promise-img
+ flavor_name: promise-flavor
+ flavor_vcpus: 1
+ flavor_ram: 128
+ flavor_disk: 0
+ network_name: promise-net
+ subnet_name: promise-subnet
+ subnet_cidr: 192.168.121.0/24
+ router_name: promise-router
example:
example_vm_name: example-vm
diff --git a/ci/prepare_env.py b/ci/prepare_env.py
index 0b528cfb3..49dcdd505 100755
--- a/ci/prepare_env.py
+++ b/ci/prepare_env.py
@@ -222,7 +222,7 @@ def install_rally():
logger.info("Creating Rally environment...")
cmd = "rally deployment destroy opnfv-rally"
- ft_utils.execute_command(cmd, logger=logger, exit_on_error=False,
+ ft_utils.execute_command(cmd, exit_on_error=False,
error_msg=("Deployment %s does not exist."
% DEPLOYMENT_MAME), verbose=False)
rally_conf = os_utils.get_credentials_for_rally()
@@ -230,27 +230,27 @@ def install_rally():
json.dump(rally_conf, fp)
cmd = "rally deployment create --file=rally_conf.json --name="
cmd += DEPLOYMENT_MAME
- ft_utils.execute_command(cmd, logger,
+ ft_utils.execute_command(cmd,
error_msg="Problem creating Rally deployment")
logger.info("Installing tempest from existing repo...")
cmd = ("rally verify install --source " + TEMPEST_REPO_DIR +
" --system-wide")
- ft_utils.execute_command(cmd, logger,
+ ft_utils.execute_command(cmd,
error_msg="Problem installing Tempest.")
cmd = "rally deployment check"
- ft_utils.execute_command(cmd, logger,
+ ft_utils.execute_command(cmd,
error_msg=("OpenStack not responding or "
"faulty Rally deployment."))
cmd = "rally show images"
- ft_utils.execute_command(cmd, logger,
+ ft_utils.execute_command(cmd,
error_msg=("Problem while listing "
"OpenStack images."))
cmd = "rally show flavors"
- ft_utils.execute_command(cmd, logger,
+ ft_utils.execute_command(cmd,
error_msg=("Problem while showing "
"OpenStack flavors."))
diff --git a/docker/requirements.pip b/docker/requirements.pip
index 25ec795f3..7ba1a350c 100644
--- a/docker/requirements.pip
+++ b/docker/requirements.pip
@@ -11,6 +11,7 @@ pyyaml==3.10
gitpython==1.0.1
python-openstackclient==2.3.0
python-ceilometerclient==1.5.1
+python-keystoneclient==2.3.1
virtualenv==1.11.4
pexpect==4.0
requests==2.8.0
diff --git a/docs/com/lib/font/source-sans-pro/LICENSE b/docs/com/lib/font/source-sans-pro/LICENSE
deleted file mode 100755
index 71b7a02a2..000000000
--- a/docs/com/lib/font/source-sans-pro/LICENSE
+++ /dev/null
@@ -1,45 +0,0 @@
-SIL Open Font License
-
-Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
-
-—————————————————————————————-
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-—————————————————————————————-
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-“Font Software” refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
-
-“Reserved Font Name” refers to any names specified as such after the copyright statement(s).
-
-“Original Version” refers to the collection of Font Software components as distributed by the Copyright Holder(s).
-
-“Modified Version” refers to any derivative made by adding to, deleting, or substituting—in part or in whole—any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
-
-“Author” refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
-
-5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-italic.eot b/docs/com/lib/font/source-sans-pro/source-sans-pro-italic.eot
deleted file mode 100755
index 32fe466bb..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-italic.eot
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-italic.ttf b/docs/com/lib/font/source-sans-pro/source-sans-pro-italic.ttf
deleted file mode 100755
index f9ac13ffc..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-italic.ttf
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-italic.woff b/docs/com/lib/font/source-sans-pro/source-sans-pro-italic.woff
deleted file mode 100755
index ceecbf17f..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-italic.woff
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-regular.eot b/docs/com/lib/font/source-sans-pro/source-sans-pro-regular.eot
deleted file mode 100755
index 4d29ddadd..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-regular.eot
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-regular.ttf b/docs/com/lib/font/source-sans-pro/source-sans-pro-regular.ttf
deleted file mode 100755
index 00c833cdc..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-regular.ttf
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-regular.woff b/docs/com/lib/font/source-sans-pro/source-sans-pro-regular.woff
deleted file mode 100755
index 630754abf..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-regular.woff
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibold.eot b/docs/com/lib/font/source-sans-pro/source-sans-pro-semibold.eot
deleted file mode 100755
index 1104e074f..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibold.eot
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibold.ttf b/docs/com/lib/font/source-sans-pro/source-sans-pro-semibold.ttf
deleted file mode 100755
index 6d0253da9..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibold.ttf
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibold.woff b/docs/com/lib/font/source-sans-pro/source-sans-pro-semibold.woff
deleted file mode 100755
index 8888cf8d4..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibold.woff
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot b/docs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot
deleted file mode 100755
index cdf733438..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf b/docs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf
deleted file mode 100755
index 56442992a..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff b/docs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff
deleted file mode 100755
index 7c2d3c74f..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff
+++ /dev/null
Binary files differ
diff --git a/docs/com/lib/font/source-sans-pro/source-sans-pro.css b/docs/com/lib/font/source-sans-pro/source-sans-pro.css
deleted file mode 100755
index 0707a4f86..000000000
--- a/docs/com/lib/font/source-sans-pro/source-sans-pro.css
+++ /dev/null
@@ -1,39 +0,0 @@
-@font-face {
- font-family: 'Source Sans Pro';
- src: url('source-sans-pro-regular.eot');
- src: url('source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
- url('source-sans-pro-regular.woff') format('woff'),
- url('source-sans-pro-regular.ttf') format('truetype');
- font-weight: normal;
- font-style: normal;
-}
-
-@font-face {
- font-family: 'Source Sans Pro';
- src: url('source-sans-pro-italic.eot');
- src: url('source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
- url('source-sans-pro-italic.woff') format('woff'),
- url('source-sans-pro-italic.ttf') format('truetype');
- font-weight: normal;
- font-style: italic;
-}
-
-@font-face {
- font-family: 'Source Sans Pro';
- src: url('source-sans-pro-semibold.eot');
- src: url('source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
- url('source-sans-pro-semibold.woff') format('woff'),
- url('source-sans-pro-semibold.ttf') format('truetype');
- font-weight: 600;
- font-style: normal;
-}
-
-@font-face {
- font-family: 'Source Sans Pro';
- src: url('source-sans-pro-semibolditalic.eot');
- src: url('source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
- url('source-sans-pro-semibolditalic.woff') format('woff'),
- url('source-sans-pro-semibolditalic.ttf') format('truetype');
- font-weight: 600;
- font-style: italic;
-} \ No newline at end of file
diff --git a/testcases/Controllers/ODL/OpenDaylightTesting.py b/testcases/Controllers/ODL/OpenDaylightTesting.py
index 22df9f667..173de87f9 100755
--- a/testcases/Controllers/ODL/OpenDaylightTesting.py
+++ b/testcases/Controllers/ODL/OpenDaylightTesting.py
@@ -172,7 +172,7 @@ class ODLTestCases:
details['description'] = result.suite.name
details['tests'] = visitor.get_data()
if not ft_utils.push_results_to_db(
- "functest", "odl", cls.logger, start_time, stop_time,
+ "functest", "odl", start_time, stop_time,
result.suite.status, details):
cls.logger.error("Cannot push ODL results to DB")
return False
diff --git a/testcases/Controllers/ONOS/Sfc/Sfc.py b/testcases/Controllers/ONOS/Sfc/Sfc.py
index a52019875..99d07aaed 100644
--- a/testcases/Controllers/ONOS/Sfc/Sfc.py
+++ b/testcases/Controllers/ONOS/Sfc/Sfc.py
@@ -217,7 +217,6 @@ class Sfc:
logger.info("Result is " + status)
functest_utils.push_results_to_db("functest",
"onos_sfc",
- logger,
start_time,
stop_time,
status,
diff --git a/testcases/Controllers/ONOS/Teston/onosfunctest.py b/testcases/Controllers/ONOS/Teston/onosfunctest.py
index 6b922fba9..01537b990 100755
--- a/testcases/Controllers/ONOS/Teston/onosfunctest.py
+++ b/testcases/Controllers/ONOS/Teston/onosfunctest.py
@@ -245,7 +245,6 @@ def OnosTest():
functest_utils.push_results_to_db("functest",
"onos",
- logger,
start_time,
stop_time,
status,
diff --git a/testcases/OpenStack/rally/run_rally-cert.py b/testcases/OpenStack/rally/run_rally-cert.py
index b77cbdf54..85d21d9bd 100755
--- a/testcases/OpenStack/rally/run_rally-cert.py
+++ b/testcases/OpenStack/rally/run_rally-cert.py
@@ -355,7 +355,6 @@ def run_task(test_name):
logger.debug("Push Rally detailed results into DB")
functest_utils.push_results_to_db("functest",
"Rally_details",
- logger,
start_time,
stop_time,
status,
@@ -488,7 +487,6 @@ def main():
logger.debug("Pushing Rally summary into DB...")
functest_utils.push_results_to_db("functest",
case_name,
- logger,
start_time,
stop_time,
status,
diff --git a/testcases/OpenStack/tempest/gen_tempest_conf.py b/testcases/OpenStack/tempest/gen_tempest_conf.py
index 4aa814a51..688a92402 100755
--- a/testcases/OpenStack/tempest/gen_tempest_conf.py
+++ b/testcases/OpenStack/tempest/gen_tempest_conf.py
@@ -116,7 +116,7 @@ def main():
if not os.path.exists(TEMPEST_RESULTS_DIR):
os.makedirs(TEMPEST_RESULTS_DIR)
- deployment_dir = ft_utils.get_deployment_dir(logger)
+ deployment_dir = ft_utils.get_deployment_dir()
configure_tempest_multisite(deployment_dir)
diff --git a/testcases/OpenStack/tempest/run_tempest.py b/testcases/OpenStack/tempest/run_tempest.py
index 390c8a65f..e93972182 100755
--- a/testcases/OpenStack/tempest/run_tempest.py
+++ b/testcases/OpenStack/tempest/run_tempest.py
@@ -163,7 +163,7 @@ def configure_tempest(deployment_dir):
logger.debug("Generating new tempest.conf file...")
cmd = "rally verify genconfig"
- ft_utils.execute_command(cmd, logger)
+ ft_utils.execute_command(cmd)
logger.debug("Finding tempest.conf file...")
if not os.path.isfile(tempest_conf_file):
@@ -225,7 +225,7 @@ def generate_test_list(deployment_dir, mode):
testr_mode = 'tempest.api.' + mode
cmd = ("cd " + deployment_dir + ";" + "testr list-tests " +
testr_mode + ">" + TEMPEST_RAW_LIST + ";cd")
- ft_utils.execute_command(cmd, logger)
+ ft_utils.execute_command(cmd)
def apply_tempest_blacklist():
@@ -370,7 +370,6 @@ def run_tempest(OPTION):
try:
ft_utils.push_results_to_db("functest",
case_name,
- None,
start_time,
stop_time,
status,
@@ -396,7 +395,7 @@ def main():
if not os.path.exists(TEMPEST_RESULTS_DIR):
os.makedirs(TEMPEST_RESULTS_DIR)
- deployment_dir = ft_utils.get_deployment_dir(logger)
+ deployment_dir = ft_utils.get_deployment_dir()
create_tempest_resources()
if "" == args.conf:
diff --git a/testcases/OpenStack/vPing/vping_util.py b/testcases/OpenStack/vPing/vping_util.py
index d3ca44139..7e7173aee 100644
--- a/testcases/OpenStack/vPing/vping_util.py
+++ b/testcases/OpenStack/vPing/vping_util.py
@@ -452,7 +452,6 @@ def push_result(report, case, start_time, stop_time, details):
logger.debug("Pushing vPing %s results into DB..." % case)
ft_utils.push_results_to_db('functest',
case,
- logger,
start_time,
stop_time,
details['status'],
diff --git a/testcases/features/copper.py b/testcases/features/copper.py
index 9be909427..50319d965 100755
--- a/testcases/features/copper.py
+++ b/testcases/features/copper.py
@@ -60,14 +60,13 @@ def main():
'duration': duration,
'status': test_status,
}
- functest_utils.logger_test_results(logger, "Copper",
+ functest_utils.logger_test_results("Copper",
"copper-notification",
details['status'], details)
try:
if args.report:
functest_utils.push_results_to_db("copper",
"copper-notification",
- logger,
start_time,
stop_time,
details['status'],
diff --git a/testcases/features/doctor.py b/testcases/features/doctor.py
index 68c80a9e4..badcfe605 100755
--- a/testcases/features/doctor.py
+++ b/testcases/features/doctor.py
@@ -73,13 +73,12 @@ def main():
status = "FAIL"
if details['status'] == "OK":
status = "PASS"
- functest_utils.logger_test_results(logger, "Doctor",
+ functest_utils.logger_test_results("Doctor",
"doctor-notification",
status, details)
if args.report:
functest_utils.push_results_to_db("doctor",
"doctor-notification",
- logger,
start_time,
stop_time,
status,
diff --git a/testcases/features/domino.py b/testcases/features/domino.py
index c717c060e..7835c5ce8 100755
--- a/testcases/features/domino.py
+++ b/testcases/features/domino.py
@@ -70,14 +70,13 @@ def main():
elif details['status'] == "SKIPPED":
status = "SKIP"
- functest_utils.logger_test_results(logger, "Domino",
+ functest_utils.logger_test_results("Domino",
"domino-multinode",
status, details)
if args.report:
if status is not "SKIP":
functest_utils.push_results_to_db("domino",
"domino-multinode",
- logger,
start_time,
stop_time,
status,
diff --git a/testcases/features/promise.py b/testcases/features/promise.py
index 3f58dcee8..a7899fec5 100755
--- a/testcases/features/promise.py
+++ b/testcases/features/promise.py
@@ -9,18 +9,19 @@
#
# 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.functest_utils as ft_utils
import functest.utils.openstack_utils as openstack_utils
import keystoneclient.v2_0.client as ksclient
-import novaclient.client as nvclient
from neutronclient.v2_0 import client as ntclient
+import novaclient.client as nvclient
+
parser = argparse.ArgumentParser()
@@ -30,35 +31,35 @@ parser.add_argument("-r", "--report",
action="store_true")
args = parser.parse_args()
-functest_yaml = functest_utils.get_functest_yaml()
-dirs = functest_yaml.get('general').get('directories')
+dirs = ft_utils.get_parameter_from_yaml('general.directories')
PROMISE_REPO = dirs.get('dir_repo_promise')
-TEST_DB = functest_yaml.get('results').get('test_db_url')
-
-TENANT_NAME = functest_yaml.get('promise').get('general').get('tenant_name')
-TENANT_DESCRIPTION = functest_yaml.get('promise').get(
- 'general').get('tenant_description')
-USER_NAME = functest_yaml.get('promise').get('general').get('user_name')
-USER_PWD = functest_yaml.get('promise').get('general').get('user_pwd')
-IMAGE_NAME = functest_yaml.get('promise').get('general').get('image_name')
-FLAVOR_NAME = functest_yaml.get('promise').get('general').get('flavor_name')
-FLAVOR_VCPUS = functest_yaml.get('promise').get('general').get('flavor_vcpus')
-FLAVOR_RAM = functest_yaml.get('promise').get('general').get('flavor_ram')
-FLAVOR_DISK = functest_yaml.get('promise').get('general').get('flavor_disk')
-
-
-GLANCE_IMAGE_FILENAME = functest_yaml.get('general').get('openstack').get(
- 'image_file_name')
-GLANCE_IMAGE_FORMAT = functest_yaml.get('general').get('openstack').get(
- 'image_disk_format')
-GLANCE_IMAGE_PATH = functest_yaml.get('general').get('directories').get(
- 'dir_functest_data') + "/" + GLANCE_IMAGE_FILENAME
-
-NET_NAME = functest_yaml.get('promise').get('general').get('network_name')
-SUBNET_NAME = functest_yaml.get('promise').get('general').get('subnet_name')
-SUBNET_CIDR = functest_yaml.get('promise').get('general').get('subnet_cidr')
-ROUTER_NAME = functest_yaml.get('promise').get('general').get('router_name')
+RESULTS_DIR = ft_utils.get_parameter_from_yaml(
+ 'general.directories.dir_results')
+
+TENANT_NAME = ft_utils.get_parameter_from_yaml('promise.tenant_name')
+TENANT_DESCRIPTION = ft_utils.get_parameter_from_yaml(
+ 'promise.tenant_description')
+USER_NAME = ft_utils.get_parameter_from_yaml('promise.user_name')
+USER_PWD = ft_utils.get_parameter_from_yaml('promise.user_pwd')
+IMAGE_NAME = ft_utils.get_parameter_from_yaml('promise.image_name')
+FLAVOR_NAME = ft_utils.get_parameter_from_yaml('promise.flavor_name')
+FLAVOR_VCPUS = ft_utils.get_parameter_from_yaml('promise.flavor_vcpus')
+FLAVOR_RAM = ft_utils.get_parameter_from_yaml('promise.flavor_ram')
+FLAVOR_DISK = ft_utils.get_parameter_from_yaml('promise.flavor_disk')
+
+
+GLANCE_IMAGE_FILENAME = ft_utils.get_parameter_from_yaml(
+ 'general.openstack.image_file_name')
+GLANCE_IMAGE_FORMAT = ft_utils.get_parameter_from_yaml(
+ 'general.openstack.image_disk_format')
+GLANCE_IMAGE_PATH = ft_utils.get_parameter_from_yaml(
+ 'general.directories.dir_functest_data') + "/" + GLANCE_IMAGE_FILENAME
+
+NET_NAME = ft_utils.get_parameter_from_yaml('promise.network_name')
+SUBNET_NAME = ft_utils.get_parameter_from_yaml('promise.subnet_name')
+SUBNET_CIDR = ft_utils.get_parameter_from_yaml('promise.subnet_cidr')
+ROUTER_NAME = ft_utils.get_parameter_from_yaml('promise.router_name')
""" logging configuration """
@@ -182,7 +183,7 @@ def main():
os.chdir(PROMISE_REPO)
results_file_name = 'promise-results.json'
- results_file = open(results_file_name, 'w+')
+ results_file = open(RESULTS_DIR + '/' + results_file_name, 'w+')
cmd = 'npm run -s test -- --reporter json'
logger.info("Running command: %s" % cmd)
@@ -240,13 +241,12 @@ def main():
status = "PASS"
exit_code = 0
- functest_utils.push_results_to_db("promise",
- "promise",
- logger,
- start_time,
- stop_time,
- status,
- json_results)
+ ft_utils.push_results_to_db("promise",
+ "promise",
+ start_time,
+ stop_time,
+ status,
+ json_results)
exit(exit_code)
diff --git a/testcases/features/sfc/sfc.py b/testcases/features/sfc/sfc.py
index 27d80bc00..a228ed298 100755
--- a/testcases/features/sfc/sfc.py
+++ b/testcases/features/sfc/sfc.py
@@ -420,7 +420,7 @@ def main():
" :) \n" + '\033[0m')
# TODO report results to DB
- # functest_utils.logger_test_results(logger, "SFC",
+ # functest_utils.logger_test_results("SFC",
# "odl-sfc",
# status, details)
# see doctor, promise, domino, ...
@@ -428,7 +428,6 @@ def main():
# logger.info("Pushing odl-SFC results")
# functest_utils.push_results_to_db("functest",
# "odl-sfc",
- # logger,
# start_time,
# stop_time,
# status,
diff --git a/testcases/vnf/vIMS/vIMS.py b/testcases/vnf/vIMS/vIMS.py
index ffcd09b84..b72e4cd81 100755
--- a/testcases/vnf/vIMS/vIMS.py
+++ b/testcases/vnf/vIMS/vIMS.py
@@ -114,7 +114,6 @@ def step_failure(step_name, error_msg):
status = "PASS"
functest_utils.push_results_to_db("functest",
"vims",
- None,
TESTCASE_START_TIME,
stop_time,
status,
@@ -236,7 +235,6 @@ def test_clearwater():
functest_utils.push_results_to_db("functest",
"vims",
- logger,
TESTCASE_START_TIME,
end_time_ts,
status,
@@ -399,10 +397,10 @@ def main():
logger.info("Prepare virtualenv for cloudify-cli")
cmd = "chmod +x " + VIMS_DIR + "create_venv.sh"
- functest_utils.execute_command(cmd, logger)
+ functest_utils.execute_command(cmd)
time.sleep(3)
cmd = VIMS_DIR + "create_venv.sh " + VIMS_DATA_DIR
- functest_utils.execute_command(cmd, logger)
+ functest_utils.execute_command(cmd)
cfy.download_manager_blueprint(
CFY_MANAGER_BLUEPRINT['url'], CFY_MANAGER_BLUEPRINT['branch'])
diff --git a/testcases/vnf/vRNC/parser.py b/testcases/vnf/vRNC/parser.py
index d22ca8ea4..5ff207c14 100755
--- a/testcases/vnf/vRNC/parser.py
+++ b/testcases/vnf/vRNC/parser.py
@@ -14,22 +14,23 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+import argparse
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')
-PARSER_REPO = dirs.get('dir_repo_parser')
+PARSER_REPO = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_repo_parser')
+RESULTS_DIR = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_results')
logger = ft_logger.Logger("parser").getLogger()
@@ -40,10 +41,11 @@ def main():
cmd = 'cd %s/tests && ./functest_run.sh' % PARSER_REPO
start_time = time.time()
+ log_file = RESULTS_DIR + "/parser.log"
ret = functest_utils.execute_command(cmd,
- logger,
info=True,
- exit_on_error=False)
+ exit_on_error=False,
+ output_file=log_file)
stop_time = time.time()
status, details = functest_utils.check_test_result(project,
@@ -51,8 +53,7 @@ def main():
start_time,
stop_time)
- functest_utils.logger_test_results(logger,
- project,
+ functest_utils.logger_test_results(project,
case_name,
status,
details)
@@ -61,7 +62,6 @@ def main():
logger.debug("Report Parser Results to DB......")
functest_utils.push_results_to_db(project,
case_name,
- logger,
start_time,
stop_time,
status,
diff --git a/utils/functest_utils.py b/utils/functest_utils.py
index 041601e21..8c5dd835a 100644
--- a/utils/functest_utils.py
+++ b/utils/functest_utils.py
@@ -77,33 +77,33 @@ def get_git_branch(repo_path):
return branch.name
-def get_installer_type(logger=None):
+def get_installer_type():
"""
Get installer type (fuel, apex, joid, compass)
"""
try:
installer = os.environ['INSTALLER_TYPE']
except KeyError:
- globals()['logger'].error("Impossible to retrieve the installer type")
+ logger.error("Impossible to retrieve the installer type")
installer = "Unknown_installer"
return installer
-def get_scenario(logger=None):
+def get_scenario():
"""
Get scenario
"""
try:
scenario = os.environ['DEPLOY_SCENARIO']
except KeyError:
- globals()['logger'].error("Impossible to retrieve the scenario")
+ logger.error("Impossible to retrieve the scenario")
scenario = "Unknown_scenario"
return scenario
-def get_version(logger=None):
+def get_version():
"""
Get version
"""
@@ -114,7 +114,7 @@ def get_version(logger=None):
# e.g. jenkins-functest-fuel-opnfv-jump-2-daily-master-190
# use regex to match branch info
rule = "daily-(.+?)-[0-9]*"
- build_tag = get_build_tag(logger)
+ build_tag = get_build_tag()
m = re.search(rule, build_tag)
if m:
return m.group(1)
@@ -122,33 +122,33 @@ def get_version(logger=None):
return "unknown"
-def get_pod_name(logger=None):
+def get_pod_name():
"""
Get PoD Name from env variable NODE_NAME
"""
try:
return os.environ['NODE_NAME']
except KeyError:
- globals()['logger'].error(
+ logger.error(
"Unable to retrieve the POD name from environment. " +
"Using pod name 'unknown-pod'")
return "unknown-pod"
-def get_build_tag(logger=None):
+def get_build_tag():
"""
Get build tag of jenkins jobs
"""
try:
build_tag = os.environ['BUILD_TAG']
except KeyError:
- globals()['logger'].error("Impossible to retrieve the build tag")
+ logger.error("Impossible to retrieve the build tag")
build_tag = "unknown_build_tag"
return build_tag
-def get_db_url(logger=None):
+def get_db_url():
"""
Returns DB URL
"""
@@ -157,13 +157,13 @@ def get_db_url(logger=None):
return db_url
-def logger_test_results(logger, project, case_name, status, details):
- pod_name = get_pod_name(logger)
- scenario = get_scenario(logger)
- version = get_version(logger)
- build_tag = get_build_tag(logger)
+def logger_test_results(project, case_name, status, details):
+ pod_name = get_pod_name()
+ scenario = get_scenario()
+ version = get_version()
+ build_tag = get_build_tag()
- globals()['logger'].info(
+ logger.info(
"\n"
"****************************************\n"
"\t %(p)s/%(n)s results \n\n"
@@ -186,13 +186,13 @@ def logger_test_results(logger, project, case_name, status, details):
'd': details})
-def push_results_to_db(project, case_name, logger,
+def push_results_to_db(project, case_name,
start_date, stop_date, criteria, details):
"""
POST results to the Result target DB
"""
# Retrieve params from CI and conf
- url = get_db_url(logger) + "/results"
+ url = get_db_url() + "/results"
try:
installer = os.environ['INSTALLER_TYPE']
@@ -200,14 +200,14 @@ def push_results_to_db(project, case_name, logger,
pod_name = os.environ['NODE_NAME']
build_tag = os.environ['BUILD_TAG']
except KeyError as e:
- globals()['logger'].error("Please set env var: " + str(e))
+ logger.error("Please set env var: " + str(e))
return False
rule = "daily-(.+?)-[0-9]*"
m = re.search(rule, build_tag)
if m:
version = m.group(1)
else:
- globals()['logger'].error("Please fix BUILD_TAG env var: " + build_tag)
+ logger.error("Please fix BUILD_TAG env var: " + build_tag)
return False
test_start = dt.fromtimestamp(start_date).strftime('%Y-%m-%d %H:%M:%S')
test_stop = dt.fromtimestamp(stop_date).strftime('%Y-%m-%d %H:%M:%S')
@@ -222,7 +222,7 @@ def push_results_to_db(project, case_name, logger,
headers = {'Content-Type': 'application/json'}
try:
r = requests.post(url, data=json.dumps(params), headers=headers)
- globals()['logger'].debug(r)
+ logger.debug(r)
r.raise_for_status()
except requests.RequestException as exc:
if 'r' in locals():
@@ -256,7 +256,7 @@ def push_results_to_db(project, case_name, logger,
})
finally:
if error:
- globals()['logger'].error(error)
+ logger.error(error)
return False
return True
@@ -293,19 +293,16 @@ def get_ci_envvars():
return ci_env_var
-def execute_command(cmd, logger=None,
- exit_on_error=True,
- info=False,
- error_msg="",
+def execute_command(cmd, exit_on_error=True, info=False, error_msg="",
verbose=True):
if not error_msg:
error_msg = ("The command '%s' failed." % cmd)
msg_exec = ("Executing command: '%s'" % cmd)
if verbose:
if info:
- globals()['logger'].info(msg_exec)
+ logger.info(msg_exec)
else:
- globals()['logger'].debug(msg_exec)
+ logger.debug(msg_exec)
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
for line in iter(p.stdout.readline, b''):
@@ -316,14 +313,14 @@ def execute_command(cmd, logger=None,
returncode = p.wait()
if returncode != 0:
if verbose:
- globals()['logger'].error(error_msg)
+ logger.error(error_msg)
if exit_on_error:
sys.exit(1)
return returncode
-def get_deployment_dir(logger=None):
+def get_deployment_dir():
"""
Returns current Rally deployment directory
"""
@@ -338,7 +335,7 @@ def get_deployment_dir(logger=None):
stderr=subprocess.STDOUT)
deployment_uuid = p.stdout.readline().rstrip()
if deployment_uuid == "":
- globals()['logger'].error("Rally deployment not found.")
+ logger.error("Rally deployment not found.")
exit(-1)
deployment_dir = (rally_dir + "/tempest/for-deployment-" +
deployment_uuid)