[PATCH 1/2] Payloads: make DEFAULT_REPOS a part of the interface.
Vratislav Podzimek
vpodzime at redhat.com
Wed Mar 12 07:01:01 UTC 2014
On Tue, 2014-03-11 at 15:44 +0100, Ales Kozumplik wrote:
> From: Ales Kozumplik <ales at redhat.com>
>
> Source spoke knows about its existence since 069cb536. The change makes
> the DNFPayload work with the spoke too.
> ---
> pyanaconda/packaging/__init__.py | 2 ++
> pyanaconda/packaging/dnfpayload.py | 3 +--
> pyanaconda/packaging/yumpayload.py | 7 ++-----
> pyanaconda/ui/gui/spokes/source.py | 5 ++++-
> 4 files changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py
> index c85bbd1..c6ed3d4 100644
> --- a/pyanaconda/packaging/__init__.py
> +++ b/pyanaconda/packaging/__init__.py
> @@ -637,6 +637,8 @@ class ArchivePayload(ImagePayload):
> class PackagePayload(Payload):
> """ A PackagePayload installs a set of packages onto the target system. """
>
> + DEFAULT_REPOS = [productName.lower(), "rawhide"]
> +
> def __init__(self, data):
> if self.__class__ is PackagePayload:
> raise TypeError("PackagePayload is an abstract class")
> diff --git a/pyanaconda/packaging/dnfpayload.py b/pyanaconda/packaging/dnfpayload.py
> index 25b8dbc..50d9df2 100644
> --- a/pyanaconda/packaging/dnfpayload.py
> +++ b/pyanaconda/packaging/dnfpayload.py
> @@ -50,7 +50,6 @@ except ImportError as e:
> dnf = None
> rpm = None
>
> -DEFAULT_REPOS = [constants.productName.lower(), "rawhide"]
> DNF_CACHE_DIR = '/tmp/dnf.cache'
> DNF_PACKAGE_CACHE_DIR_SUFFIX = 'dnf.package.cache'
> DOWNLOAD_MPOINTS = {'/tmp',
> @@ -335,7 +334,7 @@ class DNFPayload(packaging.PackagePayload):
> @property
> def baseRepo(self):
> # is any locking needed here as in the yumpayload?
> - repo_names = [constants.BASE_REPO_NAME] + DEFAULT_REPOS
> + repo_names = [constants.BASE_REPO_NAME] + self.DEFAULT_REPOS
> for repo in self._base.repos.iter_enabled():
> if repo.id in repo_names:
> return repo.id
> diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
> index b864f12..b13edba 100644
> --- a/pyanaconda/packaging/yumpayload.py
> +++ b/pyanaconda/packaging/yumpayload.py
> @@ -70,7 +70,7 @@ from pyanaconda import iutil
> from pyanaconda.iutil import ProxyString, ProxyStringError
> from pyanaconda.i18n import _
> from pyanaconda.nm import nm_is_connected
> -from pyanaconda.product import productName, isFinal
> +from pyanaconda.product import isFinal
> from blivet.size import Size
> import blivet.util
> import blivet.arch
> @@ -86,8 +86,7 @@ from pyanaconda.localization import langcode_matches_locale
> from pykickstart.constants import GROUP_ALL, GROUP_DEFAULT, KS_MISSING_IGNORE
>
> YUM_PLUGINS = ["fastestmirror", "langpacks"]
> -DEFAULT_REPOS = [productName.lower(), "rawhide"]
> -BASE_REPO_NAMES = [BASE_REPO_NAME] + DEFAULT_REPOS
> +BASE_REPO_NAMES = [BASE_REPO_NAME] + PackagePayload.DEFAULT_REPOS
>
> import inspect
> import threading
> @@ -166,8 +165,6 @@ class YumPayload(PackagePayload):
>
> PackagePayload.__init__(self, data)
>
> - self.default_repos = [productName.lower(), "rawhide"]
> -
> self._root_dir = "/tmp/yum.root"
> self._repos_dir = "/etc/yum.repos.d,/etc/anaconda.repos.d,/tmp/updates/anaconda.repos.d,/tmp/product/anaconda.repos.d"
> self._yum = None
> diff --git a/pyanaconda/ui/gui/spokes/source.py b/pyanaconda/ui/gui/spokes/source.py
> index 477013d..1790439 100644
> --- a/pyanaconda/ui/gui/spokes/source.py
> +++ b/pyanaconda/ui/gui/spokes/source.py
> @@ -1072,7 +1072,10 @@ class SourceSpoke(NormalSpoke):
> if [c for c in name if c not in allowed_chars]:
> return N_("Invalid repository name.")
>
> - if name in [r for r in self.payload.repos if r not in self.payload.addOns] + [constants.BASE_REPO_NAME] + self.payload.default_repos:
> + cnames = [constants.BASE_REPO_NAME] + \
> + self.payload.DEFAULT_REPOS + \
> + [r for r in self.payload.repos if r not in self.payload.addOns]
This can be a generator comprehension.
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic
More information about the anaconda-patches
mailing list