summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Spacek <pspacek@redhat.com>2015-10-30 10:39:49 +0100
committerMartin Basti <mbasti@redhat.com>2015-10-30 13:45:36 +0100
commitd7f0d633d93d3d7791ea0c3cedf084f004cbf27b (patch)
treea0fd8edc6893c06fe32537cc56c70b633d1d9c79
parent9ffb3882532436dfd475831ee74b06e1b785251f (diff)
DNSSEC: on uninstall, do not restore OpenDNSSEC kasp.db if backup failed
Reviewed-By: Martin Basti <mbasti@redhat.com>
-rw-r--r--ipaserver/install/opendnssecinstance.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/ipaserver/install/opendnssecinstance.py b/ipaserver/install/opendnssecinstance.py
index 34dce0f32..ba8328007 100644
--- a/ipaserver/install/opendnssecinstance.py
+++ b/ipaserver/install/opendnssecinstance.py
@@ -343,6 +343,9 @@ class OpenDNSSECInstance(service.Service):
'ISMASTER', None,
quotes=False, separator='=')
+ restore_list = [paths.OPENDNSSEC_CONF_FILE, paths.OPENDNSSEC_KASP_FILE,
+ paths.SYSCONFIG_ODS, paths.OPENDNSSEC_ZONELIST_FILE]
+
if ipautil.file_exists(paths.OPENDNSSEC_KASP_DB):
# force to export data
@@ -358,14 +361,16 @@ class OpenDNSSECInstance(service.Service):
paths.IPA_KASP_DB_BACKUP)
except IOError as e:
root_logger.error(
- "Unable to backup OpenDNSSEC database: %s", e)
+ "Unable to backup OpenDNSSEC database %s, "
+ "restore will be skipped: %s", paths.OPENDNSSEC_KASP_DB, e)
else:
root_logger.info("OpenDNSSEC database backed up in %s",
paths.IPA_KASP_DB_BACKUP)
+ # restore OpenDNSSEC's KASP DB only if backup succeeded
+ # removing the file without backup could totally break DNSSEC
+ restore_list.append(paths.OPENDNSSEC_KASP_DB)
- for f in [paths.OPENDNSSEC_CONF_FILE, paths.OPENDNSSEC_KASP_FILE,
- paths.OPENDNSSEC_KASP_DB, paths.SYSCONFIG_ODS,
- paths.OPENDNSSEC_ZONELIST_FILE]:
+ for f in restore_list:
try:
self.fstore.restore_file(f)
except ValueError as error: