Implment copy with an actual minion-side module such that we can get md5sum's and

onchange events like Puppet's file providers do.
This commit is contained in:
Michael DeHaan 2012-02-24 05:15:28 -05:00
parent 3e010b9500
commit 62dee290c5

41
copy
View file

@ -1 +1,40 @@
# copy is built-in to ansible's core, so the module here is just a placeholder
#!/usr/bin/python
import sys
import os
try:
import json
except ImportError:
import simplejson as json
source = sys.argv[1]
dest = sys.argv[2]
# raise an error if there is no source file
if not os.path.exists(source):
print json.dumps({
"failed" : 1,
"msg" : "Source %s failed to transfer" % source
})
sys.exit(1)
md5sum = None
changed = False
if os.path.exists(dest):
md5sum = os.popen("md5sum %s" % dest).read()
os.system("cp %s %s" % (source, dest))
md5sum2 = os.popen("md5sum %s" % dest).read()
if md5sum != md5sum2:
changed = True
# mission accomplished
print json.dumps({
"md5sum" : md5sum2,
"changed" : changed
})