def run(self, terms, variables, **kwargs):
if len(terms) <= 1:
raise AnsibleUndefinedVariable("Mergedict takes 2 options")
if not (isinstance(terms[0], dict) or isinstance(terms[0], list)):
raise AnsibleUndefinedVariable("First option must be a dict or list")
if not isinstance(terms[1], dict):
raise AnsibleUndefinedVariable("Second option must be a dict")
result=[]
temp={}
to_data = terms[0]
from_dict = terms[1]
for item in to_data:
if isinstance(to_data, list):
temp = self.dict_merge(from_dict.copy(), item)
if isinstance(to_data, dict):
if len(terms) == 3:
if isinstance(terms[2], list):
if item not in terms[2]:
continue
else:
raise AnsibleUndefinedVariable("Third option must be a list")
temp = self.dict_merge(from_dict.copy(), to_data[item])
temp['key'] = item
result.append(temp)
return result
评论列表
文章目录