summaryrefslogtreecommitdiffstats
path: root/ipaserver
diff options
context:
space:
mode:
authorChristian Heimes <cheimes@redhat.com>2016-11-21 10:24:17 +0100
committerMartin Babinsky <mbabinsk@redhat.com>2016-11-24 15:46:40 +0100
commit2cbaf156045769b54150e4d4c3c1071f164a16fb (patch)
treee56ed216116635fb02adae9a58fc8b6e2e6ce1d5 /ipaserver
parent526bcea705d04895aa6b09bce996ac340783d1d0 (diff)
downloadfreeipa-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.py6
-rw-r--r--ipaserver/install/server/replicainstall.py10
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):