Make shell outs to md5sum work on FreeBSD and OS X
Tested with OS X local connection and Linux remote. The paths to the md5sum and md5 commands are hardcoded to the most common location. This will definitely fail if the commands are elsewhere, or if the md5 command doesn't support the -q 'quiet' option.
This commit is contained in:
parent
0fb59f0bdd
commit
e6b76a59c5
3 changed files with 7 additions and 7 deletions
|
@ -476,8 +476,8 @@ class Runner(object):
|
||||||
# compare old and new md5 for support of change hooks
|
# compare old and new md5 for support of change hooks
|
||||||
local_md5 = None
|
local_md5 = None
|
||||||
if os.path.exists(dest):
|
if os.path.exists(dest):
|
||||||
local_md5 = os.popen("md5sum %s" % dest).read().split()[0]
|
local_md5 = os.popen("/usr/bin/md5sum %(file)s 2> /dev/null || /sbin/md5 -q %(file)s" % {"file": dest}).read().split()[0]
|
||||||
remote_md5 = self._low_level_exec_command(conn, "md5sum %s" % source, tmp, True).split()[0]
|
remote_md5 = self._low_level_exec_command(conn, "/usr/bin/md5sum %(file)s 2> /dev/null || /sbin/md5 -q %(file)s" % {"file": source}, tmp, True).split()[0]
|
||||||
|
|
||||||
if remote_md5 != local_md5:
|
if remote_md5 != local_md5:
|
||||||
# create the containing directories, if needed
|
# create the containing directories, if needed
|
||||||
|
@ -486,7 +486,7 @@ class Runner(object):
|
||||||
|
|
||||||
# fetch the file and check for changes
|
# fetch the file and check for changes
|
||||||
conn.fetch_file(source, dest)
|
conn.fetch_file(source, dest)
|
||||||
new_md5 = os.popen("md5sum %s" % dest).read().split()[0]
|
new_md5 = os.popen("/usr/bin/md5sum %(file)s 2> /dev/null || /sbin/md5 -q %(file)s" % {"file": dest}).read().split()[0]
|
||||||
if new_md5 != remote_md5:
|
if new_md5 != remote_md5:
|
||||||
result = dict(failed=True, msg="md5 mismatch", md5sum=new_md5)
|
result = dict(failed=True, msg="md5 mismatch", md5sum=new_md5)
|
||||||
return ReturnData(host=conn.host, result=result)
|
return ReturnData(host=conn.host, result=result)
|
||||||
|
|
|
@ -60,9 +60,9 @@ if not os.path.exists(src):
|
||||||
md5sum = None
|
md5sum = None
|
||||||
changed = False
|
changed = False
|
||||||
if os.path.exists(dest):
|
if os.path.exists(dest):
|
||||||
md5sum = os.popen("md5sum %s" % dest).read().split()[0]
|
md5sum = os.popen("/usr/bin/md5sum %(file)s 2> /dev/null || /sbin/md5 -q %(file)s" % {"file": dest}).read().split()[0]
|
||||||
|
|
||||||
md5sum2 = os.popen("md5sum %s" % src).read().split()[0]
|
md5sum2 = os.popen("/usr/bin/md5sum %(file)s 2> /dev/null || /sbin/md5 -q %(file)s" % {"file": src}).read().split()[0]
|
||||||
|
|
||||||
if md5sum != md5sum2:
|
if md5sum != md5sum2:
|
||||||
os.system("cp %s %s" % (src, dest))
|
os.system("cp %s %s" % (src, dest))
|
||||||
|
|
|
@ -345,7 +345,7 @@ md5sum = None
|
||||||
if not os.path.exists(ansible_file):
|
if not os.path.exists(ansible_file):
|
||||||
changed = True
|
changed = True
|
||||||
else:
|
else:
|
||||||
md5sum = os.popen("md5sum %s" % ansible_file).read().split()[0]
|
md5sum = os.popen("/usr/bin/md5sum %(file)s 2> /dev/null || /sbin/md5 -q %(file)s" % {"file": ansible_file}).read().split()[0]
|
||||||
|
|
||||||
# Get some basic facts in case facter or ohai are not installed
|
# Get some basic facts in case facter or ohai are not installed
|
||||||
for (k, v) in ansible_facts().items():
|
for (k, v) in ansible_facts().items():
|
||||||
|
@ -394,7 +394,7 @@ reformat = json.dumps(setup_options, sort_keys=True, indent=4)
|
||||||
f.write(reformat)
|
f.write(reformat)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
md5sum2 = os.popen("md5sum %s" % ansible_file).read().split()[0]
|
md5sum2 = os.popen("/usr/bin/md5sum %(file)s 2> /dev/null || /sbin/md5 -q %(file)s" % {"file": ansible_file}).read().split()[0]
|
||||||
|
|
||||||
if md5sum != md5sum2:
|
if md5sum != md5sum2:
|
||||||
changed = True
|
changed = True
|
||||||
|
|
Loading…
Reference in a new issue