summaryrefslogtreecommitdiffstats
path: root/testcases/Controllers/ODL/CI/odlreport2db.py
diff options
context:
space:
mode:
Diffstat (limited to 'testcases/Controllers/ODL/CI/odlreport2db.py')
-rw-r--r--testcases/Controllers/ODL/CI/odlreport2db.py165
1 files changed, 0 insertions, 165 deletions
diff --git a/testcases/Controllers/ODL/CI/odlreport2db.py b/testcases/Controllers/ODL/CI/odlreport2db.py
deleted file mode 100644
index 50c8b096e..000000000
--- a/testcases/Controllers/ODL/CI/odlreport2db.py
+++ /dev/null
@@ -1,165 +0,0 @@
-#!/usr/bin/python
-#
-# Authors:
-# - peter.bandzi@cisco.com
-# - morgan.richomme@orange.com
-#
-# src: Peter Bandzi
-# https://github.com/pbandzi/parse-robot/blob/master/convert_robot_to_json.py
-#
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# 0.1: This script boots the VM1 and allocates IP address from Nova
-# 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
-#
-#
-
-import getopt
-import json
-import os
-import sys
-import xmltodict
-import yaml
-
-import functest.utils.functest_utils as functest_utils
-
-
-def usage():
- print """Usage:
- get-json-from-robot.py --xml=<output.xml> --pod=<pod_name>
- --installer=<installer> --database=<Database URL>
- --scenaro=SCENARIO
- -x, --xml xml file generated by robot test
- -p, --pod POD name where the test come from
- -i, --installer
- -s, --scenario
- -h, --help this message
- """
- sys.exit(2)
-
-
-def populate_detail(test):
- detail = {}
- detail['test_name'] = test['@name']
- detail['test_status'] = test['status']
- detail['test_doc'] = test['doc']
- return detail
-
-
-def parse_test(tests, details):
- try:
- for test in tests:
- details.append(populate_detail(test))
- except TypeError:
- # tests is not iterable
- details.append(populate_detail(tests))
- return details
-
-
-def parse_suites(suites):
- data = {}
- details = []
- try:
- for suite in suites:
- data['details'] = parse_test(suite['test'], details)
- except TypeError:
- # suites is not iterable
- data['details'] = parse_test(suites['test'], details)
- return data
-
-
-def main(argv):
- try:
- opts, args = getopt.getopt(argv,
- 'x:p:i:s:h',
- ['xml=', 'pod=',
- 'installer=',
- 'scenario=',
- 'help'])
- except getopt.GetoptError:
- usage()
-
- for opt, arg in opts:
- if opt in ('-h', '--help'):
- usage()
- elif opt in ('-x', '--xml'):
- xml_file = arg
- elif opt in ('-p', '--pod'):
- pod = arg
- elif opt in ('-i', '--installer'):
- installer = arg
- elif opt in ('-s', '--scenario'):
- scenario = arg
- else:
- usage()
-
- with open(xml_file, "r") as myfile:
- xml_input = myfile.read().replace('\n', '')
-
- # dictionary populated with data from xml file
- all_data = xmltodict.parse(xml_input)['robot']
-
- data = parse_suites(all_data['suite']['suite'])
- data['description'] = all_data['suite']['@name']
- data['version'] = all_data['@generator']
- data['test_project'] = "functest"
- data['case_name'] = "ODL"
- data['pod_name'] = pod
- data['installer'] = installer
-
- json.dumps(data, indent=4, separators=(',', ': '))
-
- # Only used from container, we can set up absolute path
- with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
- f.close()
-
- database = functest_yaml.get("results").get("test_db_url")
- build_tag = functest_utils.get_build_tag()
-
- try:
- # example:
- # python odlreport2db.py -x ~/Pictures/Perso/odl/output3.xml
- # -i fuel
- # -p opnfv-jump-2
- # -s os-odl_l2-ha
- version = functest_utils.get_version()
-
- # success criteria for ODL = 100% of tests OK
- status = "failed"
- try:
- tests_passed = 0
- tests_failed = 0
- for v in data['details']:
- if v['test_status']['@status'] == "PASS":
- tests_passed += 1
- else:
- tests_failed += 1
-
- if (tests_failed < 1):
- status = "passed"
- except:
- print("Unable to set criteria" % sys.exc_info()[0])
- functest_utils.push_results_to_db(database,
- "functest",
- data['case_name'],
- None,
- data['pod_name'],
- version,
- scenario,
- status,
- build_tag,
- data)
- except:
- print("Error pushing results into Database '%s'" % sys.exc_info()[0])
-
-
-if __name__ == "__main__":
- main(sys.argv[1:])