diff --git a/lib/ansible/runner/action_plugins/assemble.py b/lib/ansible/runner/action_plugins/assemble.py index 468dee89ff..ad6caf3c6f 100644 --- a/lib/ansible/runner/action_plugins/assemble.py +++ b/lib/ansible/runner/action_plugins/assemble.py @@ -22,6 +22,7 @@ import pipes import shutil import tempfile from ansible import utils +from ansible.runner.return_data import ReturnData class ActionModule(object): @@ -70,6 +71,7 @@ class ActionModule(object): remote_md5 = self.runner._remote_md5(conn, tmp, dest) if pathmd5 != remote_md5: + resultant = file(path).read() if self.runner.diff: dest_result = self.runner._execute_module(conn, tmp, 'slurp', "path=%s" % dest, inject=inject, persist_files=True) if 'content' in dest_result.result: @@ -88,10 +90,11 @@ class ActionModule(object): module_args = "%s src=%s dest=%s original_basename=%s" % (module_args, pipes.quote(xfered), pipes.quote(dest), pipes.quote(os.path.basename(src))) if self.runner.noop_on_check(inject): - return ReturnData(conn=conn, comm_ok=True, result=dict(changed=True), diff=dict(before_header=dest, after_header=src, before=dest_contents, after=resultant)) + return ReturnData(conn=conn, comm_ok=True, result=dict(changed=True), diff=dict(before_header=dest, after_header=src, after=resultant)) else: - res = self.runner._execute_module(conn, tmp, 'copy', module_args, inject=inject, complex_args=complex_args) - res.diff = dict(before=dest_contents, after=resultant) + res = self.runner._execute_module(conn, tmp, 'copy', module_args, inject=inject) + res.diff = dict(after=resultant) return res else: - return self.runner._execute_module(conn, tmp, 'file', module_args, inject=inject, complex_args=complex_args) + module_args = "%s src=%s dest=%s original_basename=%s" % (module_args, pipes.quote(xfered), pipes.quote(dest), pipes.quote(os.path.basename(src))) + return self.runner._execute_module(conn, tmp, 'file', module_args, inject=inject)