diff options
author | Christian Heimes <cheimes@redhat.com> | 2016-11-21 10:24:17 +0100 |
---|---|---|
committer | Martin Babinsky <mbabinsk@redhat.com> | 2016-11-24 15:46:40 +0100 |
commit | 2cbaf156045769b54150e4d4c3c1071f164a16fb (patch) | |
tree | e56ed216116635fb02adae9a58fc8b6e2e6ce1d5 /ipaserver | |
parent | 526bcea705d04895aa6b09bce996ac340783d1d0 (diff) | |
download | freeipa-2cbaf156045769b54150e4d4c3c1071f164a16fb.tar.gz freeipa-2cbaf156045769b54150e4d4c3c1071f164a16fb.tar.xz freeipa-2cbaf156045769b54150e4d4c3c1071f164a16fb.zip |
Replace LooseVersion
pylint is having a hard time with distutils.version in tox's virtual
envs. virtualenv uses some tricks to provide a virtual distutils
package, pylint can't cope with.
https://github.com/PyCQA/pylint/issues/73 suggests to use pkg_resources
instead. pkg_resources' version parser has some more benefits, e.g. PEP
440 conformity. But pkg_resources.parse_version() is a heavy weight solution
with reduced functionality, e.g. no access to major version.
For API_VERSION and plugin version we can use a much simpler and faster
approach.
https://fedorahosted.org/freeipa/ticket/6468
Signed-off-by: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
Diffstat (limited to 'ipaserver')
-rw-r--r-- | ipaserver/install/krbinstance.py | 6 | ||||
-rw-r--r-- | ipaserver/install/server/replicainstall.py | 10 |
2 files changed, 8 insertions, 8 deletions
diff --git a/ipaserver/install/krbinstance.py b/ipaserver/install/krbinstance.py index 61c50bb69..fddbde75c 100644 --- a/ipaserver/install/krbinstance.py +++ b/ipaserver/install/krbinstance.py @@ -24,6 +24,7 @@ import shutil import os import pwd import socket + import dns.name from ipaserver.install import service @@ -39,7 +40,6 @@ from ipaserver.install import replication from ipaserver.install import ldapupdate from ipaserver.install import certs -from distutils import version from ipaplatform.constants import constants from ipaplatform.tasks import tasks from ipaplatform.paths import paths @@ -292,8 +292,8 @@ class KrbInstance(service.Service): raiseonerr=False, capture_output=True) if result.returncode == 0: verstr = result.output.split()[-1] - ver = version.LooseVersion(verstr) - min = version.LooseVersion(MIN_KRB5KDC_WITH_WORKERS) + ver = tasks.parse_ipa_version(verstr) + min = tasks.parse_ipa_version(MIN_KRB5KDC_WITH_WORKERS) if ver >= min: workers = True # Write down config file diff --git a/ipaserver/install/server/replicainstall.py b/ipaserver/install/server/replicainstall.py index a7b333c46..ee1147d3c 100644 --- a/ipaserver/install/server/replicainstall.py +++ b/ipaserver/install/server/replicainstall.py @@ -4,7 +4,6 @@ from __future__ import print_function -from distutils.version import LooseVersion import dns.exception as dnsexception import dns.name as dnsname import dns.resolver as dnsresolver @@ -15,6 +14,7 @@ import socket import tempfile import traceback +from pkg_resources import parse_version import six from ipapython import ipaldap, ipautil, sysrestore @@ -510,12 +510,12 @@ def check_remote_version(api): finally: client.disconnect() - remote_version = env['version'] - version = api.env.version - if LooseVersion(remote_version) > LooseVersion(version): + remote_version = parse_version(env['version']) + api_version = parse_version(api.env.version) + if remote_version > api_version: raise RuntimeError( "Cannot install replica of a server of higher version ({}) than" - "the local version ({})".format(remote_version, version)) + "the local version ({})".format(remote_version, api_version)) def common_check(no_ntp): |