mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Switch from calling exit_json() to returning results
Well organized programs should only have a few successful exit points. This commit moves all of the successful exit points for the file module into the main() function. Other functions return their results to the main function which can then choose whether there is more procesing to do before exit or not.
This commit is contained in:
parent
cac11f9b80
commit
160f2ace51
1 changed files with 7 additions and 8 deletions
|
@ -370,7 +370,7 @@ def ensure_directory(path, b_path, prev_state, follow, recurse):
|
|||
|
||||
if prev_state == 'absent':
|
||||
if module.check_mode:
|
||||
module.exit_json(changed=True, diff=diff)
|
||||
return {'changed': True, 'diff': diff}
|
||||
curpath = ''
|
||||
|
||||
try:
|
||||
|
@ -411,7 +411,7 @@ def ensure_directory(path, b_path, prev_state, follow, recurse):
|
|||
if recurse:
|
||||
changed |= recursive_set_attributes(to_bytes(file_args['path'], errors='surrogate_or_strict'), follow, file_args)
|
||||
|
||||
module.exit_json(path=path, changed=changed, diff=diff)
|
||||
return {'path': path, 'changed': changed, 'diff': diff}
|
||||
|
||||
|
||||
def ensure_symlink(path, b_path, src, b_src, prev_state, follow, force):
|
||||
|
@ -508,7 +508,7 @@ def ensure_symlink(path, b_path, src, b_src, prev_state, follow, force):
|
|||
'path': path})
|
||||
|
||||
if module.check_mode and not os.path.exists(b_path):
|
||||
module.exit_json(dest=path, src=src, changed=changed, diff=diff)
|
||||
return {'dest': path, 'src': src, 'changed': changed, 'diff': diff}
|
||||
|
||||
# Whenever we create a link to a nonexistent target we know that the nonexistent target
|
||||
# cannot have any permissions set on it. Skip setting those and emit a warning (the user
|
||||
|
@ -519,7 +519,7 @@ def ensure_symlink(path, b_path, src, b_src, prev_state, follow, force):
|
|||
else:
|
||||
changed = module.set_fs_attributes_if_different(file_args, changed, diff, expand=False)
|
||||
|
||||
module.exit_json(dest=path, src=src, changed=changed, diff=diff)
|
||||
return {'dest': path, 'src': src, 'changed': changed, 'diff': diff}
|
||||
|
||||
|
||||
def ensure_hardlink(path, b_path, src, b_src, prev_state, follow, force):
|
||||
|
@ -572,7 +572,7 @@ def ensure_hardlink(path, b_path, src, b_src, prev_state, follow, force):
|
|||
changed = True
|
||||
if os.path.exists(b_path):
|
||||
if os.stat(b_path).st_ino == os.stat(b_src).st_ino:
|
||||
module.exit_json(path=path, changed=False)
|
||||
return {'path': path, 'changed': False}
|
||||
elif not force:
|
||||
raise AnsibleModuleError(results={'msg': 'Cannot link: different hard link exists at destination',
|
||||
'dest': path, 'src': src})
|
||||
|
@ -610,11 +610,11 @@ def ensure_hardlink(path, b_path, src, b_src, prev_state, follow, force):
|
|||
'path': path})
|
||||
|
||||
if module.check_mode and not os.path.exists(b_path):
|
||||
module.exit_json(dest=path, src=src, changed=changed, diff=diff)
|
||||
return {'dest': path, 'src': src, 'changed': changed, 'diff': diff}
|
||||
|
||||
changed = module.set_fs_attributes_if_different(file_args, changed, diff, expand=False)
|
||||
|
||||
module.exit_json(dest=path, src=src, changed=changed, diff=diff)
|
||||
return {'dest': path, 'src': src, 'changed': changed, 'diff': diff}
|
||||
|
||||
|
||||
def main():
|
||||
|
@ -681,7 +681,6 @@ def main():
|
|||
result = execute_touch(path, b_path, prev_state, follow)
|
||||
elif state == 'absent':
|
||||
result = ensure_absent(path, b_path, prev_state)
|
||||
module.exit_json(**result)
|
||||
|
||||
module.exit_json(**result)
|
||||
|
||||
|
|
Loading…
Reference in a new issue