[Yum-devel] [PATCH] Add a prelistenabledrepos plugin point, so tmprepo. etc. can add repos.

James Antill james at and.org
Wed Jun 5 20:39:12 UTC 2013


---
 yum/plugins.py |    1 +
 yum/repos.py   |    8 ++++++++
 2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/yum/plugins.py b/yum/plugins.py
index 9ddcae6..a10e4fb 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -84,6 +84,7 @@ SLOT_TO_CONDUIT = {
     'args': 'ArgsPluginConduit',
     'predownload': 'DownloadPluginConduit',
     'postdownload': 'DownloadPluginConduit',
+    'prelistenabledrepos': 'PreRepoSetupPluginConduit',
     'prereposetup': 'PreRepoSetupPluginConduit',
     'postreposetup': 'PostRepoSetupPluginConduit',
     'close': 'PluginConduit',
diff --git a/yum/repos.py b/yum/repos.py
index e519bc1..eba5579 100644
--- a/yum/repos.py
+++ b/yum/repos.py
@@ -69,6 +69,10 @@ class RepoStorage:
         self._cache_enabled_repos = []
         self.quick_enable_disable = {}
 
+        #  This allows plugins to setup a repo. just before the first
+        # listEnabled() call.
+        self._list_enabled_hasrun = False
+
     def retrieveAllMD(self):
         """ Download metadata for all enabled repositories,
             based on mdpolicy.
@@ -246,6 +250,10 @@ class RepoStorage:
     def listEnabled(self):
         """return list of enabled repo objects"""
 
+        if not self._list_enabled_hasrun:
+            self.ayum.plugins.run('prelistenabledrepos')
+            self._list_enabled_hasrun = True
+
         if (self._cache_enabled_repos is not None and
             not self.quick_enable_disable):
             return self._cache_enabled_repos
-- 
1.7.7.6



More information about the Yum-devel mailing list