diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Yum.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Yum.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Yum.pm 2020-11-19 11:53:26.000000000 +0400 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Controller/Yum.pm 2023-04-27 00:02:22.829000000 +0400 @@ -57,6 +57,7 @@ $dest = 'yumlogfile'; } elsif ($cdb->get_prop('yum', 'LogFile')) { $yum_datas{'trt'} = 'PSTU'; + $yum_datas{'reconf'} = $cdb->get_value('UnsavedChanges', 'yes'); $dest = 'yumpostupg'; } else { # normal other trt @@ -113,6 +114,7 @@ if ( $trt eq 'PSTU') { if ($cdb->get_prop('yum', 'LogFile')) { $dest = 'yumpostupg'; + $yum_datas{'reconf'} = $cdb->get_value('UnsavedChanges', 'yes'); } } @@ -198,12 +200,20 @@ if ( $trt eq 'PSTU') { + my $reconf = $c->param('reconf') || 'yes'; $dest = 'yumpostupg'; - $res = $c->post_upgrade_reboot(); - $result .= $res unless $res eq 'OK'; - if ( ! $result ) { + + # effective reconfigure and reboot required + if ( $reconf eq 'yes' ) { + $res = $c->post_upgrade_reboot(); + $result .= $res unless $res eq 'OK'; + if ( ! $result ) { + $yum_datas{trt} = 'SUC'; + $result = $c->l('yum_SYSTEM_BEING_RECONFIGURED'); + } + } else { $yum_datas{trt} = 'SUC'; - $result = $c->l('yum_SYSTEM_BEING_RECONFIGURE'); + $result = $c->l('yum_UPDATE_SUCCESS'); } } diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/General/general_en.lex smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/General/general_en.lex --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/General/general_en.lex 2021-06-21 13:25:10.000000000 +0400 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/General/general_en.lex 2023-01-25 20:16:24.000000000 +0400 @@ -141,3 +141,14 @@ Logout => 'Logout', Home => 'Home', CSRF_VALIDATION_FAILURE => 'Error: CSRF token is invalid or outdated.', +Empty => 'Empty', +Active => 'Active', +MINUTE => 'Minute', +MINUTES => 'Minutes', +HOUR => 'Hour', +HOURS => 'Hours', +SMALL => 'Small', +MEDIUM => 'Medium', +LARGE => 'Large', +FIELD_INVALID_CHARS => 'A field you entered contains invalid characters.', + diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Yum/yum_en.lex smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Yum/yum_en.lex --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Yum/yum_en.lex 2020-11-19 11:53:26.000000000 +0400 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Yum/yum_en.lex 2023-04-23 20:12:21.000000000 +0400 @@ -76,3 +76,4 @@ 'yum_DESC_YUM_DOWNLOADONLY' => 'The rpm updates can be downloaded during the night, this will ease and give faster the yum update process (only enabled repositories will be used).', +'yum_UPDATE_SUCCESS' => 'The requested changes have been successfully implemented.', diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Model/Main.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Model/Main.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr/Model/Main.pm 2021-06-21 13:25:10.000000000 +0400 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr/Model/Main.pm 2023-04-25 21:09:06.000000000 +0400 @@ -29,8 +29,6 @@ $datas{'copyRight'} = 'All rights reserved'; $datas{'PwdSet'} = ($cdb->get('PasswordSet')->value eq "yes") || '0' ; - $datas{'Unsafe'} = ($cdb->get('bootstrap-console') and $cdb->get('bootstrap-console')->prop('Run') eq 'yes') || - ($cdb->get('UnsavedChanges') and $cdb->get('UnsavedChanges')->value eq 'yes'); $datas{'SystemName'} = $cdb->get("SystemName")->value; $datas{'DomainName'} = $cdb->get("DomainName")->value; @@ -42,6 +40,15 @@ } +sub reconf_needed { + + my $cdb = esmith::ConfigDB->open_ro() or die("can't open Config DB"); + my $unsafe = ($cdb->get('bootstrap-console') and $cdb->get('bootstrap-console')->prop('Run') eq 'yes') || + ($cdb->get('UnsavedChanges') and $cdb->get('UnsavedChanges')->value eq 'yes') || '0'; + return $unsafe; +} + + sub check_credentials { my ($c, $username, $password) = @_; diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr.pm smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr.pm --- smeserver-manager-0.1.4.old/root/usr/share/smanager/lib/SrvMngr.pm 2023-03-21 11:26:27.000000000 +0400 +++ smeserver-manager-0.1.4/root/usr/share/smanager/lib/SrvMngr.pm 2023-04-25 23:50:43.986000000 +0400 @@ -26,12 +26,12 @@ use SrvMngr::Model::Main; -our $VERSION = '1.417'; +our $VERSION = '1.420'; $VERSION = eval $VERSION; use Exporter 'import'; our @EXPORT_OK = qw( - init_session get_mod_url theme_list + init_session get_mod_url theme_list getNavigation ip_number is_normal_password email_simple mac_address_or_blank mac_address ip_number_or_blank lang_space get_routes_list subnet_mask get_reg_mask @@ -159,6 +159,10 @@ return undef; }); + $self->helper( 'is_unsafe' => sub { + return SrvMngr::Model::Main->reconf_needed(); + }); + $self->helper( 'is_logged_in' => sub { my $self = shift; if ( defined $self->session->{logged_in} ) { @@ -369,6 +373,7 @@ $if_admin->get('/yum')->to('yum#main')->name('yum'); $if_admin->post('/yum')->to('yum#do_display')->name('yumd1'); + $if_admin->get('/yumd')->to('yum#do_display')->name('yumd'); $if_admin->post('/yumd')->to('yum#do_update')->name('yumu'); $if_admin->get('/welcome')->to('welcome#main')->name('welcome'); @@ -448,7 +453,6 @@ $c->session->{copyRight} = $c->l($datas{'copyRight'}); $c->session->{releaseVersion} = $datas{'releaseVersion'}; $c->session->{PwdSet} = $datas{'PwdSet'}; - $c->session->{Unsafe} = $datas{'Unsafe'}; $c->session->{SystemName} = $datas{'SystemName'}; $c->session->{DomainName} = $datas{'DomainName'}; $c->session->{Access} = $datas{'Access'}; diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_info.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_info.html.ep --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/partials/_info.html.ep 2021-06-21 13:25:10.000000000 +0400 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/partials/_info.html.ep 2023-04-25 23:16:50.729000000 +0400 @@ -3,7 +3,7 @@
Warning: you have not yet changed the default system password.
<% } %> - <% if ( $c->session->{Unsafe} ) { %> + <% if ( $c->is_unsafe ) { %>
Warning: a reconfigure and reboot is required before proceeding! Failure to do so now may leave your system in an unknown state!
diff -urN smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/yumpostupg.html.ep smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/yumpostupg.html.ep --- smeserver-manager-0.1.4.old/root/usr/share/smanager/themes/default/templates/yumpostupg.html.ep 2023-03-21 11:26:27.000000000 +0400 +++ smeserver-manager-0.1.4/root/usr/share/smanager/themes/default/templates/yumpostupg.html.ep 2023-04-23 21:55:27.000000000 +0400 @@ -18,18 +18,24 @@ %} -
+
+ <% my $btn = l('NEXT'); %> + %= $c->render_to_string( inline => l 'yum_UPDATE_SUCCESS' ) + % if ( $yum_datas->{reconf} eq 'yes' ) { %= $c->render_to_string( inline => l 'yum_HEADER_POSTUPGRADE_REQUIRED' ) -

+ <% $btn = l('RECONFIGURE'); %> + % } +

%= form_for 'yumd' => (method => 'POST') => begin <%= $c->render_to_string(inline => $c->show_yum_log()) %> %= hidden_field 'trt' => 'PSTU' + %= hidden_field 'reconf' => $yum_datas->{reconf}
- %= submit_button $c->l('RECONFIGURE'), class => 'action' + %= submit_button "$btn", class => 'action'
% end