mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Some streamlining of first_available_file code
This commit is contained in:
parent
2d06ee4c0d
commit
54c9c1e25c
1 changed files with 10 additions and 20 deletions
|
@ -318,15 +318,15 @@ class Runner(object):
|
||||||
options = utils.parse_kv(self.module_args)
|
options = utils.parse_kv(self.module_args)
|
||||||
source = options.get('src', None)
|
source = options.get('src', None)
|
||||||
dest = options.get('dest', None)
|
dest = options.get('dest', None)
|
||||||
if (source is None and not 'first_available_file' in self.module_vars) or dest is None:
|
if (source is None and not 'first_available_file' in inject) or dest is None:
|
||||||
result=dict(failed=True, msg="src and dest are required")
|
result=dict(failed=True, msg="src and dest are required")
|
||||||
return ReturnData(host=conn.host, result=result)
|
return ReturnData(host=conn.host, result=result)
|
||||||
|
|
||||||
# if we have first_available_file in our vars
|
# if we have first_available_file in our vars
|
||||||
# look up the files and use the first one we find as src
|
# look up the files and use the first one we find as src
|
||||||
if 'first_available_file' in self.module_vars:
|
if 'first_available_file' in inject:
|
||||||
found = False
|
found = False
|
||||||
for fn in self.module_vars.get('first_available_file'):
|
for fn in inject.get('first_available_file'):
|
||||||
fn = utils.template(fn, inject)
|
fn = utils.template(fn, inject)
|
||||||
if os.path.exists(fn):
|
if os.path.exists(fn):
|
||||||
source = fn
|
source = fn
|
||||||
|
@ -336,12 +336,7 @@ class Runner(object):
|
||||||
results=dict(failed=True, msg="could not find src in first_available_file list")
|
results=dict(failed=True, msg="could not find src in first_available_file list")
|
||||||
return ReturnData(host=conn.host, results=results)
|
return ReturnData(host=conn.host, results=results)
|
||||||
|
|
||||||
if self.module_vars is None:
|
source = utils.template(source, inject)
|
||||||
self.module_vars = {}
|
|
||||||
lookup_table = self.module_vars.copy()
|
|
||||||
lookup_table.update(inject)
|
|
||||||
|
|
||||||
source = utils.template(source, lookup_table)
|
|
||||||
source = utils.path_dwim(self.basedir, source)
|
source = utils.path_dwim(self.basedir, source)
|
||||||
|
|
||||||
local_md5 = utils.md5(source)
|
local_md5 = utils.md5(source)
|
||||||
|
@ -363,7 +358,7 @@ class Runner(object):
|
||||||
|
|
||||||
# run the copy module
|
# run the copy module
|
||||||
args = "src=%s dest=%s" % (tmp_src, dest)
|
args = "src=%s dest=%s" % (tmp_src, dest)
|
||||||
exec_rc = self._execute_module(conn, tmp, module, args, inject=lookup_table)
|
exec_rc = self._execute_module(conn, tmp, module, args, inject=inject)
|
||||||
else:
|
else:
|
||||||
# no need to transfer the file, already correct md5
|
# no need to transfer the file, already correct md5
|
||||||
result = dict(changed=False, md5sum=remote_md5, transferred=False)
|
result = dict(changed=False, md5sum=remote_md5, transferred=False)
|
||||||
|
@ -442,13 +437,13 @@ class Runner(object):
|
||||||
options = utils.parse_kv(self.module_args)
|
options = utils.parse_kv(self.module_args)
|
||||||
source = options.get('src', None)
|
source = options.get('src', None)
|
||||||
dest = options.get('dest', None)
|
dest = options.get('dest', None)
|
||||||
if (source is None and 'first_available_file' not in self.module_vars) or dest is None:
|
if (source is None and 'first_available_file' not in inject) or dest is None:
|
||||||
result = dict(failed=True, msg="src and dest are required")
|
result = dict(failed=True, msg="src and dest are required")
|
||||||
return ReturnData(host=conn.host, comm_ok=False, result=result)
|
return ReturnData(host=conn.host, comm_ok=False, result=result)
|
||||||
|
|
||||||
# if we have first_available_file in our vars
|
# if we have first_available_file in our vars
|
||||||
# look up the files and use the first one we find as src
|
# look up the files and use the first one we find as src
|
||||||
if 'first_available_file' in self.module_vars:
|
if 'first_available_file' in inject:
|
||||||
found = False
|
found = False
|
||||||
for fn in self.module_vars.get('first_available_file'):
|
for fn in self.module_vars.get('first_available_file'):
|
||||||
fn = utils.template(fn, inject)
|
fn = utils.template(fn, inject)
|
||||||
|
@ -460,19 +455,14 @@ class Runner(object):
|
||||||
result = dict(failed=True, msg="could not find src in first_available_file list")
|
result = dict(failed=True, msg="could not find src in first_available_file list")
|
||||||
return ReturnData(host=conn.host, comm_ok=False, result=result)
|
return ReturnData(host=conn.host, comm_ok=False, result=result)
|
||||||
|
|
||||||
if self.module_vars is None:
|
source = utils.template(source, inject)
|
||||||
self.module_vars = {}
|
|
||||||
lookup_table = self.module_vars.copy()
|
|
||||||
lookup_table.update(inject)
|
|
||||||
|
|
||||||
source = utils.template(source, lookup_table)
|
|
||||||
|
|
||||||
# install the template module
|
# install the template module
|
||||||
copy_module = self._transfer_module(conn, tmp, 'copy')
|
copy_module = self._transfer_module(conn, tmp, 'copy')
|
||||||
|
|
||||||
# template the source data locally
|
# template the source data locally
|
||||||
try:
|
try:
|
||||||
resultant = utils.template_from_file(self.basedir, source, lookup_table)
|
resultant = utils.template_from_file(self.basedir, source, inject)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
result = dict(failed=True, msg=str(e))
|
result = dict(failed=True, msg=str(e))
|
||||||
return ReturnData(host=conn.host, comm_ok=False, result=result)
|
return ReturnData(host=conn.host, comm_ok=False, result=result)
|
||||||
|
@ -481,7 +471,7 @@ class Runner(object):
|
||||||
|
|
||||||
# run the COPY module
|
# run the COPY module
|
||||||
args = "src=%s dest=%s" % (xfered, dest)
|
args = "src=%s dest=%s" % (xfered, dest)
|
||||||
exec_rc = self._execute_module(conn, tmp, copy_module, args, inject=lookup_table)
|
exec_rc = self._execute_module(conn, tmp, copy_module, args, inject=inject)
|
||||||
|
|
||||||
# modify file attribs if needed
|
# modify file attribs if needed
|
||||||
if exec_rc.is_successful():
|
if exec_rc.is_successful():
|
||||||
|
|
Loading…
Reference in a new issue