summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Client
diff options
context:
space:
mode:
authorGordon Messmer <gordon@dragonsdawn.net>2014-10-21 16:21:26 -0700
committerGordon Messmer <gordon@dragonsdawn.net>2014-10-21 16:21:26 -0700
commit93f30a927c5753bd4edf529d8f7f689a5999a879 (patch)
tree64ecf535defbe76e7b0650f3657ec902a8911ee5 /src/lib/Bcfg2/Client
parentb91fb3930d3ad6f6d5252876e576e1c51f0010a9 (diff)
downloadbcfg2-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')
-rw-r--r--src/lib/Bcfg2/Client/Tools/Systemd.py11
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: