From 8b8265601c46128141b9ce00b85046da75569d5c Mon Sep 17 00:00:00 2001 From: Ben Brown Date: Tue, 6 Feb 2018 16:11:05 +0000 Subject: Translate additionally supported list format for rpm-metadata at parse time --- ybd/morphs.py | 8 ++++++++ ybd/rpm.py | 16 ++-------------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/ybd/morphs.py b/ybd/morphs.py index d910a27..4e1059d 100644 --- a/ybd/morphs.py +++ b/ybd/morphs.py @@ -231,6 +231,14 @@ class Morphs(object): log(new_def, 'WARNING: \'unpetrify-ref\' is a deprecated field', exit=False) + if new_def.get('rpm-metadata'): + # Support two formats of 'rpm-metadata', the older + # format specifies 'rpm-metadata' as a list of packages, + # the new format specifies 'rpm-metadata' as a dictionary + # and the package list is found in it's 'packages' member. + if isinstance(new_def['rpm-metadata'], list): + new_def['rpm-metadata'] = {'packages': new_def['rpm-metadata']} + if dn is None: self._data[new_def['path']] = new_def diff --git a/ybd/rpm.py b/ybd/rpm.py index 2d12747..5daa53c 100644 --- a/ybd/rpm.py +++ b/ybd/rpm.py @@ -124,15 +124,8 @@ def generate_spec(dn, stage_dir, metafile, output, name, system): metadata = yaml.safe_load(metafile_f) with open(output, "w") as output_f: - # Support two formats of 'rpm-metadata', the older - # format specifies 'rpm-metadata' as a list of packages, - # the new format specifies 'rpm-metadata' as a dictionary - # and the package list is found in it's 'packages' member. rpm_metadata = dn['rpm-metadata'] - if isinstance(rpm_metadata, Mapping): - package_list = rpm_metadata.get('packages', []) - else: - package_list = rpm_metadata + package_list = rpm_metadata.get('packages', []) description = 'No Description' @@ -263,12 +256,7 @@ def extract_defines(dn): def extract_metafiles(system, dn, instdir, metadir): - metadata = dn['rpm-metadata'] - if isinstance(metadata, Mapping): - packages = metadata.get('packages', []) - else: - packages = metadata - + packages = dn['rpm-metadata'].get('packages', []) for package in packages: metafile = package.get('metafile', '').lstrip(os.sep) metafile = expand_macro(system, dn, metafile) -- cgit v1.2.1