Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py	(revision 38370)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/report.py	(working copy)
@@ -18,6 +18,7 @@
 from hive.model.legacycli import cli_parse, RegexParser, EasyParser, MATCHALL, MATCHONE
 from hive.utils import local_equirement
 import random, time, csv, codecs
+from hive.monitor_log.SSLStatFacade import SSLStatFacade
 
 TIMEFORMAT='%Y-%m-%d %X'
 chart_path = "/var/crash/statmon/"
@@ -67,7 +68,7 @@
     story.append(Paragraph(ptext, styles["alibaba"]))
     d = Draw_a_Line()
     story.append(d)
-
+    
     table_header = [unicode(_('Time'))]
     chart_ins = Line(height=370, is_animation=False)
     for each in chart_item:
@@ -636,7 +637,6 @@
     ptext = '<font size="16">' + unicode(_("System Status")) + '</font>'
     story.append(Paragraph(ptext, styles["alibaba"]))
     story.append(Spacer(1, 12))
-    
     if "cpu_usage" in system_list:
         graph_item = [{
             "item_name" : unicode(_("CPU Usage")),
@@ -645,7 +645,7 @@
         }]
         table_data = zip(system_data_dic['time'], system_data_dic['cpu_usage'])
         story = Draw_Line_Chart(unicode(_("CPU Usage(%)")), env, styles, story, system_data_dic['time'], graph_item, table_data)
-        
+
     if "mem_usage" in system_list:
         graph_item = [{
             "item_name" : unicode(_("System Memory")),
@@ -843,7 +843,6 @@
     ptext = '<font size="12">' + unicode(_("SSL Virtual Host Status")) + '</font>'
     story.append(Paragraph(ptext, styles["alibaba"]))
     story.append(Spacer(1, 12))
-    
     for each_vh in slb_vh_dic:
         ssl_vhost_dic = get_ssl_vh_sql(from_time, to_time,each_vh)
         if "vh_cc" in slb_vh_dic[each_vh]:
@@ -867,7 +866,31 @@
             
             table_data = zip(ssl_vhost_dic['time'], net_in_table, net_out_table)
             story = Draw_Line_Chart(unicode(_("Throughput"))+"(%s)"%each_vh, env, styles, story, ssl_vhost_dic['time'], graph_item, table_data, yaxis_name)
-        
+        if "mentioned_statistics" in slb_vh_dic[each_vh]:
+            sslStat = SSLStatFacade("now-1h", gz_directory="/var/crash")
+            ssl_data = sslStat.get_data()
+            time_list = [e[0] for e in ssl_data]
+            connection_attempts_list = [e[1] for e in ssl_data]
+            successful_handshakes_data = [e[2] for e in ssl_data]
+            active_connections_data = [e[3] for e in ssl_data]
+            graph_item = [{
+                "item_name" : unicode(_("connection attempts")),
+                "table_item_name" : unicode(_("connection attempts")),
+                "item_value" : connection_attempts_list
+            },
+            {
+                "item_name" : unicode(_("successful handshakes")),
+                "table_item_name" : unicode(_("successful handshakes")),
+                "item_value" : successful_handshakes_data
+            },
+            {
+                "item_name" : unicode(_("active connections")),
+                "table_item_name" : unicode(_("active connections")),
+                "item_value" : active_connections_data
+            }
+            ]
+            table_data = zip(time_list, connection_attempts_list, successful_handshakes_data, active_connections_data)
+            story = Draw_Line_Chart(unicode(_("total ssl statistics")), env, styles, story, time_list, graph_item, table_data)
     return story
 
 def generateSSLRHostReport(from_time, to_time, slb_rh_dic, env, styles, story):
@@ -1282,6 +1305,16 @@
         cw.writerow([unicode(_('Throughput'))])
         cw.writerow([unicode(_('Time')), unicode(_('Inbound(bps)')), unicode(_('Outbound(bps)'))])
         cw.writerows(zip(ssl_vhost_dic['time'], value_format_1024_table(ssl_vhost_dic['net_in_list']), value_format_1024_table(ssl_vhost_dic['net_out_list'])))
+    if 'mentioned_statistics' in slb_vh_list[vh_name]:
+        sslStat = SSLStatFacade("now-1h", gz_directory="/var/crash")
+        ssl_data = sslStat.get_data()
+        time_list = [e[0] for e in ssl_data]
+        connection_attempts_list = [e[1] for e in ssl_data]
+        successful_handshakes_data = [e[2] for e in ssl_data]
+        active_connections_data = [e[3] for e in ssl_data]
+        cw.writerow([unicode(_('total ssl statistics'))])
+        cw.writerow([unicode(_('Time')), unicode(_('connection attempts')), unicode(_('successful handshakes')), unicode(_('active connections'))])
+        cw.writerows(zip(time_list, connection_attempts_list, successful_handshakes_data, active_connections_data))
     return cw
 
 def generateSSLRHostCSV(cw, from_time, to_time, rh_name, slb_rh_list):
@@ -1731,6 +1764,14 @@
               "label": unicode(_('Throughput'))
             }]
         })
+    vh_list.append({
+        "value": "individual_virtual_host",
+        "label": unicode(_("Individual virtual host")) ,
+        "children": [{
+            "value": 'mentioned_statistics',
+            "label": unicode(_('mentioned statistics'))
+        }]
+    })
     return vh_list
 
 def get_ssl_real_list():
