From 3a1cf61e329c71c356d4d2a851b00065550dfae0 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Mon, 27 Jul 2015 17:52:07 +0200 Subject: Client/Tools/Systemd: Find extra entries Add FindExtra to get a listing of all extra systemd entries. --- src/lib/Bcfg2/Client/Tools/Systemd.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/lib/Bcfg2/Client/Tools/Systemd.py b/src/lib/Bcfg2/Client/Tools/Systemd.py index f7e5b1b0b..e3ddc3982 100644 --- a/src/lib/Bcfg2/Client/Tools/Systemd.py +++ b/src/lib/Bcfg2/Client/Tools/Systemd.py @@ -2,6 +2,8 @@ """This is systemd support.""" +import glob +import os import Bcfg2.Client.Tools import Bcfg2.Client.XML @@ -91,3 +93,15 @@ class Systemd(Bcfg2.Client.Tools.SvcTool): return self.cmd.run(cmd).success else: return True + + def FindExtra(self): + """Find Extra Systemd Service entries.""" + specified = [self.get_svc_name(entry) + for entry in self.getSupportedEntries()] + extra = set() + for fname in glob.glob("/etc/systemd/system/*.wants/*"): + name = os.path.basename(fname) + if name not in specified: + extra.add(name) + return [Bcfg2.Client.XML.Element('Service', name=name, type='systemd') + for name in list(extra)] -- cgit v1.2.3-1-g7c22