public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] applied: [PATCH manager 1/3] api/services: improve essential service check, allow reload and start
@ 2020-07-24 13:25 Thomas Lamprecht
  2020-07-24 13:25 ` [pve-devel] applied: [PATCH manager 2/3] api/services: fallback to restart in reload Thomas Lamprecht
  2020-07-24 13:25 ` [pve-devel] applied: [PATCH manager 3/3] ui: node/services: use safer reload as restart command Thomas Lamprecht
  0 siblings, 2 replies; 3+ messages in thread
From: Thomas Lamprecht @ 2020-07-24 13:25 UTC (permalink / raw)
  To: pve-devel

reload is actually preferred, and even if most of the time this even
won't reach the API, allowing to start them is still definitively
fine!

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
 PVE/API2/Services.pm | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/PVE/API2/Services.pm b/PVE/API2/Services.pm
index a504dcd5..e5b3c3da 100644
--- a/PVE/API2/Services.pm
+++ b/PVE/API2/Services.pm
@@ -34,6 +34,11 @@ my $service_name_list = [
     'ksmtuned',
     'systemd-timesyncd',
 ];
+my $essential_services = {
+    pveproxy => 1,
+    pvedaemon => 1,
+    'pve-cluster' => 1,
+};
 
 # since postfix package 3.1.0-3.1 the postfix unit is only here to
 # manage subinstances, of which the  default is called "-".
@@ -92,17 +97,12 @@ my $service_cmd = sub {
 
     my $initd_cmd;
 
-    die "unknown service command '$cmd'\n"
-	if $cmd !~ m/^(start|stop|restart|reload)$/;
+    die "unknown service command '$cmd'\n" if $cmd !~ m/^(start|stop|restart|reload|try-reload-or-restart)$/;
 
-    if ($service eq 'pvecluster' || $service eq 'pvedaemon' || $service eq 'pveproxy') {
-	if ($cmd eq 'restart') {    
-	    # OK
-	} else {
-	    die "invalid service cmd '$service $cmd': ERROR";
-	}
+    if ($essential_services->{$service} && $cmd eq 'stop') {
+	die "invalid service cmd '$service $cmd': refusing to stop essential service!\n";
     }
-    
+
     PVE::Tools::run_command(['systemctl', $cmd, $service]);
 };
 
-- 
2.20.1





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [pve-devel] applied: [PATCH manager 2/3] api/services: fallback to restart in reload
  2020-07-24 13:25 [pve-devel] applied: [PATCH manager 1/3] api/services: improve essential service check, allow reload and start Thomas Lamprecht
@ 2020-07-24 13:25 ` Thomas Lamprecht
  2020-07-24 13:25 ` [pve-devel] applied: [PATCH manager 3/3] ui: node/services: use safer reload as restart command Thomas Lamprecht
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Lamprecht @ 2020-07-24 13:25 UTC (permalink / raw)
  To: pve-devel

And document that it is preferred

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
 PVE/API2/Services.pm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/PVE/API2/Services.pm b/PVE/API2/Services.pm
index e5b3c3da..df9606f4 100644
--- a/PVE/API2/Services.pm
+++ b/PVE/API2/Services.pm
@@ -319,7 +319,7 @@ __PACKAGE__->register_method ({
     name => 'service_restart',
     path => '{service}/restart',
     method => 'POST',
-    description => "Restart service.",
+    description => "Hard restart service. Use reload if you want to reduce interruptions.",
     permissions => {
 	check => ['perm', '/nodes/{node}', [ 'Sys.Modify' ]],
     },
@@ -355,7 +355,7 @@ __PACKAGE__->register_method ({
     name => 'service_reload',
     path => '{service}/reload',
     method => 'POST',
-    description => "Reload service.",
+    description => "Reload service. Falls back to restart if service cannot be reloaded.",
     permissions => {
 	check => ['perm', '/nodes/{node}', [ 'Sys.Modify' ]],
     },
@@ -381,7 +381,7 @@ __PACKAGE__->register_method ({
 	    my $upid = shift;
 	    syslog('info', "reloading service $param->{service}: $upid\n");
 
-	    $service_cmd->($param->{service}, 'reload');
+	    $service_cmd->($param->{service}, 'try-reload-or-restart');
 
 	};
 
-- 
2.20.1





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [pve-devel] applied: [PATCH manager 3/3] ui: node/services: use safer reload as restart command
  2020-07-24 13:25 [pve-devel] applied: [PATCH manager 1/3] api/services: improve essential service check, allow reload and start Thomas Lamprecht
  2020-07-24 13:25 ` [pve-devel] applied: [PATCH manager 2/3] api/services: fallback to restart in reload Thomas Lamprecht
@ 2020-07-24 13:25 ` Thomas Lamprecht
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Lamprecht @ 2020-07-24 13:25 UTC (permalink / raw)
  To: pve-devel

avoids service interruptions

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
 www/manager6/node/Config.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/www/manager6/node/Config.js b/www/manager6/node/Config.js
index be09615f..ef3ac32c 100644
--- a/www/manager6/node/Config.js
+++ b/www/manager6/node/Config.js
@@ -159,6 +159,7 @@ Ext.define('PVE.node.Config', {
 		    iconCls: 'fa fa-cogs',
 		    itemId: 'services',
 		    expandedOnInit: true,
+		    restartCommand: 'reload', // avoid disruptions
 		    startOnlyServices: {
 			'pveproxy': true,
 			'pvedaemon': true,
-- 
2.20.1





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-07-24 13:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-24 13:25 [pve-devel] applied: [PATCH manager 1/3] api/services: improve essential service check, allow reload and start Thomas Lamprecht
2020-07-24 13:25 ` [pve-devel] applied: [PATCH manager 2/3] api/services: fallback to restart in reload Thomas Lamprecht
2020-07-24 13:25 ` [pve-devel] applied: [PATCH manager 3/3] ui: node/services: use safer reload as restart command Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal