From 04e9056ec2b6e0360f3f3545fd638ecc17aaad2c Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Mon, 3 May 2010 15:21:51 -0400 Subject: Make the installer/uninstaller more aware of its state We have had a state file for quite some time that is used to return the system to its pre-install state. We can use that to determine what has been configured. This patch: - uses the state file to determine if dogtag was installed - prevents someone from trying to re-install an installed server - displays some output when uninstalling - re-arranges the ipa_kpasswd installation so the state is properly saved - removes pkiuser if it was added by the installer - fetches and installs the CA on both masters and clients --- ipaserver/install/service.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'ipaserver/install/service.py') diff --git a/ipaserver/install/service.py b/ipaserver/install/service.py index d9db9ba4..4958721e 100644 --- a/ipaserver/install/service.py +++ b/ipaserver/install/service.py @@ -186,6 +186,9 @@ class Service: logging.critical("Could not add certificate to service %s entry: %s" % (self.principal, str(e))) conn.unbind() + def is_configured(self): + return self.sstore.has_state(self.service_name) + def set_output(self, fd): self.output_fd = fd @@ -257,6 +260,9 @@ class SimpleServiceInstance(Service): self.chkconfig_on() def uninstall(self): + if self.is_configured(): + self.print_msg("Unconfiguring %s" % self.service_name) + running = self.restore_state("running") enabled = not self.restore_state("enabled") -- cgit