From 7dfeb5ec0513a58502eb83aa2900e7c5fb0d478e Mon Sep 17 00:00:00 2001
From: Watson Sato <wsato@redhat.com>
Date: Tue, 8 Sep 2020 11:29:57 +0200
Subject: [PATCH] Fix load of product platform mapping
The product specific mappings were overriding the common mappings,
instead of being merged with them.
---
ssg/yaml.py | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/ssg/yaml.py b/ssg/yaml.py
index 22cf5bad66..d8856e52c9 100644
--- a/ssg/yaml.py
+++ b/ssg/yaml.py
@@ -13,6 +13,7 @@
PKG_MANAGER_TO_CONFIG_FILE,
XCCDF_PLATFORM_TO_PACKAGE)
from .constants import DEFAULT_UID_MIN
+from .utils import merge_dicts
try:
from yaml import CSafeLoader as yaml_SafeLoader
@@ -139,10 +140,11 @@ def open_raw(yaml_file):
def open_environment(build_config_yaml, product_yaml):
contents = open_raw(build_config_yaml)
- # Load common platform package mappings,
- # any specific mapping in product_yaml will override the default
- contents["platform_package_overrides"] = XCCDF_PLATFORM_TO_PACKAGE
contents.update(open_raw(product_yaml))
+ platform_package_overrides = contents.get("platform_package_overrides", {})
+ # Merge common platform package mappings, while keeping product specific mappings
+ contents["platform_package_overrides"] = merge_dicts(XCCDF_PLATFORM_TO_PACKAGE,
+ platform_package_overrides)
contents.update(_get_implied_properties(contents))
return contents