deep_merge, despite the name, doesn't do fully deep merging;
it recurses through the whole object, but does not deepcopy
component objects at the lowest level. This meant that
self.base_config could be corrupted by the second deep_merge
(if base_config contained keys that were augmented by
parsed_yaml, which was often the case, for things like overrides).
Signed-off-by: Dan Mick <dan.mick@redhat.com>
sha1 = self.base_config.sha1
if config.suite_verify_ceph_hash:
- full_job_config = dict()
- deep_merge(full_job_config, self.base_config.to_dict())
+ full_job_config = copy.deepcopy(self.base_config.to_dict())
deep_merge(full_job_config, parsed_yaml)
flavor = util.get_install_task_flavor(full_job_config)
# Get package versions for this sha1, os_type and flavor. If