[aws_s3] Fix uploading src option on the target machine to a bucket (#39023)
* Fix backward compatibility for uploading src option on the target machine to a bucket * Allow the module to handle errors for nonexistent files
This commit is contained in:
parent
ede47910f8
commit
b8a93c12e2
1 changed files with 12 additions and 6 deletions
|
@ -20,7 +20,7 @@ __metaclass__ = type
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from ansible.errors import AnsibleError, AnsibleAction, AnsibleActionFail
|
from ansible.errors import AnsibleError, AnsibleAction, AnsibleActionFail, AnsibleFileNotFound
|
||||||
from ansible.module_utils._text import to_text
|
from ansible.module_utils._text import to_text
|
||||||
from ansible.plugins.action import ActionBase
|
from ansible.plugins.action import ActionBase
|
||||||
|
|
||||||
|
@ -43,11 +43,17 @@ class ActionModule(ActionBase):
|
||||||
new_module_args = self._task.args.copy()
|
new_module_args = self._task.args.copy()
|
||||||
if source:
|
if source:
|
||||||
source = os.path.expanduser(source)
|
source = os.path.expanduser(source)
|
||||||
try:
|
|
||||||
source = self._loader.get_real_file(self._find_needle('files', source))
|
# For backward compatibility check if the file exists on the remote; it should take precedence
|
||||||
new_module_args['src'] = source
|
if not self._remote_file_exists(source):
|
||||||
except AnsibleError as e:
|
try:
|
||||||
raise AnsibleActionFail(to_text(e))
|
source = self._loader.get_real_file(self._find_needle('files', source))
|
||||||
|
new_module_args['src'] = source
|
||||||
|
except AnsibleFileNotFound as e:
|
||||||
|
# module handles error message for nonexistent files
|
||||||
|
new_module_args['src'] = source
|
||||||
|
except AnsibleError as e:
|
||||||
|
raise AnsibleActionFail(to_text(e))
|
||||||
|
|
||||||
# execute the aws_s3 module now, with the updated args
|
# execute the aws_s3 module now, with the updated args
|
||||||
result.update(self._execute_module(module_args=new_module_args, task_vars=task_vars))
|
result.update(self._execute_module(module_args=new_module_args, task_vars=task_vars))
|
||||||
|
|
Loading…
Reference in a new issue