diff options
author | Rob Crittenden <rcritten@redhat.com> | 2011-09-09 17:07:09 -0400 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2011-09-13 16:09:33 +0200 |
commit | 2c013a274eec67a9887eb5448c5eb5218f377b37 (patch) | |
tree | 2457399339fa965e0e7412bd5322b932c017fa44 /install/tools | |
parent | 970480c6d87c7a1ad1730ee146daed9c76c6ea8e (diff) | |
download | freeipa-2c013a274eec67a9887eb5448c5eb5218f377b37.tar.gz freeipa-2c013a274eec67a9887eb5448c5eb5218f377b37.tar.xz freeipa-2c013a274eec67a9887eb5448c5eb5218f377b37.zip |
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
Diffstat (limited to 'install/tools')
-rwxr-xr-x | install/tools/ipa-server-install | 6 | ||||
-rw-r--r-- | install/tools/ipa-upgradeconfig | 21 |
2 files changed, 18 insertions, 9 deletions
diff --git a/install/tools/ipa-server-install b/install/tools/ipa-server-install index e9f2c75fb..504d6af50 100755 --- a/install/tools/ipa-server-install +++ b/install/tools/ipa-server-install @@ -491,12 +491,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 4ac309288..1b08382e4 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__": |