|
|
|
|
@ -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)
|
|
|
|
|
|