From 54c9c1e25cb111cf831f099459879deee4ea002d Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Fri, 20 Jul 2012 12:56:34 -0400 Subject: [PATCH] Some streamlining of first_available_file code --- lib/ansible/runner/__init__.py | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index e3deedc56ac..6b1a7bf6e1b 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -318,15 +318,15 @@ class Runner(object): options = utils.parse_kv(self.module_args) source = options.get('src', 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") return ReturnData(host=conn.host, result=result) # if we have first_available_file in our vars # 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 - for fn in self.module_vars.get('first_available_file'): + for fn in inject.get('first_available_file'): fn = utils.template(fn, inject) if os.path.exists(fn): source = fn @@ -336,12 +336,7 @@ class Runner(object): results=dict(failed=True, msg="could not find src in first_available_file list") return ReturnData(host=conn.host, results=results) - if self.module_vars is None: - self.module_vars = {} - lookup_table = self.module_vars.copy() - lookup_table.update(inject) - - source = utils.template(source, lookup_table) + source = utils.template(source, inject) source = utils.path_dwim(self.basedir, source) local_md5 = utils.md5(source) @@ -363,7 +358,7 @@ class Runner(object): # run the copy module 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: # no need to transfer the file, already correct md5 result = dict(changed=False, md5sum=remote_md5, transferred=False) @@ -442,13 +437,13 @@ class Runner(object): options = utils.parse_kv(self.module_args) source = options.get('src', 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") return ReturnData(host=conn.host, comm_ok=False, result=result) # if we have first_available_file in our vars # 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 for fn in self.module_vars.get('first_available_file'): 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") return ReturnData(host=conn.host, comm_ok=False, result=result) - if self.module_vars is None: - self.module_vars = {} - lookup_table = self.module_vars.copy() - lookup_table.update(inject) - - source = utils.template(source, lookup_table) + source = utils.template(source, inject) # install the template module copy_module = self._transfer_module(conn, tmp, 'copy') # template the source data locally try: - resultant = utils.template_from_file(self.basedir, source, lookup_table) + resultant = utils.template_from_file(self.basedir, source, inject) except Exception, e: result = dict(failed=True, msg=str(e)) return ReturnData(host=conn.host, comm_ok=False, result=result) @@ -481,7 +471,7 @@ class Runner(object): # run the COPY module 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 if exec_rc.is_successful():