summaryrefslogtreecommitdiffstats
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
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.
-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: