From f63c33560d084bb2f5bd773bf6e51f3d04e44e64 Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Thu, 22 Sep 2016 17:10:35 +0800 Subject: Remove Brhamaputra dashboard process from testapi Now, ELK is the framework used for dashboarding JIRA: FUNCTEST-489 Change-Id: I51e8bc83e7309a226515f603eb4c468b7e7a69bd Signed-off-by: SerenaFeng --- .../dashboard/bottlenecks2Dashboard.py | 199 --------------------- 1 file changed, 199 deletions(-) delete mode 100755 result_collection_api/opnfv_testapi/dashboard/bottlenecks2Dashboard.py (limited to 'result_collection_api/opnfv_testapi/dashboard/bottlenecks2Dashboard.py') diff --git a/result_collection_api/opnfv_testapi/dashboard/bottlenecks2Dashboard.py b/result_collection_api/opnfv_testapi/dashboard/bottlenecks2Dashboard.py deleted file mode 100755 index f5e3d9a..0000000 --- a/result_collection_api/opnfv_testapi/dashboard/bottlenecks2Dashboard.py +++ /dev/null @@ -1,199 +0,0 @@ -#!/usr/bin/python -# -############################################################################## -# Copyright (c) 2015 Huawei Technologies Co.,Ltd and other. -# -# 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 -############################################################################## -# -# This script is used to build dashboard ready json results -# It may be used for all the test case of the Bottlenecks project -# a new method format__for_dashboard(results) -# v0.1: basic example with methods for Rubbos. -# -import os -import requests -import json - - -def get_bottlenecks_cases(): - """ - get the list of the supported test cases - TODO: update the list when adding a new test case for the dashboard - """ - return ["rubbos", "tu1", "tu3"] - - -def check_bottlenecks_case_exist(case): - """ - check if the testcase exists - if the test case is not defined or not declared in the list - return False - """ - bottlenecks_cases = get_bottlenecks_cases() - - if case is None or case not in bottlenecks_cases: - return False - else: - return True - - -def format_bottlenecks_for_dashboard(case, results): - """ - generic method calling the method corresponding to the test case - check that the testcase is properly declared first - then build the call to the specific method - """ - if check_bottlenecks_case_exist(case): - cmd = "format_" + case + "_for_dashboard" - res = globals()[cmd](results) - else: - res = [] - print "Test cases not declared" - return res - - -def format_rubbos_for_dashboard(results): - """ - Post processing for the Rubbos test case - """ - test_data = [{'description': 'Rubbos results'}] - - # Graph 1:Rubbos maximal throughput - # ******************************** - #new_element = [] - #for each_result in results: - # throughput_data = [record['throughput'] for record in each_result['details']] - # new_element.append({'x': each_result['start_date'], - # 'y': max(throughput_data)}) - - #test_data.append({'name': "Rubbos max throughput", - # 'info': {'type': "graph", - # 'xlabel': 'time', - # 'ylabel': 'maximal throughput'}, - # 'data_set': new_element}) - - # Graph 2: Rubbos last record - # ******************************** - new_element = [] - latest_result = results[-1]["details"] - for data in latest_result: - client_num = int(data["client"]) - throughput = int(data["throughput"]) - new_element.append({'x': client_num, - 'y': throughput}) - test_data.append({'name': "Rubbos throughput vs client number", - 'info': {'type': "graph", - 'xlabel': 'client number', - 'ylabel': 'throughput'}, - 'data_set': new_element}) - - return test_data - - -def format_tu1_for_dashboard(results): - test_data = [{'description': 'Tu-1 performance result'}] - line_element = [] - bar_element = {} - last_result = results[-1]["details"] - for key in sorted(last_result): - bandwith = last_result[key]["Bandwidth"] - pktsize = int(key) - line_element.append({'x': pktsize, - 'y': bandwith * 1000}) - bar_element[key] = bandwith * 1000 - # graph1, line - test_data.append({'name': "VM2VM max single directional throughput", - 'info': {'type': "graph", - 'xlabel': 'pktsize', - 'ylabel': 'bandwith(kpps)'}, - 'data_set': line_element}) - # graph2, bar - test_data.append({'name': "VM2VM max single directional throughput", - 'info': {"type": "bar"}, - 'data_set': bar_element}) - return test_data - - -def format_tu3_for_dashboard(results): - test_data = [{'description': 'Tu-3 performance result'}] - new_element = [] - bar_element = {} - last_result = results[-1]["details"] - for key in sorted(last_result): - bandwith = last_result[key]["Bandwidth"] - pktsize = int(key) - new_element.append({'x': pktsize, - 'y': bandwith * 1000}) - bar_element[key] = bandwith * 1000 - # graph1, line - test_data.append({'name': "VM2VM max bidirectional throughput", - 'info': {'type': "graph", - 'xlabel': 'pktsize', - 'ylabel': 'bandwith(kpps)'}, - 'data_set': new_element}) - # graph2, bar - test_data.append({'name': "VM2VM max single directional throughput", - 'info': {"type": "bar"}, - 'data_set': bar_element}) - return test_data - - -############################ For local test ################################ - -def _read_sample_output(filename): - curr_path = os.path.dirname(os.path.abspath(__file__)) - output = os.path.join(curr_path, filename) - with open(output) as f: - sample_output = f.read() - - result = json.loads(sample_output) - return result - - -# Copy form functest/testcases/Dashboard/dashboard_utils.py -# and did some minor modification for local test. -def _get_results(db_url, test_criteria): - test_project = test_criteria["project"] - testcase = test_criteria["testcase"] - - # Build headers - headers = {'Content-Type': 'application/json'} - - # build the request - # if criteria is all => remove criteria - url = db_url + "/results?project=" + test_project + "&case=" + testcase - - # Send Request to Test DB - myData = requests.get(url, headers=headers) - - # Get result as a json object - myNewData = json.loads(myData.text) - - # Get results - myDataResults = myNewData['test_results'] - return myDataResults - -#only for local test -def _test(): - db_url = "http://testresults.opnfv.org/testapi" - results = _get_results(db_url, {"project": "bottlenecks", "testcase": "rubbos"}) - test_result = format_rubbos_for_dashboard(results) - print json.dumps(test_result, indent=4) - - results = _get_results(db_url, {"project": "bottlenecks", "testcase": "tu1"}) - #results = _read_sample_output("sample") - #print json.dumps(results, indent=4) - test_result = format_tu1_for_dashboard(results) - print json.dumps(test_result, indent=4) - results = _get_results(db_url, {"project": "bottlenecks", "testcase": "tu3"}) - test_result = format_tu3_for_dashboard(results) - print json.dumps(test_result, indent=4) - - -if __name__ == '__main__': - _test() - -- cgit 1.2.3-korg