aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNauman_Ahad <nauman_ahad@xflowresearch.com>2016-02-03 19:41:26 +0500
committerNauman Ahad <nauman.ahad@xflowresearch.com>2016-02-03 14:57:14 +0000
commit5a0ad01399b28ab2dfbb60b64734914e0dd3d2d5 (patch)
treefad3b5d6c2c3daf7f6122591dc9c33951d6fc716
parentc3dfc4a790823e732e74ee90b99a6124fbc1d1b5 (diff)
QTIP output report format fixed
In addtion to grahs, output report shows invidual testcase result details. Change-Id: Id774eac340d12526fd317c1b4b00b51a22b114cf Signed-off-by: Nauman_Ahad <nauman_ahad@xflowresearch.com> (cherry picked from commit c9d87c44a77957b5299d3a619f846f4316047102)
-rw-r--r--data/report/Qtip_Report.py73
-rw-r--r--data/report/get_results.py49
2 files changed, 117 insertions, 5 deletions
diff --git a/data/report/Qtip_Report.py b/data/report/Qtip_Report.py
index e8b52c1a..5132e1b6 100644
--- a/data/report/Qtip_Report.py
+++ b/data/report/Qtip_Report.py
@@ -1,9 +1,26 @@
+from reportlab.pdfgen import canvas
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch
from reportlab.lib.pagesizes import letter
+from reportlab.platypus import ListFlowable, ListItem
import qtip_graph as graph
-import get_indices as results
+import get_indices as results
+from get_results import report_concat
+from get_results import generate_result
+
+def dump_result(Stor,directory, testcase):
+ lower_s=testcase.lower()
+ Stor.append(Paragraph(testcase,Style['h3']))
+ l1=report_concat(directory,lower_s)
+ l=1
+ for a in l1:
+ Stor.append(Paragraph(testcase+" result_"+str(l),Style['h5']))
+ raw_string=generate_result(a,0)
+ replaced_string=raw_string.replace('\n', '<br/> ').replace(' ','&nbsp;')
+ Stor.append(Paragraph(replaced_string,Style['BodyText']))
+ l=l+1
+
doc = SimpleDocTemplate("../../results/QTIP_results.pdf",pagesize=letter,
rightMargin=72,leftMargin=72,
topMargin=72,bottomMargin=18)
@@ -33,16 +50,62 @@ except IOError:
pass
Stor.append(Paragraph("Compute Suite: %f" %compute, Style['h5']))
-Stor.append(Paragraph("Storage Suite: %f" %storage, Style['h5']))
-Stor.append(Paragraph("Netowrk Suite: %f" %network, Style['h5']))
+Stor.append(Paragraph("Storage Suite: %f" %storage, Style['h5']))
+Stor.append(Paragraph("Network Suite: %f" %network, Style['h5']))
graph.plot_indices(compute,storage,network)
qtip_graph=('qtip_graph.jpeg')
im=Image(qtip_graph, 5*inch,4*inch)
Stor.append(im)
Stor.append(Spacer(0, 12))
-ptext="For Details of the Reference POD hardware, please visit: https://wiki.opnfv.org/reference_pod_hardware_details"
+Stor.append(Paragraph("Reference POD", Style['h5']))
+ptext="The Dell OPNFV Lab POD3 has been taken as the reference POD against which the reference results have been collected. The POD consists of 6 identical servers. The details of such a server are:"
Stor.append(Paragraph(ptext,Style['Normal']))
+ptext="<bullet>&bull;</bullet>Server Type: Dell PowerEdge R630 Server"
+Stor.append(Paragraph(ptext,Style['Bullet']))
+ptext="<bullet>&bull;</bullet>CPU: Intel Xeon E5-2698 @ 2300 MHz"
+Stor.append(Paragraph(ptext, Style["Bullet"]))
+ptext="<bullet>&bull;</bullet>RAM: 128GB"
+Stor.append(Paragraph(ptext, Style["Bullet"]))
+ptext="<bullet>&bull;</bullet>Storage SSD: 420GB"
+Stor.append(Paragraph(ptext, Style["Bullet"]))
+ptext="<bullet>&bull;</bullet>Network Card: Intel 2P X520/2P I350 rNDC"
+Stor.append(Paragraph(ptext, Style["Bullet"]))
+ptext="Servers interconnected through a DELL S4810 switch using a 10Gbps physical link"
+Stor.append(Paragraph(ptext, Style["Bullet"]))
Stor.append(Spacer(0, 12))
-ptext="For Details of the Reference POD Results, please visit: https://wiki.opnfv.org/reference_pod_qtip_results"
+ptext="For Further Details of the Reference POD hardware, please visit: https://wiki.opnfv.org/reference_pod_hardware_details"
Stor.append(Paragraph(ptext,Style['Normal']))
+Stor.append(Spacer(0, 12))
+ptext="For Details of the Reference POD Results, please visit: https://wiki.opnfv.org/reference_pod_qtip_results"
+Stor.append(Spacer(0, 12))
+Stor.append(Paragraph(ptext,Style['Normal']))
+Stor.append(Paragraph("RAW Results", Style['h1']))
+Stor.append(Paragraph("Compute Results", Style['h2']))
+
+dump_result(Stor,"../../results/dhrystone/","Dhrystone_bm")
+dump_result(Stor,"../../results/dhrystone/","Dhrystone_vm")
+
+dump_result(Stor,"../../results/whetstone/","Whetstone_bm")
+dump_result(Stor,"../../results/whetstone/","Whetstone_vm")
+
+dump_result(Stor,"../../results/ramspeed/","Ramspeed_bm")
+dump_result(Stor,"../../results/ramspeed/","Ramspeed_vm")
+
+dump_result(Stor,"../../results/ssl/","SSL_bm")
+dump_result(Stor,"../../results/ssl/","SSL_vm")
+
+#dump_result(Stor,"../../results/dpi/","DPI_bm")
+#dump_result(Stor,"../../results/dpi/","DPI_vm")
+
+Stor.append(Paragraph("Network Results", Style['h2']))
+dump_result(Stor,"../../results/iperf/","IPERF_bm")
+dump_result(Stor,"../../results/iperf/","IPERF_vm")
+dump_result(Stor,"../../results/iperf/","IPERF_vm_2")
+
+Stor.append(Paragraph("Storage Results", Style['h2']))
+dump_result(Stor,"../../results/fio/","fio_bm")
+dump_result(Stor,"../../results/fio/","fio_vm")
+
+
doc.build(Stor)
+#canvas.save()
diff --git a/data/report/get_results.py b/data/report/get_results.py
new file mode 100644
index 00000000..01fb8080
--- /dev/null
+++ b/data/report/get_results.py
@@ -0,0 +1,49 @@
+import os
+import json
+
+
+def report_concat (targ_dir, testcase):
+ machine_temp=[];
+ machines=[];
+ diction={};
+
+ for file in os.listdir(targ_dir):
+ if file.endswith(".json"):
+ machine_temp.append(file)
+
+ l=len(machine_temp)
+
+ for x in range (0,l):
+ file_t=machine_temp[x]
+ with open (targ_dir+file_t) as result_file:
+ result_djson=json.load(result_file)
+ if result_djson['1 Testcase Name'] == str(testcase):
+ machines.append(result_djson)
+ return machines
+
+def space_count(l):
+ spc=''
+ for x in range(l):
+ spc=spc+' '
+ return spc
+
+
+def custom_dict(list1,list2,k):
+ string_1=''
+ for num_1 in range (0,len(list1)):
+ string_1=string_1+space_count(k)+str(list1[num_1][0])+"="+str(list2[num_1])+"\n"
+ return string_1
+
+def generate_result(dict_a,k):
+ list_1=[]
+ list_2=[]
+ count=0
+ for i,j in sorted(dict_a.iteritems()):
+ list_1.append([])
+ list_1[count].append(i)
+ if (str(type(dict_a.get(i)))) == "<type 'dict'>":
+ list_2.append(str("\n"+generate_result(dict_a.get(i),int(k+1))))
+ else:
+ list_2.append(dict_a.get(i))
+ count=count+1
+ return custom_dict(list_1,list_2,k)