From 93f30a927c5753bd4edf529d8f7f689a5999a879 Mon Sep 17 00:00:00 2001 From: Gordon Messmer Date: Tue, 21 Oct 2014 16:21:26 -0700 Subject: If a service name ends with .service, .socket, or .target, do not automatically add ".service" to the end when calling systemctl. This change allows users to manage sockets and targets using systemctl. --- src/lib/Bcfg2/Client/Tools/Systemd.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/lib/Bcfg2/Client/Tools/Systemd.py b/src/lib/Bcfg2/Client/Tools/Systemd.py index 027d91c71..5778a92da 100644 --- a/src/lib/Bcfg2/Client/Tools/Systemd.py +++ b/src/lib/Bcfg2/Client/Tools/Systemd.py @@ -13,15 +13,22 @@ class Systemd(Bcfg2.Client.Tools.SvcTool): __handles__ = [('Service', 'systemd')] __req__ = {'Service': ['name', 'status']} + def get_svc_name(self, service): + svc = service.get('name') + if svc.endswith(('.service', '.socket', '.target')): + return svc + else: + return '%s.service' % svc + def get_svc_command(self, service, action): - return "/bin/systemctl %s %s.service" % (action, service.get('name')) + return "/bin/systemctl %s %s" % (action, self.get_svc_name(service)) def VerifyService(self, entry, _): """Verify Service status for entry.""" if entry.get('status') == 'ignore': return True - cmd = "/bin/systemctl status %s.service " % (entry.get('name')) + cmd = "/bin/systemctl status %s" % (self.get_svc_name(entry)) rv = self.cmd.run(cmd) if 'Loaded: error' in rv.stdout: -- cgit v1.2.3-1-g7c22 From 359a099f9eaedd2d0131ce644e6d9b841b1efb8d Mon Sep 17 00:00:00 2001 From: Gordon Messmer Date: Wed, 22 Oct 2014 09:16:15 -0700 Subject: Add docstring for new function. --- src/lib/Bcfg2/Client/Tools/Systemd.py | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/lib/Bcfg2/Client/Tools/Systemd.py b/src/lib/Bcfg2/Client/Tools/Systemd.py index 5778a92da..2965ce74d 100644 --- a/src/lib/Bcfg2/Client/Tools/Systemd.py +++ b/src/lib/Bcfg2/Client/Tools/Systemd.py @@ -14,6 +14,7 @@ class Systemd(Bcfg2.Client.Tools.SvcTool): __req__ = {'Service': ['name', 'status']} def get_svc_name(self, service): + """Append .service to name if name doesn't specify a unit type.""" svc = service.get('name') if svc.endswith(('.service', '.socket', '.target')): return svc -- cgit v1.2.3-1-g7c22 From 77ddaccf4d2bb6889b8c49c3a17a4855bf466513 Mon Sep 17 00:00:00 2001 From: Gordon Messmer Date: Tue, 28 Oct 2014 12:37:23 -0700 Subject: Add remaining systemd unit types. --- src/lib/Bcfg2/Client/Tools/Systemd.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib/Bcfg2/Client/Tools/Systemd.py b/src/lib/Bcfg2/Client/Tools/Systemd.py index 2965ce74d..d2439f64d 100644 --- a/src/lib/Bcfg2/Client/Tools/Systemd.py +++ b/src/lib/Bcfg2/Client/Tools/Systemd.py @@ -16,7 +16,9 @@ class Systemd(Bcfg2.Client.Tools.SvcTool): def get_svc_name(self, service): """Append .service to name if name doesn't specify a unit type.""" svc = service.get('name') - if svc.endswith(('.service', '.socket', '.target')): + if svc.endswith(('.service', '.socket', '.device', '.mount', + '.automount', '.swap', '.target', '.path', + '.timer', '.snapshot', '.slice', '.scope')): return svc else: return '%s.service' % svc -- cgit v1.2.3-1-g7c22 From 8f215dfefb99c4c6a2c50e003de64b52fe992128 Mon Sep 17 00:00:00 2001 From: Gordon Messmer Date: Wed, 29 Oct 2014 19:35:28 -0700 Subject: Remove trailing white space. --- src/lib/Bcfg2/Client/Tools/Systemd.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/lib/Bcfg2/Client/Tools/Systemd.py b/src/lib/Bcfg2/Client/Tools/Systemd.py index d2439f64d..3b60c8285 100644 --- a/src/lib/Bcfg2/Client/Tools/Systemd.py +++ b/src/lib/Bcfg2/Client/Tools/Systemd.py @@ -16,8 +16,8 @@ class Systemd(Bcfg2.Client.Tools.SvcTool): def get_svc_name(self, service): """Append .service to name if name doesn't specify a unit type.""" svc = service.get('name') - if svc.endswith(('.service', '.socket', '.device', '.mount', - '.automount', '.swap', '.target', '.path', + if svc.endswith(('.service', '.socket', '.device', '.mount', + '.automount', '.swap', '.target', '.path', '.timer', '.snapshot', '.slice', '.scope')): return svc else: -- cgit v1.2.3-1-g7c22