diff options
author | Martin Basti <mbasti@redhat.com> | 2015-04-10 15:42:58 +0200 |
---|---|---|
committer | Jan Cholasta <jcholast@redhat.com> | 2015-05-04 11:16:26 +0000 |
commit | 9f049ca14403f3696d54d186e6b1b15181f055df (patch) | |
tree | 80c4c6d0b2d9e0b584322a931a729560e274c174 /ipaplatform/base/tasks.py | |
parent | 39426966063b3f3deced90ef3f5d0a87801d7eab (diff) | |
download | freeipa-9f049ca14403f3696d54d186e6b1b15181f055df.tar.gz freeipa-9f049ca14403f3696d54d186e6b1b15181f055df.tar.xz freeipa-9f049ca14403f3696d54d186e6b1b15181f055df.zip |
Server Upgrade: Verify version and platform
Verify version and platform before upgrade or ipactl start|restart
Upgrade:
* do not allow upgrade on different platforms
* do not allow upgrade data with higher version than build has
Start:
* do not start services if platform mismatch
* do not start services if upgrade is needed
* do not start services if data with higher version than build has
New ipactl options:
--skip-version-check: do not validate IPA version
--ignore-service-failures (was --force): ignore if a service start fail
and continue with starting other services
--force: combine --skip-version-check and --ignore-service-failures
https://fedorahosted.org/freeipa/ticket/4904
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: David Kupka <dkupka@redhat.com>
Diffstat (limited to 'ipaplatform/base/tasks.py')
-rw-r--r-- | ipaplatform/base/tasks.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ipaplatform/base/tasks.py b/ipaplatform/base/tasks.py index ff71c2bd1..10c5e835d 100644 --- a/ipaplatform/base/tasks.py +++ b/ipaplatform/base/tasks.py @@ -24,6 +24,9 @@ This module contains default platform-specific implementations of system tasks. import pwd import grp + +from pkg_resources import parse_version + from ipaplatform.paths import paths from ipapython.ipa_log_manager import log_mgr from ipapython import ipautil @@ -208,5 +211,12 @@ class BaseTaskNamespace(object): else: log.debug('user %s exists', name) + def parse_ipa_version(self, version): + """ + :param version: textual version + :return: object implementing proper __cmp__ method for version compare + """ + return parse_version(version) + task_namespace = BaseTaskNamespace() |