From cac8a75135dad218ac49b016d5ce2d5d6371d075 Mon Sep 17 00:00:00 2001 From: Tomas Tomecek Date: May 22 2017 12:33:48 +0000 Subject: support dnf-1 and dnf-2 API Signed-off-by: Tomas Tomecek --- diff --git a/modularity/module_deps_differ.py b/modularity/module_deps_differ.py index ea109df..ff92e38 100755 --- a/modularity/module_deps_differ.py +++ b/modularity/module_deps_differ.py @@ -1,7 +1,11 @@ #!/usr/bin/env python3 -from pdc_client import PDCClient -import dnf import os +import sys + +import dnf + +from distutils.version import LooseVersion +from pdc_client import PDCClient FALLBACK_STREAM = 'master' @@ -58,7 +62,10 @@ class ModuleDepsDiffer(object): @staticmethod def get_base_from_repo(reponame, repourl): base = dnf.Base() - repo = dnf.repo.Repo(reponame, base.conf) + if LooseVersion(dnf.__version__) < LooseVersion("2.0.0"): + repo = dnf.repo.Repo(reponame, base.conf.cachedir) + else: + repo = dnf.repo.Repo(reponame, base.conf) repo.baseurl = repourl repo.load() repo.enable() @@ -108,7 +115,12 @@ class ModuleDepsDiffer(object): source_pkgs = [] base = ModuleDepsDiffer.get_base_from_repo('f26-source', REPO_F26_SOURCE) for pkg in pkgs: - filter_result = base.sack.query().filter(name=pkg.source_name) + if LooseVersion(dnf.__version__) < LooseVersion("2.0.0"): + source_rpm = pkgs[0].sourcerpm + source_rpm_name = source_rpm.rsplit('-', 2)[0] + else: + source_rpm_name = pkgs[0].source_name + filter_result = base.sack.query().filter(name=source_rpm_name) ModuleDepsDiffer.package_unique(filter_result) source_pkgs.append(filter_result[0]) for pkg in source_pkgs: