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 71cf5fb..3b6d59c 100644 --- a/pyanaconda/packaging/dnfpayload.py +++ b/pyanaconda/packaging/dnfpayload.py @@ -554,13 +554,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