Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用方法失败;'模块“对象”没有属性“转储”_Python_Ansible - Fatal编程技术网

Python 使用方法失败;'模块“对象”没有属性“转储”

Python 使用方法失败;'模块“对象”没有属性“转储”,python,ansible,Python,Ansible,如前所述,我注意到Ansible中出现了一种奇怪的新行为 我有一个软件,它与一些测试文件一起安装到系统中,执行测试,然后删除它们的所有痕迹。我用它格式化输出并调用Goss 在Ansible 2.3左右的较新版本中,当测试失败,而不是获得合理的输出时,据我所知,我会收到以下不直观的错误消息,并且我的插件没有任何输出: [WARNING]: Failure using method (v2_runner_on_failed) in callback plugin (<ansible.plugi

如前所述,我注意到Ansible中出现了一种奇怪的新行为

我有一个软件,它与一些测试文件一起安装到系统中,执行测试,然后删除它们的所有痕迹。我用它格式化输出并调用Goss

在Ansible 2.3左右的较新版本中,当测试失败,而不是获得合理的输出时,据我所知,我会收到以下不直观的错误消息,并且我的插件没有任何输出:

[WARNING]: Failure using method (v2_runner_on_failed) in callback plugin
(<ansible.plugins.callback.default.CallbackModule object at 0x7fb5e92efd50>):
'module' object has no attribute 'dumps'
我的成功/失败方法定义如下:

def succeed(module, **kwargs):
    module.exit_json(changed=False, failed=False, goss_failed=False, **kwargs)

def fail(module, message, **kwargs):
    module.fail_json(msg=message, failed=True, goss_failed=True, **kwargs)
有什么想法吗?

这里有一个猜测: ansible在ansible.plugins.callback中创建了一个模块,该模块恰好也包含一个。当你使用回调插件时,你会得到ansible.plugins.callback.json,它不包含转储。您可以通过将from\uuuuu future\uuuuu import absolute\u import添加到您的插件来修复此问题

无法复制它的原因可能是您正在本地使用Python 3,它默认为绝对导入。

这里有一个猜测: ansible在ansible.plugins.callback中创建了一个模块,该模块恰好也包含一个。当你使用回调插件时,你会得到ansible.plugins.callback.json,它不包含转储。您可以通过将from\uuuuu future\uuuuu import absolute\u import添加到您的插件来修复此问题


您无法复制它的原因可能是您正在本地使用Python 3,它默认为绝对导入。

除了接受的答案之外,只想指出有两个文件需要添加导入语句

playbooks/callback_插件/sqs.py

playbooks/callback_plugins/task_timing.py

我没有更新task_timing.py文件,因此错误仍然存在。在这里指出这一点,以防其他人也面临同样的问题


来源:

除了接受的答案之外,我只想指出有两个文件需要添加import语句

playbooks/callback_插件/sqs.py

playbooks/callback_plugins/task_timing.py

我没有更新task_timing.py文件,因此错误仍然存在。在这里指出这一点,以防其他人也面临同样的问题


来源:

非常好,我已经更新了我的模块,现在将尝试复制功能。确认:这就是问题所在。添加绝对_导入修复了它!非常感谢你!非常好,我已经更新了我的模块,现在将尝试复制功能。确认:这就是问题所在。添加绝对_导入修复了它!非常感谢你!
def succeed(module, **kwargs):
    module.exit_json(changed=False, failed=False, goss_failed=False, **kwargs)

def fail(module, message, **kwargs):
    module.fail_json(msg=message, failed=True, goss_failed=True, **kwargs)