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
from get_results import report_concat
from get_results import generate_result
def dump_result(Stor,directory, testcase):
try:
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', '
').replace(' ',' ')
Stor.append(Paragraph(replaced_string,Style['BodyText']))
l=l+1
except OSError:
print "Results for {0} not found".format(testcase)
doc = SimpleDocTemplate("../../results/QTIP_results.pdf",pagesize=letter,
rightMargin=72,leftMargin=72,
topMargin=72,bottomMargin=18)
Stor=[]
Style=getSampleStyleSheet()
Title="QTIP Benchmark Suite"
Stor.append(Paragraph(Title,Style['Title']))
H1="Results"
Stor.append(Spacer(0,36))
Stor.append(Paragraph(H1, Style['h2']))
compute=0
storage=0
network=0
try:
compute=results.get_index('compute_result')
except IOError:
pass
try:
storage=results.get_index('storage_result')
except IOError:
pass
try:
network=results.get_index('network_result')
except IOError:
pass
Stor.append(Paragraph("Compute Suite: %f" %compute, 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))
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="•Server Type: Dell PowerEdge R630 Server"
Stor.append(Paragraph(ptext,Style['Bullet']))
ptext="•CPU: Intel Xeon E5-2698 @ 2300 MHz"
Stor.append(Paragraph(ptext, Style["Bullet"]))
ptext="•RAM: 128GB"
Stor.append(Paragraph(ptext, Style["Bullet"]))
ptext="•Storage SSD: 420GB"
Stor.append(Paragraph(ptext, Style["Bullet"]))
ptext="•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 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()