From c5d863b3a043abee2c970c37f4834855f23f2b40 Mon Sep 17 00:00:00 2001 From: Brian Read Date: Sat, 8 Mar 2025 10:45:00 +0000 Subject: [PATCH] * Sat Mar 08 2025 Brian Read 11.0.0-64.sme - Add code to check for boot phase completion [SME: 12953] --- .../lib/SrvMngr/Controller/Bugreport.pm | 32 +++++++++++++++---- smeserver-manager.spec | 5 ++- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/root/usr/share/smanager/lib/SrvMngr/Controller/Bugreport.pm b/root/usr/share/smanager/lib/SrvMngr/Controller/Bugreport.pm index 45a8893..1044762 100644 --- a/root/usr/share/smanager/lib/SrvMngr/Controller/Bugreport.pm +++ b/root/usr/share/smanager/lib/SrvMngr/Controller/Bugreport.pm @@ -17,6 +17,9 @@ use File::Basename; use SrvMngr qw( gen_locale_date_string ); our $cdb = esmith::ConfigDB->open or die "Couldn't open ConfigDB\n"; +use constant FALSE => 0; +use constant TRUE => 1; + # Get some basic info on the current SME install our $sysconfig = $cdb->get('sysconfig'); our $systemmode = $cdb->get('SystemMode')->value; @@ -124,15 +127,30 @@ sub create_configuration_report { print $cfgrep $result; close $cfgrep; - #And create boot analysis image - now run externally by systemd, only run once per boot. - $result = `/usr/bin/systemctl start bootsequence.service`; - if (!$? == 0) { - warn "/usr/bin/systemd-analyze plot Command failed \n"; + #check if boot phase has completed. + if (wait_for_boot_completion()) { + #And create boot analysis image - now run externally following boot. + $result = `/usr/bin/systemctl start bootsequence.service`; + if (!$? == 0) { + warn "/usr/bin/systemd-analyze plot Command failed \n"; + } } - - + } ## end sub create_configuration_report +sub wait_for_boot_completion { + my $timeout = 60; # 1-minute timeout + my $end_time = time() + $timeout; + while (time() < $end_time) { + if (`systemctl list-jobs 2>&1` =~ /No jobs running/) { + return TRUE; # Success + } + sleep 5; + } + warn "Boot did not complete within $timeout seconds.\n"; + return FALSE; # Failure +} ## end wait_for_boot_completion + sub show_config_report { my $c = shift; my $out = ''; @@ -155,4 +173,4 @@ sub download_config_report { 'cleanup' => 1, ); } ## end sub download_config_report -1; +1; \ No newline at end of file diff --git a/smeserver-manager.spec b/smeserver-manager.spec index 75142e5..56717fa 100644 --- a/smeserver-manager.spec +++ b/smeserver-manager.spec @@ -2,7 +2,7 @@ Summary: Sme server navigation module : manager 2 %define name smeserver-manager Name: %{name} %define version 11.0.0 -%define release 63 +%define release 64 Version: %{version} Release: %{release}%{?dist} License: GPL @@ -143,6 +143,9 @@ true %defattr(-,root,root) %changelog +* Sat Mar 08 2025 Brian Read 11.0.0-64.sme +- Add code to check for boot phase completion [SME: 12953] + * Thu Mar 06 2025 Brian Read 11.0.0-63.sme - Add boot.svg image to Bug Report panel [SME: 12953] - Move report template to inside smanager tree