Make hostvars work post refactoring

pull/645/merge
Michael DeHaan 12 years ago
parent b0eedfbf92
commit 6e84374c2a

@ -552,9 +552,11 @@ class Runner(object):
host_variables = self.inventory.get_variables(host)
port = host_variables.get('ansible_ssh_port', self.remote_port)
inject = self.setup_cache[host].copy()
inject['hostvars'] = self.setup_cache
inject.update(host_variables)
inject.update(self.module_vars)
items = self.module_vars.get('items', [])
if isinstance(items, basestring) and items.startswith("$"):
items = items.replace("$","")
@ -646,7 +648,8 @@ class Runner(object):
self.callbacks.on_unreachable(host, result.result)
else:
data = result.result
result.result['item'] = inject.get('item', None)
if 'item' in inject:
result.result['item'] = inject['item']
if 'skipped' in data:
self.callbacks.on_skipped(result.host)
elif not result.is_successful():

@ -192,16 +192,6 @@ def varReplace(raw, vars):
return ''.join(done)
def _template(text, vars):
''' run a text buffer through the templating engine '''
if vars is None:
raise Exception('vars is none')
vars = vars.copy()
# FIXME: do this in runner code
vars['hostvars'] = vars.get('setup_cache', {})
return varReplace(unicode(text), vars)
def template(text, vars):
''' run a text buffer through the templating engine until it no longer changes '''
@ -212,7 +202,7 @@ def template(text, vars):
if (depth > 20):
raise errors.AnsibleError("template recursion depth exceeded")
prev_text = text
text = _template(text, vars)
text = varReplace(unicode(text), vars)
return text
def template_from_file(basedir, path, vars):

Loading…
Cancel
Save