summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Brown <ben.brown@codethink.co.uk>2018-02-06 16:11:05 +0000
committerBen Brown <ben.brown@codethink.co.uk>2018-02-09 13:27:33 +0000
commit8b8265601c46128141b9ce00b85046da75569d5c (patch)
treed6343ec50116d36636af43696553fb56e6b3afb1
parent8c04ee6c7ad144d0a2300145c01d652fabaf550a (diff)
downloadybd-8b8265601c46128141b9ce00b85046da75569d5c.tar.gz
Translate additionally supported list format for rpm-metadata at parse time
-rw-r--r--ybd/morphs.py8
-rw-r--r--ybd/rpm.py16
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)