diff options
| author | Endi Sukma Dewata <edewata@redhat.com> | 2013-05-08 19:32:26 -0400 |
|---|---|---|
| committer | Endi Sukma Dewata <edewata@redhat.com> | 2013-05-15 15:47:27 -0400 |
| commit | aaf6e899f28ecfc5d75bc378a7dc6ccee5b2249e (patch) | |
| tree | a6c32a5edbc3f1a3c60ed995a9d0cf4d0e084fa9 /base/server/sbin | |
| parent | c90155c4983b55cc93b6d7cf131bd4aa541ab515 (diff) | |
| download | pki-aaf6e899f28ecfc5d75bc378a7dc6ccee5b2249e.tar.gz pki-aaf6e899f28ecfc5d75bc378a7dc6ccee5b2249e.tar.xz pki-aaf6e899f28ecfc5d75bc378a7dc6ccee5b2249e.zip | |
Added support for backup/restore on upgrade.
The upgrade framework has been modified to support backup and restore
functionality. A new method backup(filename) has been added to save
a file into a backup folder. The CLI's have been modified to accept
a --revert parameter which will restore the backup files one version
at a time.
Ticket #583
Diffstat (limited to 'base/server/sbin')
| -rwxr-xr-x | base/server/sbin/pki-server-upgrade | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/base/server/sbin/pki-server-upgrade b/base/server/sbin/pki-server-upgrade index 58bc9ccb4..0b43f9b4b 100755 --- a/base/server/sbin/pki-server-upgrade +++ b/base/server/sbin/pki-server-upgrade @@ -24,6 +24,7 @@ import signal import sys import pki +import pki.upgrade import pki.server.upgrade @@ -47,6 +48,7 @@ def usage(): print print ' --silent Upgrade in silent mode. Ignore any failures.' print ' --status Show upgrade status only. Do not perform upgrade.' + print ' --revert Revert the last version' print print ' -X Show advanced usage.' print ' -v, --verbose Run in verbose mode.' @@ -56,8 +58,9 @@ def usage(): def advancedUsage(): print 'WARNING: These options may render the system unusable.' print 'Usage: pki-upgrade [OPTIONS]' - print ' --remove-tracker Remove tracker' - print ' --reset-tracker Reset tracker to match package version' + print ' --remove-tracker Remove tracker' + print ' --reset-tracker Reset tracker to match package version' + print ' --set-tracker <version> Set tracker to a specific version' def main(argv): @@ -68,8 +71,8 @@ def main(argv): opts, args = getopt.getopt(argv[1:], 'hi:s:t:vX', [ 'instance=', 'subsystem=', 'instance-type=', 'scriptlet-version=', 'scriptlet-index=', - 'silent', 'status', - 'remove-tracker', 'reset-tracker', + 'silent', 'status', 'revert', + 'remove-tracker', 'reset-tracker', 'set-tracker=', 'verbose', 'help']) except getopt.GetoptError as e: @@ -81,14 +84,18 @@ def main(argv): subsystemName = None instanceType = None - version = None - index = None + scriptlet_version = None + scriptlet_index = None silent = False status = False + revert = False + remove_tracker = False reset_tracker = False + tracker_version = None + for o, a in opts: if o in ('-i', '--instance'): instanceName = a @@ -100,10 +107,10 @@ def main(argv): instanceType = int(a) elif o == '--scriptlet-version': - version = a + scriptlet_version = a elif o == '--scriptlet-index': - index = int(a) + scriptlet_index = int(a) elif o == '--silent': silent = True @@ -111,12 +118,18 @@ def main(argv): elif o == '--status': status = True + elif o == '--revert': + revert = True + elif o == '--remove-tracker': remove_tracker = True elif o == '--reset-tracker': reset_tracker = True + elif o == '--set-tracker': + tracker_version = pki.upgrade.Version(a) + elif o in ('-v', '--verbose'): pki.upgrade.verbose = True @@ -138,7 +151,7 @@ def main(argv): usage() sys.exit(1) - if index and not version: + if scriptlet_index and not scriptlet_version: print 'ERROR: --scriptlet-index requires --scriptlet-version' usage() sys.exit(1) @@ -148,19 +161,25 @@ def main(argv): instanceName = instanceName, subsystemName = subsystemName, instanceType = instanceType, - version = version, - index = index, + version = scriptlet_version, + index = scriptlet_index, silent = silent) if status: upgrader.status() + elif revert: + upgrader.revert() + elif remove_tracker: upgrader.remove_tracker() elif reset_tracker: upgrader.reset_tracker() + elif tracker_version is not None: + upgrader.set_tracker(tracker_version) + else: upgrader.upgrade() |
