Add a script for PF status update 77/129477/2
authorliamfallon <liam.fallon@est.tech>
Thu, 2 Jun 2022 16:46:26 +0000 (17:46 +0100)
committerliamfallon <liam.fallon@est.tech>
Fri, 3 Jun 2022 13:10:46 +0000 (14:10 +0100)
This script checks the status of the Policy Framwwork jobs in Joenkins
and the status of any outstanding bugs.

It generates a report.

Issue-ID: POLICY-4230
Change-Id: I6fd663dd5864ac6cd7820eff2cf25a2d29f315f7
Signed-off-by: liamfallon <liam.fallon@est.tech>
integration/src/reports/pf_status_report.sh [new file with mode: 0755]

diff --git a/integration/src/reports/pf_status_report.sh b/integration/src/reports/pf_status_report.sh
new file mode 100755 (executable)
index 0000000..c979066
--- /dev/null
@@ -0,0 +1,120 @@
+#!/bin/bash
+
+# ============LICENSE_START================================================
+# ONAP
+# =========================================================================
+# Copyright (C) 2022 Nordix Foundation.
+# =========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END==================================================
+#
+
+function health_check() {
+    health_dir="$1"
+
+    health_report_temp_file=$(mktemp)
+
+    report_month=$( \
+        curl -s "https://logs.onap.org/onap-integration/daily/$health_dir"/ | \
+        grep href | \
+        sort | \
+        tail -1 | \
+        sed -e 's/^.*href="//' \
+            -e 's/\/".*$//'
+    )
+
+    report_last_health=$( \
+        curl -s "https://logs.onap.org/onap-integration/daily/$health_dir/$report_month/" | \
+        grep href | \
+        sort | \
+        tail -1 | \
+        sed -e 's/^.*href="//' \
+            -e 's/\/".*$//'
+    )
+
+    curl -s --output "$health_report_temp_file" \
+        "https://logs.onap.org/onap-integration/daily/$health_dir/$report_month/$report_last_health/xtesting-healthcheck/full/full/report.html"
+    health_check_result=$(
+        gunzip -c "$health_report_temp_file" | \
+            grep 'window.output\["stats"\]' | \
+            sed 's/},{/}\n{/g' | \
+            grep health-policy | \
+            sed -e 's/{//g' \
+                -e 's/}//g' \
+                -e 's/"//g' \
+                -e 's/label://' | \
+            awk -F',' '{printf("%s,%s,%s\n", $3,$4,$2)}'
+    )
+
+    report_day="${report_last_health%%_*}"
+    report_hour_minute="${report_last_health#*_}"
+    report_hour_minute="${report_hour_minute/-/:}"
+    echo "$health_dir,$report_month-$report_day $report_hour_minute,$health_check_result"
+}
+
+echo ""
+echo "health checks"
+echo "-------------"
+
+health_check onap-daily-dt-oom-master
+health_check onap-daily-dt-oom-jakarta
+health_check onap-daily-dt-oom-istanbul
+health_check onap_daily_pod4_master
+
+jenkins_report_temp_file=$(mktemp)
+
+curl -s https://jenkins.onap.org/view/policy/ | \
+    sed -e 's/<tr id=/\n<tr id=/g' \
+        -e 's/><td data=/\n><td data=/g' | \
+    grep 'tr id=' | \
+    sed -e 's/"//g' \
+        -e 's/<tr id=//' \
+        -e 's/class= //' > "$jenkins_report_temp_file"
+
+echo ""
+echo "failing jobs"
+echo "------------"
+
+grep "job-status-red" "$jenkins_report_temp_file" | \
+    grep -v stage |
+    cut -f1 -d' '
+
+echo ""
+echo "warning jobs"
+echo "------------"
+
+grep "job-status-yellow" "$jenkins_report_temp_file" | \
+    grep -v clm |
+    cut -f1 -d' '
+
+echo ""
+echo "invalid jobs"
+echo "------------"
+grep -v -E "(blue|red|yellow|verify|merge)" "$jenkins_report_temp_file" | \
+    cut -f1 -d' '
+
+echo ""
+echo "bugs"
+echo "----"
+curl -s https://jira.onap.org/issues/?jql=PROJECT%20%3D%20POLICY%20AND%20issuetype%20%3D%20Bug%20AND%20status%20!%3D%20Closed%20ORDER%20BY%20key%20ASC \ |
+    grep 'data-issue-table-model-state' | \
+    sed -e 's/&quot/\"/g' \
+        -e 's/.*";jiraHasIssues";:true,";page";:[0-9]*,";pageSize";:[0-9]*,";startIndex";:[0-9]*,";table";:\[//' \
+        -e 's/,";title";:";";,";total";:[0-9]*,";url";:";";,";sortBy";:\].*$//' \
+        -e 's/}}/}}\n/g' | \
+    grep 'POLICY-' | \
+    sed -e 's/^.*key=/key=/g' \
+        -e 's/";:";/=/g' \
+        -e 's/";,";/,/g' \
+        -e 's/^.*key=/key=/g' \
+        -e 's/";:{";description=.*$//'