Enhance logging for install_databases.sh script 11/13511/1
authorssum21 <ssumuss@khu.ac.kr>
Fri, 4 Oct 2024 01:54:19 +0000 (10:54 +0900)
committerssum21 <ssumuss@khu.ac.kr>
Fri, 4 Oct 2024 01:58:07 +0000 (10:58 +0900)
- Improved script readability
- Introduced a dynamic log function `log_message` to standardize and enhance logging.
- Replaced static `echo` statements with dynamic log messages supporting multiple log levels (INFO, WARN, ERROR).
- Added log messages for waiting and successful readiness of database pods (PostgreSQL and Cassandra).

Issue-ID: AIMLFW-103

Change-Id: I95bb59e4e90da9c72454caa5443ffd0bd5191386
Signed-off-by: ssum21 <ssumuss@khu.ac.kr>
bin/install_databases.sh

index 7b65a6c..d845c45 100755 (executable)
 #
 # ==================================================================================
 
+# Function to dynamically generate log messages
+log_message() {
+    local log_level=$1
+    local component=$2
+    local message=$3
+    echo "[$log_level] $component: $message"
+}
+
+# Add the Bitnami Helm repository
+log_message "INFO" "Helm" "Adding Bitnami Helm repository..."
 helm repo add bitnami https://charts.bitnami.com/bitnami
+
+# Install PostgreSQL for Training Manager
+log_message "INFO" "Helm" "Installing PostgreSQL (tm-db) in 'traininghost' namespace..."
 helm install tm-db bitnami/postgresql --namespace traininghost
-while [[ $(kubectl get pods tm-db-postgresql-0 -n traininghost -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do echo "waiting for training manager db pod" && sleep 1; done
-echo "Installed tm-db"
-helm install cassandra --set dbUser.user="cassandra" --namespace="traininghost"  bitnami/cassandra --version 10.0.0
-while [[ $(kubectl get pods cassandra-0 -n traininghost -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do echo "waiting for cassandra manager db pod" && sleep 1; done
-echo "Installed cassandra-db"
+
+# Wait for tm-db to be ready
+log_message "INFO" "Kubernetes" "Waiting for tm-db-postgresql pod to be ready..."
+while [[ $(kubectl get pods tm-db-postgresql-0 -n traininghost -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do 
+    log_message "INFO" "Kubernetes" "Waiting for training manager db pod..."
+    sleep 1
+done
+log_message "INFO" "Kubernetes" "tm-db (PostgreSQL) pod is ready."
+
+# Install Cassandra for Training Manager
+log_message "INFO" "Helm" "Installing Cassandra in 'traininghost' namespace..."
+helm install cassandra --set dbUser.user="cassandra" --namespace="traininghost" bitnami/cassandra --version 10.0.0
+
+# Wait for Cassandra to be ready
+log_message "INFO" "Kubernetes" "Waiting for cassandra-0 pod to be ready..."
+while [[ $(kubectl get pods cassandra-0 -n traininghost -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do 
+    log_message "INFO" "Kubernetes" "Waiting for Cassandra manager db pod..."
+    sleep 1
+done
+log_message "INFO" "Kubernetes" "Cassandra pod is ready."
+
+# Final status
+log_message "INFO" "Kubernetes" "PostgreSQL (tm-db) and Cassandra successfully installed."