summaryrefslogtreecommitdiffstats
path: root/utils/dashboard
diff options
context:
space:
mode:
Diffstat (limited to 'utils/dashboard')
-rw-r--r--utils/dashboard/process_data.py41
-rwxr-xr-xutils/dashboard/rubbos_collector.py22
-rwxr-xr-xutils/dashboard/uploader.py8
3 files changed, 41 insertions, 30 deletions
diff --git a/utils/dashboard/process_data.py b/utils/dashboard/process_data.py
index d4b2ccfb..e71a1e82 100644
--- a/utils/dashboard/process_data.py
+++ b/utils/dashboard/process_data.py
@@ -13,6 +13,7 @@ import sys
from rubbos_collector import RubbosCollector
from uploader import Uploader
+
def printUsage():
print "Usage: python process_data.py required_params(**) optional_params([])"
print " ** -i|--input input_data_dir"
@@ -21,12 +22,14 @@ def printUsage():
print " [] -o|--output output_file"
print " [] -u|--upload yes|no"
+
def process(input_dir, suite_name):
result = dict()
if suite_name == "rubbos":
result = RubbosCollector().collect_data(input_dir)
return result
+
def writeResult(output_file, result):
f = open(output_file, "w")
if isinstance(result, list):
@@ -34,41 +37,43 @@ def writeResult(output_file, result):
f.write(str(elem) + "\n")
f.close()
+
def uploadResult(conf, suite_name, result):
Uploader(conf).upload_result(suite_name, result)
+
def main():
if len(sys.argv) < 7 or len(sys.argv) % 2 == 0:
printUsage()
- exit (1)
+ exit(1)
i = 1
params = dict()
while (i < len(sys.argv)):
- if sys.argv[i]=="-i" or sys.argv[i]=="--input":
- params["input"] = sys.argv[i+1]
- if sys.argv[i]=="-s" or sys.argv[i]=="--suite":
- params["suite"] = sys.argv[i+1]
- if sys.argv[i]=="-c" or sys.argv[i]=="--conf":
- params["conf"] = sys.argv[i+1]
- if sys.argv[i]=="-o" or sys.argv[i]=="--output":
- params["output"] = sys.argv[i+1]
- if sys.argv[i]=="-u" or sys.argv[i]=="--upload":
- params["upload"] = sys.argv[i+1]
- i = i+2
- if not(params.has_key("input") and params.has_key("suite") and params.has_key("conf")):
+ if sys.argv[i] == "-i" or sys.argv[i] == "--input":
+ params["input"] = sys.argv[i + 1]
+ if sys.argv[i] == "-s" or sys.argv[i] == "--suite":
+ params["suite"] = sys.argv[i + 1]
+ if sys.argv[i] == "-c" or sys.argv[i] == "--conf":
+ params["conf"] = sys.argv[i + 1]
+ if sys.argv[i] == "-o" or sys.argv[i] == "--output":
+ params["output"] = sys.argv[i + 1]
+ if sys.argv[i] == "-u" or sys.argv[i] == "--upload":
+ params["upload"] = sys.argv[i + 1]
+ i = i + 2
+ if not("input" in params and "suite" in params and "conf" in params):
print "Lack some required parameters."
- exit (1)
+ exit(1)
result = process(params["input"], params["suite"])
print "Results:"
for elem in result:
print elem
- if params.has_key("output"):
- writeResult(params["output"],result)
+ if "output" in params:
+ writeResult(params["output"], result)
- if params.has_key("upload") and params["upload"].lower()=="yes":
+ if "upload" in params and params["upload"].lower() == "yes":
uploadResult(params["conf"], params["suite"], result)
-if __name__=="__main__":
+if __name__ == "__main__":
main()
diff --git a/utils/dashboard/rubbos_collector.py b/utils/dashboard/rubbos_collector.py
index c9851739..d9f86032 100755
--- a/utils/dashboard/rubbos_collector.py
+++ b/utils/dashboard/rubbos_collector.py
@@ -10,16 +10,18 @@
import subprocess as subp
+
def exec_shell(cmd):
- out,err = subp.Popen(cmd, stdout=subp.PIPE, shell=True).communicate()
+ out, err = subp.Popen(cmd, stdout=subp.PIPE, shell=True).communicate()
return out.strip()
+
def get_onetime_data(dir_name):
cmd = "grep -in 'remote client nodes' %s/index.html|awk '{print $5}'|awk -F '<' '{print $1}'" % dir_name
client_node_num = int(exec_shell(cmd))
cmd = "grep -n 'Number of clients' %s/index.html|awk '{print $5}'|awk -F '<' '{print $1}'" % dir_name
each_client_num = int(exec_shell(cmd))
- total_client = (client_node_num+1) * each_client_num
+ total_client = (client_node_num + 1) * each_client_num
cmd = 'grep -n "throughput" %s/stat_client*.html |awk -F "<B>" \'{if (FNR%%2==0 && FNR%%4!=0) {printf "%%s\\n", $3}}\'|awk \'BEGIN{sum=0;}{sum=sum+$1;}END{print sum}\'' % dir_name
throughput = int(exec_shell(cmd))
@@ -39,11 +41,15 @@ class RubbosCollector(object):
pass
def collect_data(self, data_home):
- cmd = 'ls -l %s |grep ^d|awk \'{print $9}\'' % data_home
+ cmd = 'ls -l %s |grep ^d|awk \'{print $9}\'' % data_home
result = []
for subdir in exec_shell(cmd).split('\n'):
- total_client, throughput, request, error_request = get_onetime_data(data_home+'/'+subdir)
- result.append({'client':total_client, 'throughput':throughput, 'request':request, 'error_request':error_request})
- result.sort(key=lambda x:x['client'])
-
- return result;
+ total_client, throughput, request, error_request = get_onetime_data(
+ data_home + '/' + subdir)
+ result.append({'client': total_client,
+ 'throughput': throughput,
+ 'request': request,
+ 'error_request': error_request})
+ result.sort(key=lambda x: x['client'])
+
+ return result
diff --git a/utils/dashboard/uploader.py b/utils/dashboard/uploader.py
index 07862fed..a4686560 100755
--- a/utils/dashboard/uploader.py
+++ b/utils/dashboard/uploader.py
@@ -29,7 +29,6 @@ class Uploader(object):
self.result['version'] = dashboard_conf['version']
self.target = dashboard_conf['target']
-
def upload_result(self, case_name, raw_data):
if self.target == '':
print('No target was set, so no data will be posted.')
@@ -43,7 +42,9 @@ class Uploader(object):
data=json.dumps(self.result),
headers=self.headers,
timeout=self.timeout)
- print('Test result posting finished with status code %d.' % res.status_code)
+ print(
+ 'Test result posting finished with status code %d.' %
+ res.status_code)
except Exception as err:
print ('Failed to record result data: %s', err)
@@ -55,10 +56,9 @@ def _test():
print ("no argumens input!!")
exit(1)
- with open(sys.argv[1],'r') as stream:
+ with open(sys.argv[1], 'r') as stream:
data = json.load(stream)
Uploader().upload_result(data)
if __name__ == "__main__":
_test()
-