@@ -335,7 +335,7 @@ update_system_packages() {
335335 dnf update -y 2>&1 | while IFS= read -r line; do
336336 percent=$(( percent + 1 ))
337337 [ $percent -gt 90 ] && percent=90
338- update_progress_bar " 75" echo " # Installing system updates...\n\n$line "
338+ update_progress_bar " 75" " # Installing system updates...\n\n$line "
339339 done
340340 ;;
341341 esac
@@ -344,7 +344,7 @@ update_system_packages() {
344344 sleep 2
345345 } | dialog --backtitle " $SCRIPT_NAME " \
346346 --title " System Update" \
347- --gauge " Updating system packages..." 15 70 0
347+ --gauge " Updating system packages..." 15 80 0
348348
349349 # Verify update success
350350 if [[ $? -eq 0 ]]; then
@@ -442,7 +442,7 @@ install_pkg_with_progress_bar() {
442442 # Add left padding, truncate width, and wrap safely
443443 tail_output=$( echo " $tail_output " \
444444 | sed ' s/^/ /' \
445- | fold -s -w 75 \
445+ | fold -s -w 80 \
446446 | tail -n 5)
447447
448448 echo " $percent "
@@ -456,7 +456,7 @@ install_pkg_with_progress_bar() {
456456 [ $percent -gt 90 ] && percent=90
457457 sleep 1
458458 done
459- } | dialog --backtitle " $SCRIPT_NAME " --title " $title Installation" --gauge " Installing $title ..." 15 75 0
459+ } | dialog --backtitle " $SCRIPT_NAME " --title " $title Installation" --gauge " Installing $title ..." 15 80 0
460460
461461 wait " $INSTALL_PID "
462462 local status=$?
@@ -512,6 +512,44 @@ show_dialog() {
512512 esac
513513}
514514
515+ # Attempts to start service_name
516+ start_service_with_progress () {
517+ local service_name=" $1 "
518+ local display_name=" ${2:- $service_name } "
519+ local start_percent=" ${3:- 60} "
520+ local end_percent=" ${4:- 90} "
521+
522+ if ! systemctl is-active --quiet " $service_name " ; then
523+ {
524+ update_progress_bar " $start_percent " " # Starting $display_name service..."
525+ systemctl start " $service_name " > /dev/null 2>&1 &
526+ local pid=$!
527+
528+ local i
529+ for (( i= start_percent; i<= end_percent; i++ )) ; do
530+ update_progress_bar " $i " " # Waiting for $display_name to start..."
531+ sleep 0.2
532+ done
533+
534+ wait " $pid "
535+ update_progress_bar " $end_percent " " # $display_name service started successfully."
536+ sleep 1
537+ } | dialog --backtitle " $SCRIPT_NAME " \
538+ --title " Starting $display_name Service" \
539+ --gauge " Starting $display_name service..." 15 70 0
540+
541+ systemctl enable " $service_name " > /dev/null 2>&1
542+ if systemctl is-active --quiet " $service_name " ; then
543+ log " $display_name service started successfully."
544+ else
545+ error_exit " Failed to start $display_name service."
546+ fi
547+ else
548+ log " $display_name service is already running."
549+ fi
550+ }
551+
552+
515553# CloudStack Banner gets displayed at the end of Zone Deployment
516554show_cloudstack_banner () {
517555 local banner="
620658
621659configure_cloudstack_repo () {
622660 local title=" CloudStack Repository Configuration"
661+ local tracker_key=" repo_url"
623662 local repo_file=" "
624663 local repo_entry=" "
625664 case " $OS_TYPE " in
@@ -647,7 +686,7 @@ configure_cloudstack_repo() {
647686 show_dialog " info" \
648687 " $title " \
649688 " CloudStack repository is already configured:\n\n$repo_entry "
650- set_tracker_field " repo_url " " $repo_entry "
689+ set_tracker_field " $tracker_key " " $repo_entry "
651690 return 0
652691 fi
653692
@@ -657,8 +696,8 @@ configure_cloudstack_repo() {
657696 --yesno " CloudStack repository is already configured:\n\n$repo_entry \n\nDo you want to reconfigure it?" 12 70; then
658697 log " User opted to reconfigure existing CloudStack repository."
659698 else
660- show_dialog " info" $title " Skipping CloudStack repository configuration."
661- set_tracker_field " repo_url " " $repo_entry "
699+ show_dialog " info" " $title " " Skipping CloudStack repository configuration."
700+ set_tracker_field " $tracker_key " " $repo_entry "
662701 return 0
663702 fi
664703 fi
@@ -728,7 +767,7 @@ configure_cloudstack_repo() {
728767 ;;
729768 esac
730769 log " Configured CS repo: $repo_entry "
731- set_tracker_field " repo_url " " $repo_entry "
770+ set_tracker_field " $tracker_key " " $repo_entry "
732771}
733772
734773
@@ -784,7 +823,7 @@ install_base_dependencies() {
784823 # Add left padding, truncate width, and wrap safely
785824 tail_output=$( echo " $tail_output " \
786825 | sed ' s/^/ /' \
787- | fold -s -w 75 \
826+ | fold -s -w 80 \
788827 | tail -n 5)
789828 update_progress_bar " $PERCENT " " $title \n\n$tail_output "
790829 PERCENT=$(( PERCENT + 1 ))
@@ -796,7 +835,7 @@ install_base_dependencies() {
796835 update_progress_bar " 100" " Base dependencies installed successfully"
797836 } | dialog --backtitle " $SCRIPT_NAME " \
798837 --title " Installing Dependencies" \
799- --gauge " Preparing system..." 15 75 0
838+ --gauge " Preparing system..." 15 80 0
800839 show_dialog " info" " Dependencies Installation" " All Base dependencies installed successfully"
801840 log " Base dependencies installed successfully"
802841
@@ -966,30 +1005,7 @@ install_mysql_server() {
9661005 return 0
9671006 fi
9681007 install_pkg_with_progress_bar " MySQL Server" " $package_name " " $tracker_key "
969- # Ensure MySQL service is running
970- if ! systemctl is-active --quiet " $MYSQL_SERVICE " ; then
971- {
972- update_progress_bar 60 " # Starting MySQL service..."
973- systemctl start " $MYSQL_SERVICE " > /dev/null 2>&1 &
974- pid=$!
975- for i in {60..85}; do
976- update_progress_bar " $i " " # Waiting for MySQL to start..."
977- sleep 0.2
978- done
979- wait $pid
980- update_progress_bar 90 " # MySQL service started successfully."
981- sleep 1
982- } | dialog --backtitle " $SCRIPT_NAME " \
983- --title " Installing MySQL" \
984- --gauge " Installing MySQL..." 15 70 0
985-
986- systemctl enable " $MYSQL_SERVICE " > /dev/null 2>&1
987- if systemctl is-active --quiet " $MYSQL_SERVICE " ; then
988- log " MySQL service started successfully."
989- else
990- error_exit " Failed to start MySQL service."
991- fi
992- fi
1008+ start_service_with_progress " $MYSQL_SERVICE " " MySQL" 60 90
9931009}
9941010
9951011configure_mysql_for_cloudstack () {
@@ -1374,6 +1390,7 @@ install_usage_server() {
13741390 fi
13751391
13761392 install_pkg_with_progress_bar " CloudStack Usage Server" " $package_name " " $tracker_key "
1393+ start_service_with_progress " $package_name " " CloudStack Usage" 60 90
13771394}
13781395
13791396configure_usage_server () {
@@ -2279,7 +2296,6 @@ main() {
22792296}
22802297
22812298# Set trap for cleanup
2282- trap ' cleanup $?' EXIT
22832299trap ' cleanup 1' INT TERM
22842300
22852301# Ensure log directory exists
0 commit comments