Shirly Radco has uploaded a new change for review. Change subject: reports: br7a report - added comments to queries ......................................................................
reports: br7a report - added comments to queries Changed the code structure so it will be more readable and added commets. Change-Id: Ia7ec9c1ceb9b2a728173dae6ac4a66f80568b356 Signed-off-by: Shirly Radco <[email protected]> --- M packaging/ovirt-reports/resources/reports_resources/embedded_reports/Uptime_Dashboard/cluster_uptime_by_datacenter_br7a_files/cluster_uptime_by_datacenter_br7a_jrxml.data 1 file changed, 409 insertions(+), 334 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-reports refs/changes/52/27852/1 diff --git a/packaging/ovirt-reports/resources/reports_resources/embedded_reports/Uptime_Dashboard/cluster_uptime_by_datacenter_br7a_files/cluster_uptime_by_datacenter_br7a_jrxml.data b/packaging/ovirt-reports/resources/reports_resources/embedded_reports/Uptime_Dashboard/cluster_uptime_by_datacenter_br7a_files/cluster_uptime_by_datacenter_br7a_jrxml.data index 9f99b16..8861af7 100644 --- a/packaging/ovirt-reports/resources/reports_resources/embedded_reports/Uptime_Dashboard/cluster_uptime_by_datacenter_br7a_files/cluster_uptime_by_datacenter_br7a_jrxml.data +++ b/packaging/ovirt-reports/resources/reports_resources/embedded_reports/Uptime_Dashboard/cluster_uptime_by_datacenter_br7a_files/cluster_uptime_by_datacenter_br7a_jrxml.data @@ -1,340 +1,415 @@ <?xml version="1.0" encoding="UTF-8"?> -<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="BR7A" language="groovy" pageWidth="510" pageHeight="832" whenNoDataType="AllSectionsNoDetail" columnWidth="510" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" resourceBundle="ovirt_reports_bundle" whenResourceMissingType="Error"> - <property name="ireport.jasperserver.reportUnit" value="/reports_resources/embedded_reports/cluster_uptime_by_datacenter_br7a"/> - <property name="ireport.jasperserver.url" value="http://localhost:8080/jasperserver/services/repository"/> - <property name="ireport.zoom" value="1.0"/> - <property name="ireport.x" value="0"/> - <property name="ireport.y" value="0"/> - <style name="Line Style"> - <conditionalStyle> - <conditionExpression><![CDATA[($V{REPORT_COUNT} % 2) == 0]]></conditionExpression> - <style mode="Opaque" backcolor="#EFF3FF"/> - </conditionalStyle> - </style> - <parameter name="is_deleted" class="java.lang.String"> - <defaultValueExpression><![CDATA["AND delete_date IS NULL"]]></defaultValueExpression> - </parameter> - <parameter name="P_Period" class="java.lang.Short"> - <parameterDescription><![CDATA[Period]]></parameterDescription> - <defaultValueExpression><![CDATA[0]]></defaultValueExpression> - </parameter> - <parameter name="P_Start_Date" class="java.util.Date"> - <defaultValueExpression><![CDATA["01/01/2000"]]></defaultValueExpression> - </parameter> - <parameter name="P_DataCenter_ID" class="java.lang.String"> - <parameterDescription><![CDATA[Select a DataCenter]]></parameterDescription> - <defaultValueExpression><![CDATA["00000000-0000-0000-0000-000000000000"]]></defaultValueExpression> - </parameter> - <parameter name="REPORT_NAME" class="java.lang.String" isForPrompting="false"/> - <parameter name="table_name" class="java.lang.String"> - <defaultValueExpression><![CDATA[$P{P_Period} == 0 ? "hourly" : "daily"]]></defaultValueExpression> - </parameter> - <parameter name="calendar_column" class="java.lang.String"> - <defaultValueExpression><![CDATA[$P{P_Period} == 0 ? "the_datetime" : "the_date"]]></defaultValueExpression> - </parameter> - <queryString> - <![CDATA[SELECT cluster_id, +<!-- Created with Jaspersoft Studio version 5.5.0--> +<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="BR7A" language="groovy" pageWidth="510" pageHeight="832" whenNoDataType="AllSectionsNoDetail" columnWidth="510" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" resourceBundle="ovirt_reports_bundle" whenResourceMissingType="Error" uuid="83f9c6a4-854b-4cfc-b4bb-a451b5894b69"> + <property name="ireport.jasperserver.reportUnit" value="/reports_resources/embedded_reports/Uptime_Dashboard/cluster_uptime_by_datacenter_br7a"/> + <property name="ireport.jasperserver.url" value="http://localhost:8080/jasperserver-pro/"/> + <property name="ireport.zoom" value="1.0"/> + <property name="ireport.x" value="0"/> + <property name="ireport.y" value="0"/> + <property name="ireport.jasperserver.report.resource" value="/reports_resources/embedded_reports/Uptime_Dashboard/cluster_uptime_by_datacenter_br7a_files/cluster_uptime_by_datacenter_br7a_jrxml"/> + <style name="Line Style"> + <conditionalStyle> + <conditionExpression><![CDATA[($V{REPORT_COUNT} % 2) == 0]]></conditionExpression> + <style mode="Opaque" backcolor="#EFF3FF"/> + </conditionalStyle> + </style> + <parameter name="is_deleted" class="java.lang.String"> + <defaultValueExpression><![CDATA["AND delete_date IS NULL"]]></defaultValueExpression> + </parameter> + <parameter name="P_Period" class="java.lang.Short"> + <parameterDescription><![CDATA[Period]]></parameterDescription> + <defaultValueExpression><![CDATA[0]]></defaultValueExpression> + </parameter> + <parameter name="P_Start_Date" class="java.util.Date"> + <defaultValueExpression><![CDATA["01/01/2000"]]></defaultValueExpression> + </parameter> + <parameter name="P_DataCenter_ID" class="java.lang.String"> + <parameterDescription><![CDATA[Select a DataCenter]]></parameterDescription> + <defaultValueExpression><![CDATA["00000000-0000-0000-0000-000000000000"]]></defaultValueExpression> + </parameter> + <parameter name="REPORT_NAME" class="java.lang.String" isForPrompting="false"/> + <parameter name="table_name" class="java.lang.String"> + <defaultValueExpression><![CDATA[$P{P_Period} == 0 ? "hourly" : "daily"]]></defaultValueExpression> + </parameter> + <parameter name="calendar_column" class="java.lang.String"> + <defaultValueExpression><![CDATA[$P{P_Period} == 0 ? "the_datetime" : "the_date"]]></defaultValueExpression> + </parameter> + <queryString language="SQL"> + <![CDATA[-- BR7A - This query returns the +-- average planned and unplanned downtime, +-- average uptime and total time per cluster. + +SELECT + cluster_id, name, delete_date, - avg(planned_downtime_mins) as planned_downtime_mins, - avg(unplanned_downtime_mins) as unplanned_downtime_mins, - avg(uptime_mins) as uptime_mins, - avg(total) as total -FROM (SELECT v3_5_configuration_history_hosts.cluster_id, - v3_5_configuration_history_clusters.cluster_name as name, - v3_5_configuration_history_clusters.delete_date, - v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_id, - SUM(CASE WHEN v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_status = 2 THEN coalesce(v3_5_statistics_hosts_resources_usage_$P!{table_name}.minutes_in_status,0) ELSE 0 END) AS planned_downtime_mins, - SUM(CASE WHEN v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_status = 3 THEN coalesce(v3_5_statistics_hosts_resources_usage_$P!{table_name}.minutes_in_status,0) ELSE 0 END) AS unplanned_downtime_mins, - SUM(CASE WHEN v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_status = 1 THEN coalesce(v3_5_statistics_hosts_resources_usage_$P!{table_name}.minutes_in_status,0) ELSE 0 END) AS uptime_mins, - Sum(v3_5_statistics_hosts_resources_usage_$P!{table_name}.minutes_in_status) as total - FROM v3_5_statistics_hosts_resources_usage_$P!{table_name} - INNER JOIN v3_5_configuration_history_hosts - ON (v3_5_configuration_history_hosts.host_id = v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_id) - INNER JOIN v3_5_configuration_history_clusters - ON (v3_5_configuration_history_clusters.cluster_id = v3_5_configuration_history_hosts.cluster_id) - WHERE - v3_5_configuration_history_hosts.cluster_id in (SELECT cluster_id - FROM v3_5_configuration_history_clusters - Where datacenter_id = cast($P{P_DataCenter_ID} as uuid)) - AND history_datetime >= cast($P{P_Start_Date} as timestamp) - AND history_datetime <= CASE - WHEN $P{P_Period} = 0 THEN CAST($P{P_Start_Date} as TIMESTAMP) + interval '1 day' - WHEN $P{P_Period} = 1 THEN CAST($P{P_Start_Date} as TIMESTAMP) + interval '1 month' - WHEN $P{P_Period} = 2 THEN CAST($P{P_Start_Date} as TIMESTAMP) + interval '3 month' - WHEN $P{P_Period} = 3 THEN CAST($P{P_Start_Date} as TIMESTAMP) + interval '1 year' - END - AND v3_5_configuration_history_clusters.history_id in (SELECT max(a.history_id) - FROM v3_5_configuration_history_clusters a - GROUP BY a.cluster_id) - AND v3_5_configuration_history_hosts.history_id in (SELECT max(b.history_id) - FROM v3_5_configuration_history_hosts b - GROUP BY b.host_id) - AND CASE - WHEN $P{is_deleted} like 'AND%' THEN v3_5_configuration_history_hosts.delete_date IS NULL - ELSE v3_5_configuration_history_hosts.delete_date IS NULL or v3_5_configuration_history_hosts.delete_date IS NOT NULL + AVG ( planned_downtime_mins ) AS planned_downtime_mins, + AVG ( unplanned_downtime_mins ) AS unplanned_downtime_mins, + AVG ( uptime_mins ) AS uptime_mins, + AVG ( total ) AS total +FROM ( + SELECT + v3_5_configuration_history_hosts.cluster_id, + v3_5_configuration_history_clusters.cluster_name AS name, + v3_5_configuration_history_clusters.delete_date, + v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_id, + SUM ( + CASE + WHEN v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_status = 2 + THEN + COALESCE ( + v3_5_statistics_hosts_resources_usage_$P!{table_name}.minutes_in_status, + 0 + ) + ELSE 0 END - GROUP BY - v3_5_configuration_history_hosts.cluster_id - ,v3_5_configuration_history_clusters.cluster_name - ,v3_5_configuration_history_clusters.delete_date - ,v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_id) a + ) AS planned_downtime_mins, + SUM ( + CASE + WHEN v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_status = 3 + THEN + COALESCE ( + v3_5_statistics_hosts_resources_usage_$P!{table_name}.minutes_in_status, + 0 + ) + ELSE 0 + END + ) AS unplanned_downtime_mins, + SUM ( + CASE + WHEN v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_status = 1 + THEN + COALESCE ( + v3_5_statistics_hosts_resources_usage_$P!{table_name}.minutes_in_status, + 0 + ) + ELSE 0 + END + ) AS uptime_mins, + SUM ( + v3_5_statistics_hosts_resources_usage_$P!{table_name}.minutes_in_status + ) AS total + -- If "Period" equals to "Daily" then "table_name" parameter equals to "hourly" else "daily" + FROM v3_5_statistics_hosts_resources_usage_$P!{table_name} + INNER JOIN v3_5_configuration_history_hosts + ON ( + v3_5_configuration_history_hosts.host_id = + v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_id + ) + INNER JOIN v3_5_configuration_history_clusters + ON ( + v3_5_configuration_history_clusters.cluster_id = + v3_5_configuration_history_hosts.cluster_id + ) + WHERE + -- Here we filter by the datacenter chosen by the user + v3_5_configuration_history_hosts.cluster_id IN ( + SELECT cluster_id + FROM v3_5_configuration_history_clusters + WHERE datacenter_id = CAST ( $P{P_DataCenter_ID} AS uuid ) + ) + AND history_datetime >= CAST ( $P{P_Start_Date} AS TIMESTAMP ) + AND history_datetime < + CASE + WHEN $P{P_Period} = 0 + THEN CAST ( $P{P_Start_Date} AS TIMESTAMP ) + interval '1 day' + WHEN $P{P_Period} = 1 + THEN CAST ( $P{P_Start_Date} AS TIMESTAMP ) + interval '1 month' + WHEN $P{P_Period} = 2 + THEN CAST ( $P{P_Start_Date} AS TIMESTAMP ) + interval '3 month' + WHEN $P{P_Period} = 3 + THEN CAST ( $P{P_Start_Date} AS TIMESTAMP ) + interval '1 year' + END + -- Here we get the latest clusters configuration + AND v3_5_configuration_history_clusters.history_id IN ( + SELECT MAX ( a.history_id ) + FROM v3_5_configuration_history_clusters AS a + GROUP BY a.cluster_id + ) + -- Here we get the latest hosts configuration + AND v3_5_configuration_history_hosts.history_id IN ( + SELECT MAX ( b.history_id ) + FROM v3_5_configuration_history_hosts AS b + GROUP BY b.host_id + ) + -- This will determine if deleted hosts will be included in the report, + -- according to the user selection for "is_deleted" parameter + AND + CASE + WHEN $P{is_deleted} LIKE 'AND%' + THEN v3_5_configuration_history_hosts.delete_date IS NULL + ELSE + v3_5_configuration_history_hosts.delete_date IS NULL + OR + v3_5_configuration_history_hosts.delete_date IS NOT NULL + END + GROUP BY + v3_5_configuration_history_hosts.cluster_id, + v3_5_configuration_history_clusters.cluster_name, + v3_5_configuration_history_clusters.delete_date, + v3_5_statistics_hosts_resources_usage_$P!{table_name}.host_id +) AS a GROUP BY - cluster_id - ,name - ,delete_date -ORDER BY (CASE - WHEN delete_date IS NULL THEN 0 - ELSE 1 - END) ASC, - cast(avg(uptime_mins) as float)/cast(avg(total) as float) DESC]]> - </queryString> - <field name="cluster_id" class="java.lang.Object"/> - <field name="name" class="java.lang.String"/> - <field name="delete_date" class="java.sql.Timestamp"/> - <field name="planned_downtime_mins" class="java.math.BigDecimal"/> - <field name="unplanned_downtime_mins" class="java.math.BigDecimal"/> - <field name="uptime_mins" class="java.math.BigDecimal"/> - <field name="total" class="java.math.BigDecimal"/> - <group name="Data Center"> - <groupExpression><![CDATA[$P{P_DataCenter_ID}]]></groupExpression> - <groupHeader> - <band height="46"> - <textField> - <reportElement mode="Transparent" x="0" y="0" width="510" height="20" forecolor="#3A5E75"/> - <textElement markup="none"> - <font fontName="SansSerif" size="13" isBold="true" isUnderline="false"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$R{br7a.title}]]></textFieldExpression> - </textField> - <frame> - <reportElement mode="Opaque" x="0" y="20" width="510" height="26" backcolor="#D8E2FF"/> - <textField> - <reportElement mode="Opaque" x="10" y="0" width="140" height="26" backcolor="#D8E2FF"/> - <textElement verticalAlignment="Middle" markup="none"> - <font fontName="SansSerif" size="11" isBold="true"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$R{br7a.table.cluster.name}]]></textFieldExpression> - </textField> - <textField> - <reportElement mode="Opaque" x="269" y="0" width="116" height="26" backcolor="#D8E2FF"/> - <textElement textAlignment="Center" verticalAlignment="Middle" markup="none"> - <font fontName="SansSerif" size="11" isBold="true"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$R{br7a.table.planned.downtime}]]></textFieldExpression> - </textField> - <textField> - <reportElement mode="Opaque" x="388" y="0" width="122" height="26" backcolor="#D8E2FF"/> - <textElement textAlignment="Center" verticalAlignment="Middle" markup="none"> - <font fontName="SansSerif" size="11" isBold="true"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$R{br7a.table.unplanned.downtime}]]></textFieldExpression> - </textField> - <textField> - <reportElement mode="Opaque" x="150" y="0" width="117" height="26" backcolor="#D8E2FF"/> - <textElement textAlignment="Center" verticalAlignment="Middle" markup="none"> - <font fontName="SansSerif" size="11" isBold="true"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$R{br7a.table.uptime}]]></textFieldExpression> - </textField> - </frame> - </band> - </groupHeader> - <groupFooter> - <band height="16"> - <subreport> - <reportElement x="182" y="0" width="295" height="16"/> - <subreportExpression class="java.lang.String"><![CDATA["repo:report5.jrxml"]]></subreportExpression> - </subreport> - </band> - </groupFooter> - </group> - <group name="Cluster"> - <groupExpression><![CDATA[$F{cluster_id}.toString()]]></groupExpression> - </group> - <detail> - <band height="36" splitType="Stretch"> - <frame> - <reportElement style="Line Style" x="0" y="0" width="510" height="36"/> - <stackedBarChart> - <chart isShowLegend="false" evaluationTime="Group" evaluationGroup="Cluster" customizerClass="com.ovirt.reports.jasper.HorizontalStackedBarChart"> - <reportElement x="150" y="18" width="360" height="18"/> - <chartTitle/> - <chartSubtitle/> - <chartLegend/> - <anchorNameExpression><![CDATA["http://192.168.10.120:8080/jasperserver-pro/flow.html?_flowId=viewReportFlow&ParentFolderUri=%2FRHEV%2FReports%2FService_Level&ndefined=&standAlone=true&reportUnit=%2FRHEV%2FReports%2FService_Level%2FTest_002_1_1_1_1"]]></anchorNameExpression> - </chart> - <categoryDataset> - <dataset resetType="Group" resetGroup="Cluster"/> - <categorySeries> - <seriesExpression><![CDATA["Uptime"]]></seriesExpression> - <categoryExpression><![CDATA[$F{cluster_id}.toString()]]></categoryExpression> - <valueExpression><![CDATA[$F{uptime_mins}]]></valueExpression> - </categorySeries> - <categorySeries> - <seriesExpression><![CDATA["Planned Downtime"]]></seriesExpression> - <categoryExpression><![CDATA[$F{cluster_id}.toString()]]></categoryExpression> - <valueExpression><![CDATA[$F{planned_downtime_mins}]]></valueExpression> - </categorySeries> - <categorySeries> - <seriesExpression><![CDATA["Unplanned Downtime"]]></seriesExpression> - <categoryExpression><![CDATA[$F{cluster_id}.toString()]]></categoryExpression> - <valueExpression><![CDATA[$F{unplanned_downtime_mins}]]></valueExpression> - </categorySeries> - </categoryDataset> - <barPlot isShowLabels="false" isShowTickLabels="false" isShowTickMarks="false"> - <plot orientation="Horizontal"> - <seriesColor seriesOrder="0" color="#6EC000"/> - <seriesColor seriesOrder="1" color="#FFFF33"/> - <seriesColor seriesOrder="2" color="#FF0000"/> - </plot> - <itemLabel color="#000000" backgroundColor="#FFFFFF"/> - <categoryAxisFormat> - <axisFormat> - <labelFont/> - <tickLabelFont/> - </axisFormat> - </categoryAxisFormat> - <valueAxisFormat> - <axisFormat> - <labelFont/> - <tickLabelFont/> - </axisFormat> - </valueAxisFormat> - <rangeAxisMaxValueExpression><![CDATA[$F{planned_downtime_mins}+$F{unplanned_downtime_mins}+$F{uptime_mins}+1]]></rangeAxisMaxValueExpression> - </barPlot> - </stackedBarChart> - <textField hyperlinkType="ReportExecution" hyperlinkTarget="Blank"> - <reportElement x="10" y="0" width="140" height="36"/> - <textElement verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression> - <hyperlinkParameter name="_report"> - <hyperlinkParameterExpression><![CDATA["/Reports/Service_level/Hosts/cluster_uptime_br7"]]></hyperlinkParameterExpression> - </hyperlinkParameter> - <hyperlinkParameter name="is_deleted"> - <hyperlinkParameterExpression><![CDATA[$P{is_deleted}]]></hyperlinkParameterExpression> - </hyperlinkParameter> - <hyperlinkParameter name="P_DataCenter_ID"> - <hyperlinkParameterExpression><![CDATA[$P{P_DataCenter_ID}]]></hyperlinkParameterExpression> - </hyperlinkParameter> - <hyperlinkParameter name="P_Cluster_ID"> - <hyperlinkParameterExpression><![CDATA[$F{cluster_id}]]></hyperlinkParameterExpression> - </hyperlinkParameter> - <hyperlinkParameter name="P_Host_Type"> - <hyperlinkParameterExpression><![CDATA[-1]]></hyperlinkParameterExpression> - </hyperlinkParameter> - <hyperlinkParameter name="P_Period"> - <hyperlinkParameterExpression><![CDATA[$P{P_Period}]]></hyperlinkParameterExpression> - </hyperlinkParameter> - <hyperlinkParameter name="P_Start_Date"> - <hyperlinkParameterExpression><![CDATA[$P{P_Start_Date}]]></hyperlinkParameterExpression> - </hyperlinkParameter> - </textField> - <image> - <reportElement x="0" y="11" width="10" height="11"> - <printWhenExpression><![CDATA[$F{delete_date} != null]]></printWhenExpression> - </reportElement> - <imageExpression class="java.lang.String"><![CDATA["repo:trash-icon"]]></imageExpression> - </image> - <textField> - <reportElement x="150" y="0" width="32" height="18"> - <printWhenExpression><![CDATA[((($F{uptime_mins}/60)/24).intValue()) != 0]]></printWhenExpression> - </reportElement> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[((($F{uptime_mins}/60)/24).intValue()).toString() + "d"]]></textFieldExpression> - </textField> - <textField> - <reportElement x="182" y="0" width="21" height="18"> - <printWhenExpression><![CDATA[((($F{uptime_mins}/60)/24).intValue()) != 0 || (($F{uptime_mins}/60).intValue()-(((($F{uptime_mins}/60)/24).intValue())*24)) != 0]]></printWhenExpression> - </reportElement> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[(($F{uptime_mins}/60).intValue()-(((($F{uptime_mins}/60)/24).intValue())*24)).toString() + "h"]]></textFieldExpression> - </textField> - <textField> - <reportElement x="203" y="0" width="24" height="18"/> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[($F{uptime_mins} - ((($F{uptime_mins}/60).intValue()-(((($F{uptime_mins}/60)/24).intValue())*24))*60)-(((($F{uptime_mins}/60)/24).intValue())*60*24)).intValue().toString() + "m"]]></textFieldExpression> - </textField> - <textField> - <reportElement x="227" y="0" width="40" height="18"/> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA["(" + (100-(($F{planned_downtime_mins}/$F{total})*100).intValue()-(($F{unplanned_downtime_mins}/$F{total})*100).intValue()).toString() + "%)"]]></textFieldExpression> - </textField> - <textField> - <reportElement x="267" y="0" width="36" height="18"> - <printWhenExpression><![CDATA[((($F{planned_downtime_mins}/60)/24).intValue()) != 0]]></printWhenExpression> - </reportElement> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[((($F{planned_downtime_mins}/60)/24).intValue()).toString() + "d"]]></textFieldExpression> - </textField> - <textField> - <reportElement x="303" y="0" width="21" height="18"> - <printWhenExpression><![CDATA[((($F{planned_downtime_mins}/60)/24).intValue()) != 0 || (($F{planned_downtime_mins}/60).intValue()-(((($F{planned_downtime_mins}/60)/24).intValue())*24)) != 0]]></printWhenExpression> - </reportElement> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[(($F{planned_downtime_mins}/60).intValue()-(((($F{planned_downtime_mins}/60)/24).intValue())*24)).toString() + "h"]]></textFieldExpression> - </textField> - <textField> - <reportElement x="324" y="0" width="24" height="18"/> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[($F{planned_downtime_mins} - ((($F{planned_downtime_mins}/60).intValue()-(((($F{planned_downtime_mins}/60)/24).intValue())*24))*60)-(((($F{planned_downtime_mins}/60)/24).intValue())*60*24)).intValue().toString() + "m"]]></textFieldExpression> - </textField> - <textField> - <reportElement x="348" y="0" width="40" height="18"/> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA["(" + (($F{planned_downtime_mins}/$F{total})*100).intValue().toString() + "%)"]]></textFieldExpression> - </textField> - <textField> - <reportElement x="388" y="0" width="37" height="18"> - <printWhenExpression><![CDATA[((($F{unplanned_downtime_mins}/60)/24).intValue()) != 0]]></printWhenExpression> - </reportElement> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[((($F{unplanned_downtime_mins}/60)/24).intValue()).toString() + "d"]]></textFieldExpression> - </textField> - <textField> - <reportElement x="425" y="0" width="21" height="18"> - <printWhenExpression><![CDATA[((($F{unplanned_downtime_mins}/60)/24).intValue()) != 0 || (($F{unplanned_downtime_mins}/60).intValue()-(((($F{unplanned_downtime_mins}/60)/24).intValue())*24)) != 0]]></printWhenExpression> - </reportElement> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[(($F{unplanned_downtime_mins}/60).intValue()-(((($F{unplanned_downtime_mins}/60)/24).intValue())*24)).toString() + "h"]]></textFieldExpression> - </textField> - <textField> - <reportElement x="446" y="0" width="24" height="18"/> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[($F{unplanned_downtime_mins} - ((($F{unplanned_downtime_mins}/60).intValue()-(((($F{unplanned_downtime_mins}/60)/24).intValue())*24))*60)-(((($F{unplanned_downtime_mins}/60)/24).intValue())*60*24)).intValue().toString() + "m"]]></textFieldExpression> - </textField> - <textField pattern=""> - <reportElement x="470" y="0" width="40" height="18"/> - <textElement textAlignment="Right" verticalAlignment="Middle"> - <font fontName="SansSerif" isBold="false"/> - </textElement> - <textFieldExpression class="java.lang.String"><![CDATA["(" + (($F{unplanned_downtime_mins}/$F{total})*100).intValue().toString() + "%)"]]></textFieldExpression> - </textField> - </frame> - </band> - </detail> + cluster_id, + name, + delete_date +ORDER BY + ( + CASE + WHEN delete_date IS NULL + THEN 0 + ELSE 1 + END + ) ASC, + CAST ( + AVG ( uptime_mins ) + AS float + ) / + CAST ( + AVG ( total ) + AS float + ) DESC]]> + </queryString> + <field name="cluster_id" class="java.lang.Object"/> + <field name="name" class="java.lang.String"/> + <field name="delete_date" class="java.sql.Timestamp"/> + <field name="planned_downtime_mins" class="java.math.BigDecimal"/> + <field name="unplanned_downtime_mins" class="java.math.BigDecimal"/> + <field name="uptime_mins" class="java.math.BigDecimal"/> + <field name="total" class="java.math.BigDecimal"/> + <group name="Data Center"> + <groupExpression><![CDATA[$P{P_DataCenter_ID}]]></groupExpression> + <groupHeader> + <band height="46"> + <textField> + <reportElement mode="Transparent" x="0" y="0" width="510" height="20" forecolor="#3A5E75" uuid="3086f339-0ad9-4b0e-aafb-c3c71ce4adb5"/> + <textElement markup="none"> + <font fontName="SansSerif" size="13" isBold="true" isUnderline="false"/> + </textElement> + <textFieldExpression><![CDATA[$R{br7a.title}]]></textFieldExpression> + </textField> + <frame> + <reportElement mode="Opaque" x="0" y="20" width="510" height="26" backcolor="#D8E2FF" uuid="08954dd2-783b-49d8-bf3c-dcfcf4d8b3d7"/> + <textField> + <reportElement mode="Opaque" x="10" y="0" width="140" height="26" backcolor="#D8E2FF" uuid="e76789cc-b944-428f-9bb7-95a8a1434440"/> + <textElement verticalAlignment="Middle" markup="none"> + <font fontName="SansSerif" size="11" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{br7a.table.cluster.name}]]></textFieldExpression> + </textField> + <textField> + <reportElement mode="Opaque" x="269" y="0" width="116" height="26" backcolor="#D8E2FF" uuid="bbbf7696-77a1-422b-ac66-7478e62b93d4"/> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="none"> + <font fontName="SansSerif" size="11" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{br7a.table.planned.downtime}]]></textFieldExpression> + </textField> + <textField> + <reportElement mode="Opaque" x="388" y="0" width="122" height="26" backcolor="#D8E2FF" uuid="a602d981-1f16-46f8-afe4-9d86366e2c15"/> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="none"> + <font fontName="SansSerif" size="11" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{br7a.table.unplanned.downtime}]]></textFieldExpression> + </textField> + <textField> + <reportElement mode="Opaque" x="150" y="0" width="117" height="26" backcolor="#D8E2FF" uuid="11af66dc-65c5-4820-80a4-6834a7a135c5"/> + <textElement textAlignment="Center" verticalAlignment="Middle" markup="none"> + <font fontName="SansSerif" size="11" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{br7a.table.uptime}]]></textFieldExpression> + </textField> + </frame> + </band> + </groupHeader> + <groupFooter> + <band height="16"> + <subreport> + <reportElement x="182" y="0" width="295" height="16" uuid="1b9c7284-7f3b-45a4-9c77-25d654984c16"/> + <subreportExpression><![CDATA["repo:report5.jrxml"]]></subreportExpression> + </subreport> + </band> + </groupFooter> + </group> + <group name="Cluster"> + <groupExpression><![CDATA[$F{cluster_id}.toString()]]></groupExpression> + </group> + <detail> + <band height="36" splitType="Stretch"> + <frame> + <reportElement style="Line Style" x="0" y="0" width="510" height="36" uuid="d8dd57bd-75c2-4cc2-908e-b35a7582d3ff"/> + <stackedBarChart> + <chart isShowLegend="false" evaluationTime="Group" evaluationGroup="Cluster" customizerClass="com.ovirt.reports.jasper.HorizontalStackedBarChart"> + <reportElement x="150" y="18" width="360" height="18" uuid="99a706ab-9a1e-4e36-86ed-26fcc8c10133"/> + <chartTitle/> + <chartSubtitle/> + <chartLegend/> + <anchorNameExpression><![CDATA["http://192.168.10.120:8080/jasperserver-pro/flow.html?_flowId=viewReportFlow&ParentFolderUri=%2FRHEV%2FReports%2FService_Level&ndefined=&standAlone=true&reportUnit=%2FRHEV%2FReports%2FService_Level%2FTest_002_1_1_1_1"]]></anchorNameExpression> + </chart> + <categoryDataset> + <dataset resetType="Group" resetGroup="Cluster"/> + <categorySeries> + <seriesExpression><![CDATA["Uptime"]]></seriesExpression> + <categoryExpression><![CDATA[$F{cluster_id}.toString()]]></categoryExpression> + <valueExpression><![CDATA[$F{uptime_mins}]]></valueExpression> + </categorySeries> + <categorySeries> + <seriesExpression><![CDATA["Planned Downtime"]]></seriesExpression> + <categoryExpression><![CDATA[$F{cluster_id}.toString()]]></categoryExpression> + <valueExpression><![CDATA[$F{planned_downtime_mins}]]></valueExpression> + </categorySeries> + <categorySeries> + <seriesExpression><![CDATA["Unplanned Downtime"]]></seriesExpression> + <categoryExpression><![CDATA[$F{cluster_id}.toString()]]></categoryExpression> + <valueExpression><![CDATA[$F{unplanned_downtime_mins}]]></valueExpression> + </categorySeries> + </categoryDataset> + <barPlot isShowLabels="false" isShowTickLabels="false" isShowTickMarks="false"> + <plot orientation="Horizontal"> + <seriesColor seriesOrder="0" color="#6EC000"/> + <seriesColor seriesOrder="1" color="#FFFF33"/> + <seriesColor seriesOrder="2" color="#FF0000"/> + </plot> + <itemLabel color="#000000" backgroundColor="#FFFFFF"/> + <categoryAxisFormat> + <axisFormat/> + </categoryAxisFormat> + <valueAxisFormat> + <axisFormat/> + </valueAxisFormat> + <rangeAxisMaxValueExpression><![CDATA[$F{planned_downtime_mins}+$F{unplanned_downtime_mins}+$F{uptime_mins}+1]]></rangeAxisMaxValueExpression> + </barPlot> + </stackedBarChart> + <textField hyperlinkType="ReportExecution" hyperlinkTarget="Blank"> + <reportElement x="10" y="0" width="140" height="36" uuid="e4884335-ff18-4a8c-9062-8f4aef139656"/> + <textElement verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression> + <hyperlinkParameter name="_report"> + <hyperlinkParameterExpression><![CDATA["/Reports/Service_level/Hosts/cluster_uptime_br7"]]></hyperlinkParameterExpression> + </hyperlinkParameter> + <hyperlinkParameter name="is_deleted"> + <hyperlinkParameterExpression><![CDATA[$P{is_deleted}]]></hyperlinkParameterExpression> + </hyperlinkParameter> + <hyperlinkParameter name="P_DataCenter_ID"> + <hyperlinkParameterExpression><![CDATA[$P{P_DataCenter_ID}]]></hyperlinkParameterExpression> + </hyperlinkParameter> + <hyperlinkParameter name="P_Cluster_ID"> + <hyperlinkParameterExpression><![CDATA[$F{cluster_id}]]></hyperlinkParameterExpression> + </hyperlinkParameter> + <hyperlinkParameter name="P_Host_Type"> + <hyperlinkParameterExpression><![CDATA[-1]]></hyperlinkParameterExpression> + </hyperlinkParameter> + <hyperlinkParameter name="P_Period"> + <hyperlinkParameterExpression><![CDATA[$P{P_Period}]]></hyperlinkParameterExpression> + </hyperlinkParameter> + <hyperlinkParameter name="P_Start_Date"> + <hyperlinkParameterExpression><![CDATA[$P{P_Start_Date}]]></hyperlinkParameterExpression> + </hyperlinkParameter> + </textField> + <image> + <reportElement x="0" y="11" width="10" height="11" uuid="b5667938-a54b-48b5-b560-7dd756cc58cf"> + <printWhenExpression><![CDATA[$F{delete_date} != null]]></printWhenExpression> + </reportElement> + <imageExpression><![CDATA["repo:trash-icon"]]></imageExpression> + </image> + <textField> + <reportElement x="150" y="0" width="32" height="18" uuid="0b7c6fa9-3094-414c-bec3-bba7fbaf98ac"> + <printWhenExpression><![CDATA[((($F{uptime_mins}/60)/24).intValue()) != 0]]></printWhenExpression> + </reportElement> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA[((($F{uptime_mins}/60)/24).intValue()).toString() + "d"]]></textFieldExpression> + </textField> + <textField> + <reportElement x="182" y="0" width="21" height="18" uuid="56cc0e00-8ade-4878-b210-c29d4ef6de09"> + <printWhenExpression><![CDATA[((($F{uptime_mins}/60)/24).intValue()) != 0 || (($F{uptime_mins}/60).intValue()-(((($F{uptime_mins}/60)/24).intValue())*24)) != 0]]></printWhenExpression> + </reportElement> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA[(($F{uptime_mins}/60).intValue()-(((($F{uptime_mins}/60)/24).intValue())*24)).toString() + "h"]]></textFieldExpression> + </textField> + <textField> + <reportElement x="203" y="0" width="24" height="18" uuid="6c3c96ef-71e1-4219-bd33-082d20b9b063"/> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA[($F{uptime_mins} - ((($F{uptime_mins}/60).intValue()-(((($F{uptime_mins}/60)/24).intValue())*24))*60)-(((($F{uptime_mins}/60)/24).intValue())*60*24)).intValue().toString() + "m"]]></textFieldExpression> + </textField> + <textField> + <reportElement x="227" y="0" width="40" height="18" uuid="d653193d-74ee-4e6d-a8bc-4a038f163d91"/> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA["(" + (100-(($F{planned_downtime_mins}/$F{total})*100).intValue()-(($F{unplanned_downtime_mins}/$F{total})*100).intValue()).toString() + "%)"]]></textFieldExpression> + </textField> + <textField> + <reportElement x="267" y="0" width="36" height="18" uuid="8e7cd00d-2fa1-4be2-9c19-b94ba548be03"> + <printWhenExpression><![CDATA[((($F{planned_downtime_mins}/60)/24).intValue()) != 0]]></printWhenExpression> + </reportElement> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA[((($F{planned_downtime_mins}/60)/24).intValue()).toString() + "d"]]></textFieldExpression> + </textField> + <textField> + <reportElement x="303" y="0" width="21" height="18" uuid="8d5e62f5-0d86-4572-864f-e66e4b518daa"> + <printWhenExpression><![CDATA[((($F{planned_downtime_mins}/60)/24).intValue()) != 0 || (($F{planned_downtime_mins}/60).intValue()-(((($F{planned_downtime_mins}/60)/24).intValue())*24)) != 0]]></printWhenExpression> + </reportElement> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA[(($F{planned_downtime_mins}/60).intValue()-(((($F{planned_downtime_mins}/60)/24).intValue())*24)).toString() + "h"]]></textFieldExpression> + </textField> + <textField> + <reportElement x="324" y="0" width="24" height="18" uuid="ff9227ab-4e77-464b-ac2a-584266f2800c"/> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA[($F{planned_downtime_mins} - ((($F{planned_downtime_mins}/60).intValue()-(((($F{planned_downtime_mins}/60)/24).intValue())*24))*60)-(((($F{planned_downtime_mins}/60)/24).intValue())*60*24)).intValue().toString() + "m"]]></textFieldExpression> + </textField> + <textField> + <reportElement x="348" y="0" width="40" height="18" uuid="9909bcd8-6902-45f8-beea-44460c139791"/> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA["(" + (($F{planned_downtime_mins}/$F{total})*100).intValue().toString() + "%)"]]></textFieldExpression> + </textField> + <textField> + <reportElement x="388" y="0" width="37" height="18" uuid="176862cf-1318-4145-b8a6-9631556f0134"> + <printWhenExpression><![CDATA[((($F{unplanned_downtime_mins}/60)/24).intValue()) != 0]]></printWhenExpression> + </reportElement> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA[((($F{unplanned_downtime_mins}/60)/24).intValue()).toString() + "d"]]></textFieldExpression> + </textField> + <textField> + <reportElement x="425" y="0" width="21" height="18" uuid="e98775c8-7136-431a-acf2-76cedaf5dc6b"> + <printWhenExpression><![CDATA[((($F{unplanned_downtime_mins}/60)/24).intValue()) != 0 || (($F{unplanned_downtime_mins}/60).intValue()-(((($F{unplanned_downtime_mins}/60)/24).intValue())*24)) != 0]]></printWhenExpression> + </reportElement> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA[(($F{unplanned_downtime_mins}/60).intValue()-(((($F{unplanned_downtime_mins}/60)/24).intValue())*24)).toString() + "h"]]></textFieldExpression> + </textField> + <textField> + <reportElement x="446" y="0" width="24" height="18" uuid="033ca771-eeb8-42f9-9292-0e24b0f50dc1"/> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif"/> + </textElement> + <textFieldExpression><![CDATA[($F{unplanned_downtime_mins} - ((($F{unplanned_downtime_mins}/60).intValue()-(((($F{unplanned_downtime_mins}/60)/24).intValue())*24))*60)-(((($F{unplanned_downtime_mins}/60)/24).intValue())*60*24)).intValue().toString() + "m"]]></textFieldExpression> + </textField> + <textField pattern=""> + <reportElement x="470" y="0" width="40" height="18" uuid="ca864cd3-66e1-481d-b208-500f95f027d0"/> + <textElement textAlignment="Right" verticalAlignment="Middle"> + <font fontName="SansSerif" isBold="false"/> + </textElement> + <textFieldExpression><![CDATA["(" + (($F{unplanned_downtime_mins}/$F{total})*100).intValue().toString() + "%)"]]></textFieldExpression> + </textField> + </frame> + </band> + </detail> </jasperReport> -- To view, visit http://gerrit.ovirt.org/27852 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia7ec9c1ceb9b2a728173dae6ac4a66f80568b356 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-reports Gerrit-Branch: master Gerrit-Owner: Shirly Radco <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
