From 5aa449d28e421ea1c6b84caaf78512e195a4472c Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Thu, 19 Mar 2009 18:50:37 +0000 Subject: launchd update for 10.5 (patch from Kamil Kisiel) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5132 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Client/Tools/launchd.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/lib/Client/Tools/launchd.py b/src/lib/Client/Tools/launchd.py index 717a084a9..90bc14aa5 100644 --- a/src/lib/Client/Tools/launchd.py +++ b/src/lib/Client/Tools/launchd.py @@ -40,6 +40,17 @@ class launchd(Bcfg2.Client.Tools.Tool): except KeyError: return None + def os_version(self): + version = "" + try: + vers = self.cmd.run('sw_vers')[1] + except: + return version + + for line in vers: + if line.startswith("ProductVersion"): + version = line.split()[-1] + return version def VerifyService(self, entry, _): '''Verify Launchd Service Entry''' @@ -47,6 +58,10 @@ class launchd(Bcfg2.Client.Tools.Tool): services = self.cmd.run("/bin/launchctl list")[1] except IndexError:#happens when no services are running (should be never) services = [] + # launchctl output changed in 10.5 + # It is now three columns, with the last column being the name of the # service + if self.os_version().startswith('10.5'): + services = [s.split()[-1] for s in services] if entry.get('name') in services:#doesn't check if non-spawning services are Started return entry.get('status') == 'on' else: -- cgit v1.2.3-1-g7c22