mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Cause copy module to fail on empty string as source (#27975)
* Fail if an empty string is set as src for copy module Fixes #27363 * Cleanup task formatting on copy tests Use multi-line YAML Add debug statements with verbosity: 1 rather than leave them in there commented out. * Add test for empty string as source * Do more checks in order to add more specific errors messages Add more integration tests for the various failure scenarios. Cleanup some syntax on existing integration test tasks.
This commit is contained in:
parent
d69440c4ef
commit
a8e4c9be7a
3 changed files with 434 additions and 212 deletions
|
@ -408,12 +408,14 @@ class ActionModule(ActionBase):
|
||||||
local_follow = boolean(self._task.args.get('local_follow', True), strict=False)
|
local_follow = boolean(self._task.args.get('local_follow', True), strict=False)
|
||||||
|
|
||||||
result['failed'] = True
|
result['failed'] = True
|
||||||
if (source is None and content is None) or dest is None:
|
if not source and content is None:
|
||||||
result['msg'] = "src (or content) and dest are required"
|
result['msg'] = 'src (or content) is required'
|
||||||
elif source is not None and content is not None:
|
elif not dest:
|
||||||
result['msg'] = "src and content are mutually exclusive"
|
result['msg'] = 'dest is required'
|
||||||
|
elif source and content is not None:
|
||||||
|
result['msg'] = 'src and content are mutually exclusive'
|
||||||
elif content is not None and dest is not None and dest.endswith("/"):
|
elif content is not None and dest is not None and dest.endswith("/"):
|
||||||
result['msg'] = "dest must be a file if content is defined"
|
result['msg'] = "can not use content with a dir as dest"
|
||||||
else:
|
else:
|
||||||
del result['failed']
|
del result['failed']
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
# output_dir is hardcoded in test/runner/lib/executor.py and created there
|
# output_dir is hardcoded in test/runner/lib/executor.py and created there
|
||||||
remote_dir: '{{ output_dir }}'
|
remote_dir: '{{ output_dir }}'
|
||||||
|
|
||||||
- name: create remote unprivileged remote user
|
- name: Create remote unprivileged remote user
|
||||||
user:
|
user:
|
||||||
name: '{{ remote_unprivileged_user }}'
|
name: '{{ remote_unprivileged_user }}'
|
||||||
register: user
|
register: user
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0700
|
mode: 0700
|
||||||
|
|
||||||
- name: 'duplicate authorized_keys'
|
- name: Duplicate authorized_keys
|
||||||
copy:
|
copy:
|
||||||
src: $HOME/.ssh/authorized_keys
|
src: $HOME/.ssh/authorized_keys
|
||||||
dest: '{{ user.home }}/.ssh/authorized_keys'
|
dest: '{{ user.home }}/.ssh/authorized_keys'
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
state: absent
|
state: absent
|
||||||
connection: local
|
connection: local
|
||||||
|
|
||||||
- name: remote unprivileged remote user
|
- name: Remote unprivileged remote user
|
||||||
user:
|
user:
|
||||||
name: '{{ remote_unprivileged_user }}'
|
name: '{{ remote_unprivileged_user }}'
|
||||||
state: absent
|
state: absent
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue