diff options
author | Mark McLoughlin <markmc@redhat.com> | 2008-01-22 11:58:06 +0000 |
---|---|---|
committer | Mark McLoughlin <markmc@redhat.com> | 2008-01-22 11:58:06 +0000 |
commit | 11266d039f6c59be1bf8ce888972d012ce49ddf6 (patch) | |
tree | 4b251571c8ef18ec1484808d0bf5c34c5b471098 /ipa-server/ipaserver/service.py | |
parent | 5fd10b5f98588892cdd832c0c71dc4a98cc135ee (diff) | |
download | freeipa.git-11266d039f6c59be1bf8ce888972d012ce49ddf6.tar.gz freeipa.git-11266d039f6c59be1bf8ce888972d012ce49ddf6.tar.xz freeipa.git-11266d039f6c59be1bf8ce888972d012ce49ddf6.zip |
Re-factor the ipa_webgui and ipa_kpasswd instance code
The ipa_webgui and ipa_kpasswd instance code is identical
and I want to add another similar instance down the line,
so re-factor the code into a service.SimpleServiceInstance
class.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Diffstat (limited to 'ipa-server/ipaserver/service.py')
-rw-r--r-- | ipa-server/ipaserver/service.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ipa-server/ipaserver/service.py b/ipa-server/ipaserver/service.py index e960c43d..e9dc1dcd 100644 --- a/ipa-server/ipaserver/service.py +++ b/ipa-server/ipaserver/service.py @@ -125,3 +125,26 @@ class Service: self.print_msg("done configuring %s." % self.service_name) self.steps = [] + +class SimpleServiceInstance(Service): + def create_instance(self): + self.step("starting %s " % self.service_name, self.__start) + self.step("configuring %s to start on boot" % self.service_name, self.__enable) + self.start_creation("Configuring %s" % self.service_name) + + def __start(self): + self.backup_state("running", self.is_running()) + self.restart() + + def __enable(self): + self.backup_state("enabled", self.is_enabled()) + self.chkconfig_on() + + def uninstall(self): + running = self.restore_state("running") + enabled = not self.restore_state("enabled") + + if not running is None and not running: + self.stop() + if not enabled is None and not enabled: + self.chkconfig_off() |