summaryrefslogtreecommitdiffstats
path: root/testcases/Dashboard/functest2Dashboard.py
diff options
context:
space:
mode:
authorMorgan Richomme <morgan.richomme@orange.com>2015-09-22 12:38:03 +0000
committerGerrit Code Review <gerrit@172.30.200.206>2015-09-22 12:38:03 +0000
commitb9b2c3e5fc9732ce2c3ada2ba9a6ddb42b72208d (patch)
tree8c1422525cede11a0d163a6fc1fbe20715885620 /testcases/Dashboard/functest2Dashboard.py
parent0e69b924ce354246feeb95ea56feacce5dcf8751 (diff)
parent7d4d546a0be38dcd49a2fc6e0a13fdc1ab9fd311 (diff)
Merge "creation of scripts to generate Dashboard compatible json result files"
Diffstat (limited to 'testcases/Dashboard/functest2Dashboard.py')
-rw-r--r--testcases/Dashboard/functest2Dashboard.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/testcases/Dashboard/functest2Dashboard.py b/testcases/Dashboard/functest2Dashboard.py
new file mode 100644
index 000000000..c03ddbd14
--- /dev/null
+++ b/testcases/Dashboard/functest2Dashboard.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2015 Orange
+# morgan.richomme@orange.com
+#
+# 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
+#
+# This script is used to get data from test DB
+# and format them into a json format adapted for a dashboard
+#
+# v0.1: basic example
+#
+import logging
+import argparse
+import pprint
+import dashboard_utils
+import os
+import yaml
+
+pp = pprint.PrettyPrinter(indent=4)
+
+parser = argparse.ArgumentParser()
+parser.add_argument("repo_path", help="Path to the repository")
+parser.add_argument("-d", "--debug", help="Debug mode", action="store_true")
+args = parser.parse_args()
+
+""" logging configuration """
+logger = logging.getLogger('config_functest')
+logger.setLevel(logging.DEBUG)
+
+ch = logging.StreamHandler()
+if args.debug:
+ ch.setLevel(logging.DEBUG)
+else:
+ ch.setLevel(logging.INFO)
+
+formatter = logging.Formatter('%(asctime)s - %(name)s -\
+ %(levelname)s - %(message)s')
+ch.setFormatter(formatter)
+logger.addHandler(ch)
+
+if not os.path.exists(args.repo_path):
+ logger.error("Repo directory not found '%s'" % args.repo_path)
+ exit(-1)
+
+with open(args.repo_path+"testcases/config_functest.yaml") as f:
+ functest_yaml = yaml.safe_load(f)
+f.close()
+
+""" global variables """
+# Directories
+HOME = os.environ['HOME']+"/"
+REPO_PATH = args.repo_path
+TEST_DB = functest_yaml.get("results").get("test_db_url")
+
+
+def main():
+ try:
+ logger.info("Functest test result generation for dashboard")
+
+ # TODO create the loop to provide all the json files
+ logger.debug("Retrieve all the testcases from DB")
+ test_cases = dashboard_utils.get_testcases(TEST_DB, "functest")
+
+ # TODO to be refactor once graph for Tempest, rally and ODL ready
+ # Do it only for vPing in first stage
+ for case in test_cases:
+ logger.debug("Generate " + case + " json files")
+ dashboard_utils.generateJson('functest', case, TEST_DB)
+
+ logger.info("Functest json files for dashboard successfully generated")
+ except:
+ logger.error("Impossible to generate json files for dashboard")
+
+
+if __name__ == '__main__':
+ main()