def test_merge_dicts(self): dict1 = {"resource": "test"} dict2 = {"description": "Test merge dicts"} result = helpers.merge_dicts(dict1, dict2) expected = {"resource": "test", "description": "Test merge dicts"} self.assertEqual(expected, result) dict2 = {"resource": None, "description": "Test merge dicts"} result = helpers.merge_dicts(dict1, dict2) expected = {"resource": "test", "description": "Test merge dicts"} self.assertEqual(expected, result) dict2 = {"resource": "abc", "description": "Test merge dicts"} self.assertEqual(expected, result) dict2 = {"resource": {"test": 1}} self.assertRaises(TypeError, helpers.merge_dicts, dict1, dict2) dict1 = {"resource": None} dict2 = {"resource": "test", "description": "Test merge dicts"} expected = {"resource": None, "description": "Test merge dicts"} result = helpers.merge_dicts(dict1, dict2) self.assertEqual(expected, result)
def updateTemplate(self, _context, template): template_version = template.get("heat_template_version", HEAT_TEMPLATE_VERSION) if template_version != HEAT_TEMPLATE_VERSION: err_msg = "Currently only heat_template_version %s " "is supported." % HEAT_TEMPLATE_VERSION raise HeatStackError(err_msg) self.current(_context) self._template = helpers.merge_dicts(self._template, template) self._applied = False
def update_template(self, template): template_version = template.get('heat_template_version', HEAT_TEMPLATE_VERSION) if template_version != HEAT_TEMPLATE_VERSION: err_msg = ("Currently only heat_template_version %s " "is supported." % HEAT_TEMPLATE_VERSION) raise HeatStackError(err_msg) self.current() self._template = helpers.merge_dicts(self._template, template) self._applied = False
def update_template(self, template): template_version = template.get('heat_template_version', HEAT_TEMPLATE_VERSION) if template_version != HEAT_TEMPLATE_VERSION: err_msg = ("Currently only heat_template_version %s " "is supported." % HEAT_TEMPLATE_VERSION) raise HeatStackError(err_msg) self.current() cache[self._name] = helpers.merge_dicts(cache.get(self._name), template) applied[self._name] = False
def update_template(self, template): template_version = template.get('heat_template_version', HEAT_TEMPLATE_VERSION) if template_version != HEAT_TEMPLATE_VERSION: err_msg = ("Currently only heat_template_version %s " "is supported." % HEAT_TEMPLATE_VERSION) raise HeatStackError(err_msg) current = self.current() self._template = helpers.merge_dicts(self._template, template) self._applied = self._template == current and self._applied
def _serialize(obj_type): actions = {} for name, method in obj_type.methods.iteritems(): if method.usage == murano_method.MethodUsages.Action: action_id = '{0}_{1}'.format(obj.object_id, name) actions[action_id] = {'name': name, 'enabled': True} for parent in obj_type.parents: parent_actions = _serialize(parent) actions = helpers.merge_dicts(parent_actions, actions) return actions
def _serialize(obj_type): actions = {} for name, method in obj_type.methods.iteritems(): if method.usage == murano_method.MethodUsages.Action: action_id = '{0}_{1}'.format(obj.object_id, name) actions[action_id] = { 'name': name, 'enabled': True } for parent in obj_type.parents: parent_actions = _serialize(parent) actions = helpers.merge_dicts(parent_actions, actions) return actions
def test_merge_nested_dicts_with_max_levels(self): dict1 = {"a": {"ab": {"abcd": "1234"}, "abc": "1"}} dict2 = {"a": {"ab": {"y": "9"}, "abc": "123"}} expected = {"a": {"ab": {"y": "9"}, "abc": "123"}} result = helpers.merge_dicts(dict1, dict2, max_levels=2) self.assertEqual(expected, result)
def check(self, dict1, dict2, expected): result = helpers.merge_dicts(dict1, dict2) self.assertEqual(expected, result)
def _merge_actions(dict1, dict2): result = helpers.merge_dicts(dict1, dict2) for action_id in dict1: if action_id not in dict2: del result[action_id] return result
def _merge_with(self, other): return helpers.merge_dicts(self, other)