got first_available working with copy
This commit is contained in:
parent
11f1d99a5b
commit
a6ca133da8
1 changed files with 21 additions and 27 deletions
|
@ -43,14 +43,12 @@ class ActionModule(ActionBase):
|
|||
dest = self._task.args.get('dest', None)
|
||||
raw = boolean(self._task.args.get('raw', 'no'))
|
||||
force = boolean(self._task.args.get('force', 'yes'))
|
||||
faf = task_vars.get('first_available_file', None)
|
||||
|
||||
# FIXME: first available file needs to be reworked somehow...
|
||||
#if (source is None and content is None and not 'first_available_file' in inject) or dest is None:
|
||||
# result=dict(failed=True, msg="src (or content) and dest are required")
|
||||
# return ReturnData(conn=conn, result=result)
|
||||
#elif (source is not None or 'first_available_file' in inject) and content is not None:
|
||||
# result=dict(failed=True, msg="src and content are mutually exclusive")
|
||||
# return ReturnData(conn=conn, result=result)
|
||||
if (source is None and content is None and faf is None) or dest is None:
|
||||
return dict(failed=True, msg="src (or content) and dest are required")
|
||||
elif (source is not None or faf is not None) and content is not None:
|
||||
return dict(failed=True, msg="src and content are mutually exclusive")
|
||||
|
||||
# Check if the source ends with a "/"
|
||||
source_trailing_slash = False
|
||||
|
@ -65,7 +63,7 @@ class ActionModule(ActionBase):
|
|||
try:
|
||||
# If content comes to us as a dict it should be decoded json.
|
||||
# We need to encode it back into a string to write it out.
|
||||
if isinstance(content, dict):
|
||||
if isinstance(content, dict) or isinstance(content, list):
|
||||
content_tempfile = self._create_content_tempfile(json.dumps(content))
|
||||
else:
|
||||
content_tempfile = self._create_content_tempfile(content)
|
||||
|
@ -73,27 +71,23 @@ class ActionModule(ActionBase):
|
|||
except Exception as err:
|
||||
return dict(failed=True, msg="could not write content temp file: %s" % err)
|
||||
|
||||
###############################################################################################
|
||||
# FIXME: first_available_file needs to be reworked?
|
||||
###############################################################################################
|
||||
# if we have first_available_file in our vars
|
||||
# look up the files and use the first one we find as src
|
||||
#elif 'first_available_file' in inject:
|
||||
# found = False
|
||||
# for fn in inject.get('first_available_file'):
|
||||
# fn_orig = fn
|
||||
# fnt = template.template(self.runner.basedir, fn, inject)
|
||||
# fnd = utils.path_dwim(self.runner.basedir, fnt)
|
||||
# if not os.path.exists(fnd) and '_original_file' in inject:
|
||||
# fnd = utils.path_dwim_relative(inject['_original_file'], 'files', fnt, self.runner.basedir, check=False)
|
||||
# if os.path.exists(fnd):
|
||||
# source = fnd
|
||||
# found = True
|
||||
# break
|
||||
# if not found:
|
||||
# results = dict(failed=True, msg="could not find src in first_available_file list")
|
||||
# return ReturnData(conn=conn, result=results)
|
||||
###############################################################################################
|
||||
elif faf:
|
||||
found = False
|
||||
for fn in faf:
|
||||
fn_orig = fn
|
||||
fnt = self._templar.template(fn)
|
||||
fnd = self._loader.path_dwim_relative(self._task._role._role_path, 'files', fnt)
|
||||
of = task_vars.get('_original_file', None)
|
||||
if not os.path.exists(fnd) and of is not None:
|
||||
fnd = self._loader.path_dwim_relative(of, 'files', fnt)
|
||||
if os.path.exists(fnd):
|
||||
source = fnd
|
||||
found = True
|
||||
break
|
||||
if not found:
|
||||
return dict(failed=True, msg="could not find src in first_available_file list")
|
||||
else:
|
||||
if self._task._role is not None:
|
||||
source = self._loader.path_dwim_relative(self._task._role._role_path, 'files', source)
|
||||
|
|
Loading…
Reference in a new issue