diff options
Diffstat (limited to 'base/common/python')
| -rw-r--r-- | base/common/python/pki/upgrade.py | 8 | ||||
| -rw-r--r-- | base/common/python/pki/util.py | 6 |
2 files changed, 11 insertions, 3 deletions
diff --git a/base/common/python/pki/upgrade.py b/base/common/python/pki/upgrade.py index 05db24f63..8f1b1d896 100644 --- a/base/common/python/pki/upgrade.py +++ b/base/common/python/pki/upgrade.py @@ -107,6 +107,7 @@ class PKIUpgradeTracker(object): index_key='PKI_UPGRADE_INDEX'): self.name = name + self.filename = filename self.version_key = version_key self.index_key = index_key @@ -266,6 +267,7 @@ class PKIUpgradeScriptlet(object): # in this version, update the tracker version. tracker = self.upgrader.get_tracker() + self.backup(tracker.filename) if not self.last: tracker.set_index(self.index) @@ -388,7 +390,8 @@ class PKIUpgradeScriptlet(object): if os.path.isfile(path): if verbose: print 'Saving ' + path - pki.util.copyfile(path, dest) + # do not overwrite initial backup + pki.util.copyfile(path, dest, overwrite=False) else: for sourcepath, _, filenames in os.walk(path): @@ -404,7 +407,8 @@ class PKIUpgradeScriptlet(object): targetfile = os.path.join(destpath, filename) if verbose: print 'Saving ' + sourcefile - pki.util.copyfile(sourcefile, targetfile) + # do not overwrite initial backup + pki.util.copyfile(sourcefile, targetfile, overwrite=False) else: diff --git a/base/common/python/pki/util.py b/base/common/python/pki/util.py index 4d25390a6..62aec2c47 100644 --- a/base/common/python/pki/util.py +++ b/base/common/python/pki/util.py @@ -53,11 +53,15 @@ def copy(source, dest): targetfile = os.path.join(destpath, filename) copyfile(sourcefile, targetfile) -def copyfile(source, dest): +def copyfile(source, dest, overwrite=True): """ Copy a file or link while preserving its attributes. """ + # if dest already exists and not overwriting, do nothing + if os.path.exists(dest) and not overwrite: + return + if os.path.islink(source): target = os.readlink(source) os.symlink(target, dest) |
