[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