From f7e4ccb9b3c95adaf6e474395b268a5b9a322535 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Tue, 29 Aug 2006 19:24:49 +0000 Subject: Make service restarts tunable across platforms * Remove hardcoded /etc/init.d calls in Toolset.py * Add an overloadable method * Implement the method for Solaris.py git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@2141 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Client/Solaris.py | 8 ++++++++ src/lib/Client/Toolset.py | 9 +++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/lib/Client/Solaris.py b/src/lib/Client/Solaris.py index cc2f0627b..36f59c1d1 100644 --- a/src/lib/Client/Solaris.py +++ b/src/lib/Client/Solaris.py @@ -223,3 +223,11 @@ class ToolsetImpl(Toolset): unlink(self.noaskname) except: pass + + def RestartService(self, service): + '''Restart a service''' + if service.get("FMRI").startswith('lrc'): + Toolset.RestartService(self, service) + else: + self.logger.debug("Restarting service %s" % (service.get("FMRI"))) + self.saferun("svcadm disable %s" % (service.get("FMRI")) diff --git a/src/lib/Client/Toolset.py b/src/lib/Client/Toolset.py index 7aa6a420f..3861233b2 100644 --- a/src/lib/Client/Toolset.py +++ b/src/lib/Client/Toolset.py @@ -530,8 +530,7 @@ class Toolset(object): # stop services in miniroot self.saferun('/etc/init.d/%s stop' % svc.get('name')) else: - self.logger.debug('Restarting service %s' % svc.get('name')) - self.saferun('/etc/init.d/%s %s' % (svc.get('name'), svc.get('reload', 'reload'))) + self.RestartService(svc) for entry in self.structures: if [strent for strent in entry.getchildren() if not self.states.get(strent, False)]: @@ -693,3 +692,9 @@ class Toolset(object): self.modified.append(entry) left = len(work) + len(self.pkgwork['remove']) self.HandleBundleDeps() + + def RestartService(self, entry): + '''Restart a service entry''' + self.logger.debug('Restarting service %s' % entry.get('name')) + self.saferun('/etc/init.d/%s %s' % (entry.get('name'), entry.get('reload', 'reload'))) + -- cgit v1.2.3-1-g7c22