- Remove ipa-pki-proxy.conf when IPA is uninstalled - Move file removal to httpinstance.py and use remove_file() - Add a version stanza - Create the file if it doesn't exist on upgraded installs
https://fedorahosted.org/freeipa/ticket/1771 rob
>From 7852db92caaace209b8ab226c4945c250d971ada Mon Sep 17 00:00:00 2001 From: Rob Crittenden <rcrit...@redhat.com> Date: Fri, 9 Sep 2011 17:07:09 -0400 Subject: [PATCH] Improved handling for ipa-pki-proxy.conf - Remove ipa-pki-proxy.conf when IPA is uninstalled - Move file removal to httpinstance.py and use remove_file() - Add a version stanza - Create the file if it doesn't exist on upgraded installs https://fedorahosted.org/freeipa/ticket/1771 --- install/conf/ipa-pki-proxy.conf | 2 ++ install/tools/ipa-server-install | 6 +----- install/tools/ipa-upgradeconfig | 21 +++++++++++++++++---- ipaserver/install/httpinstance.py | 8 ++++++++ 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/install/conf/ipa-pki-proxy.conf b/install/conf/ipa-pki-proxy.conf index 275f32645be6b41063ec5c20f0e0923f61efbaaa..91a99aaf9cd9ce3669fbe12450bfae1b220fa67b 100644 --- a/install/conf/ipa-pki-proxy.conf +++ b/install/conf/ipa-pki-proxy.conf @@ -1,3 +1,5 @@ +# VERSION 1 - DO NOT REMOVE THIS LINE + ProxyRequests Off # matches for ee port diff --git a/install/tools/ipa-server-install b/install/tools/ipa-server-install index 0572d4f2640fbb6eecb64060ebb8de1807d81aef..03cb2e06c283276b64b7fad0b448265e8c432af2 100755 --- a/install/tools/ipa-server-install +++ b/install/tools/ipa-server-install @@ -490,12 +490,8 @@ def uninstall(): os.remove(ANSWER_CACHE) except Exception: pass + # ipa-client-install removes /etc/ipa/default.conf - try: - os.remove("/etc/httpd/conf.d/ipa-rewrite.conf") - os.remove("/etc/httpd/conf.d/ipa.conf") - except: - pass sstore._load() group_exists = sstore.restore_state("install", "group_exists") diff --git a/install/tools/ipa-upgradeconfig b/install/tools/ipa-upgradeconfig index 4ac3092888b0daa14159d6e789e8e60f425ebb40..1b08382e40788b9be80d538607bd605320279d8e 100644 --- a/install/tools/ipa-upgradeconfig +++ b/install/tools/ipa-upgradeconfig @@ -52,7 +52,13 @@ def backup_file(filename, ext): while os.path.exists(backupfile): backupfile = backupfile + "." + str(ext) - shutil.copy2(filename, backupfile) + try: + shutil.copy2(filename, backupfile) + except IOError, e: + if e.errno == 2: # No such file or directory + pass + else: + raise e def update_conf(sub_dict, filename, template_filename): template = ipautil.template_file(template_filename, sub_dict) @@ -93,18 +99,24 @@ def find_version(filename): else: return -1 -def upgrade(sub_dict, filename, template): +def upgrade(sub_dict, filename, template, add=False): + """ + Get the version from the current and template files and update the + installed configuration file if there is a new template. + + If add is True then create a new configuration file. + """ old = int(find_version(filename)) new = int(find_version(template)) - if old < 0: + if old < 0 and not add: print "%s not found." % filename sys.exit(1) if new < 0: print "%s not found." % template - if old < new: + if old < new or add: backup_file(filename, new) update_conf(sub_dict, filename, template) print "Upgraded %s to version %d" % (filename, new) @@ -149,6 +161,7 @@ def main(): upgrade(sub_dict, "/etc/httpd/conf.d/ipa.conf", ipautil.SHARE_DIR + "ipa.conf") upgrade(sub_dict, "/etc/httpd/conf.d/ipa-rewrite.conf", ipautil.SHARE_DIR + "ipa-rewrite.conf") + upgrade(sub_dict, "/etc/httpd/conf.d/ipa-pki-proxy.conf", ipautil.SHARE_DIR + "ipa-pki-proxy.conf", add=True) try: if __name__ == "__main__": diff --git a/ipaserver/install/httpinstance.py b/ipaserver/install/httpinstance.py index 4294bee1b75c64fc3af9bee2cfaf19c45629e6b6..266d72783e380b3840600d890fbf894cd1f76133 100644 --- a/ipaserver/install/httpinstance.py +++ b/ipaserver/install/httpinstance.py @@ -281,6 +281,14 @@ class HTTPInstance(service.Service): logging.debug(error) pass + # Remove the configuration files we create + try: + installutils.remove_file("/etc/httpd/conf.d/ipa-rewrite.conf") + installutils.remove_file("/etc/httpd/conf.d/ipa.conf") + installutils.remove_file("/etc/httpd/conf.d/ipa-pki-proxy.conf") + except: + pass + sebool_state = self.restore_state("httpd_can_network_connect") if not sebool_state is None: try: -- 1.7.6
_______________________________________________ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel