11
11
CMD_TIMEOUT=" 10" # timeout for command (ssh, psql, etc.)
12
12
# TODO(vyagofarov): think about timing
13
13
# out commands in macOS
14
+ FULL_REPORT_FNAME=" full_report.md"
14
15
15
16
# GLOBALS (autoload, do not change)
16
17
: ${DEBUG:= false} # print debug output
@@ -690,10 +691,31 @@ check_bin_deps() {
690
691
fi
691
692
}
692
693
694
+ # ######################################
695
+ # Add the newly generated report to a fileф
696
+ # (makes final report)
697
+ # Globals:
698
+ # PROJECT_DIR, FULL_REPORT_FNAME
699
+ # Arguments:
700
+ # md_reports_dir, report_fname
701
+ # Returns:
702
+ # Integer
703
+ # ######################################
704
+ append_to_final_report () {
705
+ local md_reports_dir=" $1 "
706
+ local report_fname=" $2 "
707
+
708
+ local out_fname=" ${PROJECT_DIR} /${FULL_REPORT_FNAME} "
709
+
710
+ # glue
711
+ cat " ${md_reports_dir} /${report_fname} " >> " ${out_fname} "
712
+ }
713
+
693
714
# ######################################
694
715
# Check rights, set global variables, etc.
695
716
# Globals:
696
717
# HOST, CHECK_HOST_CMD, NATIVE_HOSTNAME
718
+ # SSH_SUPPORT
697
719
# Arguments:
698
720
# None
699
721
# Returns:
@@ -706,6 +728,7 @@ host_pre_start_checks() {
706
728
if NATIVE_HOSTNAME=$( ssh $HOST " hostname" 2> /dev/null) ; then
707
729
# ssh to remote host and use local psql (default)
708
730
export CHECK_HOST_CMD=" ssh ${HOST} "
731
+ export SSH_SUPPORT=" true"
709
732
else
710
733
NATIVE_HOSTNAME=" ${HOST} "
711
734
# swap ssh with bash
@@ -720,6 +743,8 @@ host_pre_start_checks() {
720
743
# use TCP for psql
721
744
export _PSQL=" ${_PSQL} -h ${HOST} "
722
745
fi
746
+
747
+ export SSH_SUPPORT=" false"
723
748
fi
724
749
725
750
export NATIVE_HOSTNAME
@@ -868,6 +893,15 @@ run_checks() {
868
893
869
894
local pghrep_failed_jsons_stack=" "
870
895
896
+ export PROJECT_DIR=" ${SCRIPT_DIR} /artifacts/${PROJECT} "
897
+ test -d " ${PROJECT_DIR} " || mkdir -p " ${PROJECT_DIR} "
898
+
899
+ # make a header for a FULL_REPORT_FNAME
900
+ echo " # '${PROJECT} ' PostgreSQL health-check" > " ${PROJECT_DIR} /${FULL_REPORT_FNAME} "
901
+ echo >> " ${PROJECT_DIR} /${FULL_REPORT_FNAME} "
902
+ echo $( date +' %Y-%m-%d %H:%M:%S %z' ) >> " ${PROJECT_DIR} /${FULL_REPORT_FNAME} "
903
+ echo >> " ${PROJECT_DIR} /${FULL_REPORT_FNAME} "
904
+
871
905
# perform all checks from './resources/checks/' directory
872
906
msg
873
907
msg " ########## Perform checks for host '${NATIVE_HOSTNAME} ':"
@@ -913,9 +947,6 @@ run_checks() {
913
947
msg " check '$check_id ' is finished"
914
948
fi
915
949
916
- export PROJECT_DIR=" ${SCRIPT_DIR} /artifacts/${PROJECT} "
917
- test -d " ${PROJECT_DIR} " || mkdir -p " ${PROJECT_DIR} "
918
-
919
950
# alot of magic is here
920
951
update_nodes_json
921
952
@@ -929,6 +960,8 @@ run_checks() {
929
960
--outdir=" ${MD_REPORTS_DIR} " 2>&1 ) ; then
930
961
msg " WARNING: ${pghrep_output} "
931
962
pghrep_failed_jsons_stack=" ${pghrep_failed_jsons_stack} ${check_id} _${check_name} .json"
963
+ else
964
+ append_to_final_report " ${MD_REPORTS_DIR} " " ${check_id} _${check_name} .md"
932
965
fi
933
966
934
967
# parse only one file if check is given by CLI
@@ -950,8 +983,8 @@ run_checks() {
950
983
fi
951
984
952
985
msg
953
- msg " All .md reports has been saved at directory :"
954
- echo " '${MD_REPORTS_DIR } '"
986
+ msg " Final .md report is ready :"
987
+ echo " '${PROJECT_DIR} / ${FULL_REPORT_FNAME } '"
955
988
956
989
msg
957
990
msg " ALL DONE!"
0 commit comments