Python 如何从Ansible操作插件返回差异数据

Python 如何从Ansible操作插件返回差异数据,python,ansible,Python,Ansible,我正在编写一个Ansible模块,作为一个动作插件实现,类似于Ansible核心提供的模板模块和插件。我想像一个模块那样返回前后行的差异数据。我可以找到如何从实际模块返回此数据的示例,但我一直在尝试推断如何将相同的信息与动作插件的返回相关联 在lineinfle模块中,diff数据作为调用模块中的diff关键字参数返回。退出json(),如下所示: module.exit_json(changed=changed,msg=msg,backup=backupdest,diff=difflist)

我正在编写一个Ansible模块,作为一个动作插件实现,类似于Ansible核心提供的模板模块和插件。我想像一个模块那样返回前后行的差异数据。我可以找到如何从实际模块返回此数据的示例,但我一直在尝试推断如何将相同的信息与动作插件的返回相关联

lineinfle
模块中,diff数据作为调用
模块中的diff关键字参数返回。退出json()
,如下所示:

module.exit_json(changed=changed,msg=msg,backup=backupdest,diff=difflist)
然而,似乎没有插件调用过
exit_json()
,它们也不能,因为它们没有
模块
数据结构


module
上的
exit\u json()
方法似乎是在其上定义的,它依次调用
self.\u return\u formatted()
on,它似乎将
kwargs
(经过一些清理后)回显到
stdout
。所以只需将
diff
关键字添加到现有的
result
结构中?我会玩这个。

是的,添加一个
diff
关键字和值到从插件返回的现有
result
dict就足够了。以下是一个不完整的极简主义示例:

类ActionModule(ActionBase):
def运行(self,tmp=None,task_vars=None):
diff={'before':'old data\n',
'之后':'新数据\n'}
结果['diff']=diff
结果['changed']=True
返回结果