diff options
Diffstat (limited to 'testcases/features')
-rwxr-xr-x | testcases/features/copper.py | 171 | ||||
-rwxr-xr-x | testcases/features/doctor.py | 44 | ||||
-rwxr-xr-x | testcases/features/domino.py | 48 | ||||
-rwxr-xr-x | testcases/features/sfc/set-up-tacker.sh | 6 | ||||
-rwxr-xr-x | testcases/features/sfc/sfc.py | 18 |
5 files changed, 148 insertions, 139 deletions
diff --git a/testcases/features/copper.py b/testcases/features/copper.py index 9efcbd7f4..c312643eb 100755 --- a/testcases/features/copper.py +++ b/testcases/features/copper.py @@ -1,86 +1,85 @@ -#!/usr/bin/python
-#
-# Copyright 2016 AT&T Intellectual Property, Inc
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-import os
-import sys
-import time
-import functest.utils.functest_logger as ft_logger
-import functest.utils.functest_utils as functest_utils
-import yaml
-
-
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
-
-dirs = functest_yaml.get('general').get('directories')
-FUNCTEST_REPO = dirs.get('dir_repo_functest')
-COPPER_REPO = dirs.get('dir_repo_copper')
-TEST_DB_URL = functest_yaml.get('results').get('test_db_url')
-
-logger = ft_logger.Logger("copper").getLogger()
-
-
-def main():
- cmd = "%s/tests/run.sh %s/tests" % (COPPER_REPO, COPPER_REPO)
-
- start_time = time.time()
-
- ret_val = functest_utils.execute_command(cmd, logger, exit_on_error=False)
-
- stop_time = time.time()
- duration = round(stop_time - start_time, 1)
- if ret_val == 0:
- logger.info("COPPER PASSED")
- test_status = 'PASS'
- else:
- logger.info("COPPER FAILED")
- test_status = 'FAIL'
-
- details = {
- 'timestart': start_time,
- 'duration': duration,
- 'status': test_status,
- }
- pod_name = functest_utils.get_pod_name(logger)
- scenario = functest_utils.get_scenario(logger)
- version = functest_utils.get_version(logger)
- build_tag = functest_utils.get_build_tag(logger)
-
- logger.info("Pushing COPPER results: TEST_DB_URL=%(db)s pod_name=%(pod)s "
- "version=%(v)s scenario=%(s)s criteria=%(c)s details=%(d)s" % {
- 'db': TEST_DB_URL,
- 'pod': pod_name,
- 'v': version,
- 's': scenario,
- 'c': details['status'],
- 'b': build_tag,
- 'd': details,
- })
- functest_utils.push_results_to_db("COPPER",
- "COPPER-notification",
- logger,
- start_time,
- stop_time,
- details['status'],
- details)
- if ret_val != 0:
- sys.exit(-1)
-
- sys.exit(0)
-
-if __name__ == '__main__':
- main()
+#!/usr/bin/python +# +# Copyright 2016 AT&T Intellectual Property, Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# 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", + 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) + +dirs = functest_yaml.get('general').get('directories') +FUNCTEST_REPO = dirs.get('dir_repo_functest') +COPPER_REPO = dirs.get('dir_repo_copper') + +logger = ft_logger.Logger("copper").getLogger() + + +def main(): + cmd = "%s/tests/run.sh %s/tests" % (COPPER_REPO, COPPER_REPO) + + start_time = time.time() + + ret_val = functest_utils.execute_command(cmd, logger, exit_on_error=False) + + stop_time = time.time() + duration = round(stop_time - start_time, 1) + if ret_val == 0: + logger.info("COPPER PASSED") + test_status = 'PASS' + else: + logger.info("COPPER FAILED") + test_status = 'FAIL' + + details = { + 'timestart': start_time, + 'duration': duration, + 'status': test_status, + } + functest_utils.logger_test_results(logger, "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'], + details) + logger.info("COPPER results pushed to DB") + except: + logger.error("Error pushing results into Database '%s'" + % sys.exc_info()[0]) + + if ret_val != 0: + sys.exit(-1) + + sys.exit(0) + +if __name__ == '__main__': + main() diff --git a/testcases/features/doctor.py b/testcases/features/doctor.py index 184ab032b..154cfc695 100755 --- a/testcases/features/doctor.py +++ b/testcases/features/doctor.py @@ -13,7 +13,7 @@ # 0.2: measure test duration and publish results under json format # # - +import argparse import os import time import yaml @@ -21,13 +21,18 @@ 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) dirs = functest_yaml.get('general').get('directories') FUNCTEST_REPO = dirs.get('dir_repo_functest') DOCTOR_REPO = dirs.get('dir_repo_doctor') -TEST_DB_URL = functest_yaml.get('results').get('test_db_url') logger = ft_logger.Logger("doctor").getLogger() @@ -55,32 +60,21 @@ def main(): 'duration': duration, 'status': test_status, } - pod_name = functest_utils.get_pod_name(logger) - scenario = functest_utils.get_scenario(logger) - version = functest_utils.get_version(logger) - build_tag = functest_utils.get_build_tag(logger) - status = "FAIL" if details['status'] == "OK": status = "PASS" - - logger.info("Pushing Doctor results: TEST_DB_URL=%(db)s pod_name=%(pod)s " - "version=%(v)s scenario=%(s)s criteria=%(c)s details=%(d)s" % { - 'db': TEST_DB_URL, - 'pod': pod_name, - 'v': version, - 's': scenario, - 'c': status, - 'b': build_tag, - 'd': details, - }) - functest_utils.push_results_to_db("doctor", - "doctor-notification", - logger, - start_time, - stop_time, - status, - details) + functest_utils.logger_test_results(logger, "Doctor", + "doctor-notification", + status, details) + if args.report: + functest_utils.push_results_to_db("doctor", + "doctor-notification", + logger, + start_time, + stop_time, + status, + details) + logger.info("Doctor results pushed to DB") exit(exit_code) diff --git a/testcases/features/domino.py b/testcases/features/domino.py index e4229b4c7..03ad4a2af 100755 --- a/testcases/features/domino.py +++ b/testcases/features/domino.py @@ -11,9 +11,10 @@ # Later, the VM2 boots then execute cloud-init to ping VM1. # After successful ping, both the VMs are deleted. # 0.2: measure test duration and publish results under json format -# +# 0.3: add report flag to push results when needed # +import argparse import os import time import yaml @@ -21,13 +22,19 @@ 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) dirs = functest_yaml.get('general').get('directories') FUNCTEST_REPO = dirs.get('dir_repo_functest') DOMINO_REPO = dirs.get('dir_repo_domino') -TEST_DB_URL = functest_yaml.get('results').get('test_db_url') logger = ft_logger.Logger("domino").getLogger() @@ -55,10 +62,6 @@ def main(): 'duration': duration, 'status': test_status, } - pod_name = functest_utils.get_pod_name(logger) - scenario = functest_utils.get_scenario(logger) - version = functest_utils.get_version(logger) - build_tag = functest_utils.get_build_tag(logger) status = "FAIL" if details['status'] == "OK": @@ -66,25 +69,20 @@ def main(): elif details['status'] == "SKIPPED": status = "SKIP" - logger.info("Pushing Domino results: TEST_DB_URL=%(db)s pod_name=%(pod)s " - "version=%(v)s scenario=%(s)s criteria=%(c)s details=%(d)s" % { - 'db': TEST_DB_URL, - 'pod': pod_name, - 'v': version, - 's': scenario, - 'c': status, - 'b': build_tag, - 'd': details, - }) - - if status is not "SKIP": - functest_utils.push_results_to_db("domino", - "domino-multinode", - logger, - start_time, - stop_time, - status, - details) + functest_utils.logger_test_results(logger, "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, + details) + logger.info("Domino results pushed to DB") + if __name__ == '__main__': main() diff --git a/testcases/features/sfc/set-up-tacker.sh b/testcases/features/sfc/set-up-tacker.sh index 577b7d94e..da2cb922e 100755 --- a/testcases/features/sfc/set-up-tacker.sh +++ b/testcases/features/sfc/set-up-tacker.sh @@ -1,8 +1,8 @@ -curl "https://gerrit.opnfv.org/gerrit/gitweb?p=fuel.git;a=blob_plain;f=prototypes/sfc_tacker/poc.tacker-up.sh;hb=ddd4e11bb8bc62b7e8b06d4b44a308293c2c3362" > poc.tacker-up.sh +git_commit=ee3046f24df0bfca7ee15501f6c06ad86dd462c2 +curl "https://gerrit.opnfv.org/gerrit/gitweb?p=fuel.git;a=blob_plain;\ +f=prototypes/sfc_tacker/poc.tacker-up.sh;hb=${git_commit}" > poc.tacker-up.sh bash poc.tacker-up.sh -touch delete.sh - cat <<EOF > delete.sh tacker sfc-classifier-delete red_http tacker sfc-classifier-delete blue_ssh diff --git a/testcases/features/sfc/sfc.py b/testcases/features/sfc/sfc.py index 17ab386f6..f8af51060 100755 --- a/testcases/features/sfc/sfc.py +++ b/testcases/features/sfc/sfc.py @@ -349,6 +349,9 @@ def main(): TACKER_CHANGECLASSI subprocess.call(tacker_classi, shell=True) + logger.info("Wait for ODL to update the classification rules in OVS") + time.sleep(10) + # SSH to modify the classification flows in compute contr_cmd4 = ("sshpass -p r00tme ssh " + ssh_options + " root@10.20.0.2" @@ -405,6 +408,21 @@ def main(): logger.info('\033[92m' + "SFC TEST WORKED" " :) \n" + '\033[0m') + # TODO report results to DB + # functest_utils.logger_test_results(logger, "SFC", + # "odl-sfc", + # status, details) + # see doctor, promise, domino, ... + # if args.report: + # logger.info("Pushing odl-SFC results") + # functest_utils.push_results_to_db("functest", + # "odl-sfc", + # logger, + # start_time, + # stop_time, + # status, + # details) + sys.exit(0) if __name__ == '__main__': |