[PATCH 2/3] Add a parameter to environmentGroups for wheter to include optionlist.

David Shea dshea at redhat.com
Fri Jan 16 20:13:16 UTC 2015


The default is to include optionlist, which is the original behavior.
This adds an option to exlucde it and return only the groups that are
part of an environment's grouplist.
---
 pyanaconda/packaging/__init__.py   | 2 +-
 pyanaconda/packaging/dnfpayload.py | 7 +++++--
 pyanaconda/packaging/yumpayload.py | 7 +++++--
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py
index a5004bd..deff84c 100644
--- a/pyanaconda/packaging/__init__.py
+++ b/pyanaconda/packaging/__init__.py
@@ -1020,7 +1020,7 @@ class PackagePayload(Payload):
     def selectEnvironment(self, environmentid):
         raise NotImplementedError()
 
-    def environmentGroups(self, environmentid):
+    def environmentGroups(self, environmentid, optional=True):
         raise NotImplementedError()
 
     @property
diff --git a/pyanaconda/packaging/dnfpayload.py b/pyanaconda/packaging/dnfpayload.py
index 4f5b3be..970dc6d 100644
--- a/pyanaconda/packaging/dnfpayload.py
+++ b/pyanaconda/packaging/dnfpayload.py
@@ -573,13 +573,16 @@ class DNFPayload(packaging.PackagePayload):
             raise packaging.NoSuchGroup(environmentid)
         return (env.ui_name, env.ui_description)
 
-    def environmentGroups(self, environmentid):
+    def environmentGroups(self, environmentid, optional=True):
         env = self._base.comps.environment_by_pattern(environmentid)
         if env is None:
             raise packaging.NoSuchGroup(environmentid)
         group_ids = (id_.name for id_ in env.group_ids)
         option_ids = (id_.name for id_ in env.option_ids)
-        return list(itertools.chain(group_ids, option_ids))
+        if optional:
+            return list(itertools.chain(group_ids, option_ids))
+        else:
+            return list(group_ids)
 
     def environmentHasOption(self, environmentid, grpid):
         env = self._base.comps.environment_by_pattern(environmentid)
diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
index 58ace3a..1910968 100644
--- a/pyanaconda/packaging/yumpayload.py
+++ b/pyanaconda/packaging/yumpayload.py
@@ -1001,7 +1001,7 @@ reposdir=%s
             for group in environment.groups:
                 self.selectGroup(group)
 
-    def environmentGroups(self, environmentid):
+    def environmentGroups(self, environmentid, optional=True):
         groups = self._yumGroups
         if not groups:
             return []
@@ -1011,7 +1011,10 @@ reposdir=%s
                 raise NoSuchGroup(environmentid)
 
             environment = groups.return_environment(environmentid)
-            return environment.groups + environment.options
+            if optional:
+                return environment.groups + environment.options
+            else:
+                return environment.groups
 
     ###
     ### METHODS FOR WORKING WITH GROUPS
-- 
2.1.0



More information about the anaconda-patches mailing list