|
|
@ -347,27 +347,8 @@ class OC(object):
|
|
|
|
_, changed = self.merge(value, node, changed)
|
|
|
|
_, changed = self.merge(value, node, changed)
|
|
|
|
|
|
|
|
|
|
|
|
elif isinstance(value, list) and key in destination.keys():
|
|
|
|
elif isinstance(value, list) and key in destination.keys():
|
|
|
|
try:
|
|
|
|
if destination[key] != source[key]:
|
|
|
|
if set(destination[key]) != set(destination[key] +
|
|
|
|
destination[key] = source[key]
|
|
|
|
source[key]):
|
|
|
|
|
|
|
|
destination[key] = list(set(destination[key] +
|
|
|
|
|
|
|
|
source[key]))
|
|
|
|
|
|
|
|
changed = True
|
|
|
|
|
|
|
|
except TypeError:
|
|
|
|
|
|
|
|
for new_dict in source[key]:
|
|
|
|
|
|
|
|
found = False
|
|
|
|
|
|
|
|
for old_dict in destination[key]:
|
|
|
|
|
|
|
|
if ('name' in old_dict.keys() and
|
|
|
|
|
|
|
|
'name' in new_dict.keys()):
|
|
|
|
|
|
|
|
if old_dict['name'] == new_dict['name']:
|
|
|
|
|
|
|
|
destination[key].remove(old_dict)
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
if old_dict == new_dict:
|
|
|
|
|
|
|
|
found = True
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not found:
|
|
|
|
|
|
|
|
destination[key].append(new_dict)
|
|
|
|
|
|
|
|
changed = True
|
|
|
|
changed = True
|
|
|
|
|
|
|
|
|
|
|
|
elif (key not in destination.keys() or
|
|
|
|
elif (key not in destination.keys() or
|
|
|
|