diff options
author | Gordon Messmer <gordon@dragonsdawn.net> | 2014-10-21 16:21:26 -0700 |
---|---|---|
committer | Gordon Messmer <gordon@dragonsdawn.net> | 2014-10-21 16:21:26 -0700 |
commit | 93f30a927c5753bd4edf529d8f7f689a5999a879 (patch) | |
tree | 64ecf535defbe76e7b0650f3657ec902a8911ee5 /src/lib/Bcfg2/Client/Tools/Systemd.py | |
parent | b91fb3930d3ad6f6d5252876e576e1c51f0010a9 (diff) | |
download | bcfg2-93f30a927c5753bd4edf529d8f7f689a5999a879.tar.gz bcfg2-93f30a927c5753bd4edf529d8f7f689a5999a879.tar.bz2 bcfg2-93f30a927c5753bd4edf529d8f7f689a5999a879.zip |
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.
Diffstat (limited to 'src/lib/Bcfg2/Client/Tools/Systemd.py')
-rw-r--r-- | src/lib/Bcfg2/Client/Tools/Systemd.py | 11 |
1 files changed, 9 insertions, 2 deletions
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: |