mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
get_url: return no change in check mode when checksum matches (#53070)
Signed-off-by: Tony Finch <dot@dotat.at>
This commit is contained in:
parent
00efa26cdb
commit
ccad79d162
2 changed files with 20 additions and 6 deletions
|
@ -566,12 +566,6 @@ def main():
|
||||||
filename = url_filename(info['url'])
|
filename = url_filename(info['url'])
|
||||||
dest = os.path.join(dest, filename)
|
dest = os.path.join(dest, filename)
|
||||||
|
|
||||||
# If the remote URL exists, we're done with check mode
|
|
||||||
if module.check_mode:
|
|
||||||
os.remove(tmpsrc)
|
|
||||||
result['changed'] = True
|
|
||||||
module.exit_json(msg=info.get('msg', ''), **result)
|
|
||||||
|
|
||||||
# raise an error if there is no tmpsrc file
|
# raise an error if there is no tmpsrc file
|
||||||
if not os.path.exists(tmpsrc):
|
if not os.path.exists(tmpsrc):
|
||||||
os.remove(tmpsrc)
|
os.remove(tmpsrc)
|
||||||
|
@ -599,6 +593,13 @@ def main():
|
||||||
os.remove(tmpsrc)
|
os.remove(tmpsrc)
|
||||||
module.fail_json(msg="Destination %s is not writable" % (os.path.dirname(dest)), **result)
|
module.fail_json(msg="Destination %s is not writable" % (os.path.dirname(dest)), **result)
|
||||||
|
|
||||||
|
if module.check_mode:
|
||||||
|
if os.path.exists(tmpsrc):
|
||||||
|
os.remove(tmpsrc)
|
||||||
|
result['changed'] = ('checksum_dest' not in result or
|
||||||
|
result['checksum_src'] != result['checksum_dest'])
|
||||||
|
module.exit_json(msg=info.get('msg', ''), **result)
|
||||||
|
|
||||||
backup_file = None
|
backup_file = None
|
||||||
if result['checksum_src'] != result['checksum_dest']:
|
if result['checksum_src'] != result['checksum_dest']:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -268,6 +268,19 @@
|
||||||
that:
|
that:
|
||||||
- result is not changed
|
- result is not changed
|
||||||
|
|
||||||
|
- name: test checksum match in check mode
|
||||||
|
get_url:
|
||||||
|
url: 'https://{{ httpbin_host }}/get'
|
||||||
|
dest: '{{ remote_tmp_dir }}/test'
|
||||||
|
checksum: 'sha256:7036ede810fad2b5d2e7547ec703cae8da61edbba43c23f9d7203a0239b765c4.'
|
||||||
|
check_mode: True
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- name: Assert that check mode was green
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- result is not changed
|
||||||
|
|
||||||
# https://github.com/ansible/ansible/issues/27617
|
# https://github.com/ansible/ansible/issues/27617
|
||||||
|
|
||||||
- name: set role facts
|
- name: set role facts
|
||||||
|
|
Loading…
Reference in a new issue