diff --git a/files/stat b/files/stat index 6e7dcd62bcb..26a2f6953eb 100644 --- a/files/stat +++ b/files/stat @@ -34,6 +34,12 @@ options: required: false default: no aliases: [] + get_md5: + description: + - Whether to return the md5 sum o fthe file + required: false + default: yes + aliases: [] author: Bruce Pennypacker ''' @@ -51,6 +57,9 @@ EXAMPLES = ''' register: p - debug: msg="Path exists and is a directory" when: p.stat.isdir is defined and p.stat.isdir == true + +# Don't do md5 checksum +- stat: path=/path/to/myhugefile get_md5=no ''' import os @@ -62,7 +71,8 @@ def main(): module = AnsibleModule( argument_spec = dict( path = dict(required=True), - follow = dict(default='no', type='bool') + follow = dict(default='no', type='bool'), + get_md5 = dict(default='yes', type='bool') ), supports_check_mode = True ) @@ -70,6 +80,7 @@ def main(): path = module.params.get('path') path = os.path.expanduser(path) follow = module.params.get('follow') + get_md5 = module.params.get('get_md5') try: if follow: @@ -80,7 +91,7 @@ def main(): if e.errno == errno.ENOENT: d = { 'exists' : False } module.exit_json(changed=False, stat=d) - + module.fail_json(msg = e.strerror) mode = st.st_mode @@ -89,6 +100,7 @@ def main(): d = { 'exists' : True, 'mode' : S_IMODE(mode), + 'octal' : "%04o" % S_IMODE(mode), 'isdir' : S_ISDIR(mode), 'ischr' : S_ISCHR(mode), 'isblk' : S_ISBLK(mode), @@ -121,7 +133,7 @@ def main(): if S_ISLNK(mode): d['lnk_source'] = os.path.realpath(path) - if S_ISREG(mode): + if S_ISREG(mode) and get_md5: d['md5'] = module.md5(path) try: @@ -130,7 +142,7 @@ def main(): d['pw_name'] = pw.pw_name except: pass - + module.exit_json(changed=False, stat=d)