[PATCH 1/2] Payloads: make DEFAULT_REPOS a part of the interface.
Ales Kozumplik
akozumpl at redhat.com
Tue Mar 11 14:44:18 UTC 2014
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]
+ if name in cnames:
return N_("Repository name conflicts with internal repository name.")
return None
--
1.8.5.3
More information about the anaconda-patches
mailing list