all lists on 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal