evidenced hereとして、私はAnsibleで奇妙な新しい振る舞いに気付きました。メソッドを使用した失敗。 'module'オブジェクトに属性 'ダンプ'がありません
an Ansible role named "degoss"私はシステムにいくつかのテストファイルと共にGossをインストールし、テストを実行してからそれらのすべての痕跡を削除します。出力をフォーマットするのにa callback plugin、Gossを呼び出すのにa custom moduleを使用しています。
テストが失敗した、というよりも賢明な出力を得て、(私の知る限り2.3程度)Ansibleの新しいバージョンでは、私は以下の直感的エラーメッセージと私のプラグインから一切の出力を得る:
[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'
を
ansible.plugins.callback.default.CallbackModule
で検索すると、dumps
という呼び出しはありません。 ansible.plugins.callback.CallbackBase
で検索すると、3つのダンプが表示されます。私自身のコールバック・プラグインとカスタムモジュールでは、/except
ブロックがすべて私の呼び出しをjson.dumps
にラップしています。
さらに悪いことに、問題を一貫して再現できないようだということです。私はそれをローカルに複製することはできず、タスクが失敗した場合にのみ表示されます。私の成功/失敗ロジックは以下の通りです:
succeed(module, **result) if rc == 0 else fail(
module, "Goss Tests Failed.", **result
)
マイsucceed
/fail
方法は、次のような定義されています。
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)
任意のアイデア?ここで
優れたキャッチ、私は私のモジュールを更新しました、今、機能を再現しようとします。 –
確認済み:これが問題でした。 'absolute_import'を追加すると修正されました!どうもありがとうございます! –