将parameter passing给无用的callback函数

我最近已经注意到存在可靠的callback,这似乎是在给定条件下修改某些默认值的一种方法。

然而,我已经search了一些有用的文档以及几本书,谷歌和源代码,但是对于我来说,我找不到这个简单问题的答案:

如何改变影响无用callback行为的configuration项?

-Eg:出现邮件callback,查看代码,可以configuration为通过可configuration的SMTP主机将邮件发送到可configuration的电子邮件地址。 如何/何时/何时应该指定这些?

但是,如果邮件callback(和callback的基类)是任何事情,实际上似乎没有标准的configuration机制..

例如,邮件从环境variables中获取SMTPHOST(如果存在),并且:显示为<root>(如果邮件程序坚持将[email protected]作为有效地址,则不起作用)。

看看文档和一些现有的callback插件,一种方法似乎是使用环境。

例如, jabbercallback只是使用'more'env vars来允许更细粒度的configuration。

这似乎是很多其他callback的情况,我找不到任何使用可变variables来实现此目的的例子。

不过,这大概是可能的 – 检查CallbackBase#_get_item方法,看起来有可能通过可信的variables来进行适当的configuration。

不过,我认为使用环境variables似乎是某种forms的标准 – 虽然我同意它不是一个完全确定的标准,如果它确实是一个

正如你所说,callback有点模糊,可能是这样的,如果你需要的话,你会知道该做什么。

在邮件callback的情况下,最好的办法就是将现有插件子类化,以添加您感觉可能需要的configurationvariables。

我个人认为,callback大体上被认为是一个高级function,许多可用的callback更多的是作为一个基础(在某些情况下,作为一个快速的黑客得到的东西)被需要的function。 但这纯粹是一种感觉。

我不知道如果我正确地得到你,但我认为你是正确的黑箱理想的callback或官方模块,

我将python模块映像为unix“commands”,它们可能会有很大的不同,并且接受不同的选项,而这种架构使得团队很难进行大的架构变更,因为这意味着修改/扩展所有现有的模块要求运行模块的进度报告https://github.com/ansible/ansible/issues/3887这意味着他们无法检查模块是否卡住&#xFF09;

为了控制configuration或改变/坚持他们我select另一个apporach比只写callback。

我使用dynamic库存function编写了一个围绕ansible的图层,我使用Outputcallback插件将输出格式化为json,以便能够parsing成功运行的输出并将更改状态/数据保存到我的库存pipe理程序中。 这样,我可以通过简单的任务调用来更改variables,甚至可以将主机添加到操作手册中,并自动将其应用到我的库存中,而无需修改或扩展很多,并保持与未来版本的相对兼容性。