mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
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
This commit is contained in:
committed by
Martin Kosek
parent
5ddc027d7f
commit
4fd20966f6
@@ -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")
|
||||
|
||||
@@ -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__":
|
||||
|
||||
Reference in New Issue
Block a user