Commit 6f2a0c60 by Michael DeHaan

Merge branch 'ansible_inventory_basedir' of git://github.com/stoned/ansible into test_basedir

Conflicts:
	lib/ansible/runner/__init__.py
parents 774bf8ab abe126fb
...@@ -146,6 +146,8 @@ period, without the rest of the domain. ...@@ -146,6 +146,8 @@ period, without the rest of the domain.
Don't worry about any of this unless you think you need it. You'll know when you do. Don't worry about any of this unless you think you need it. You'll know when you do.
Also available, *inventory_dir* is the pathname of the directory holding Ansible's inventory host file.
Variable File Separation Variable File Separation
```````````````````````` ````````````````````````
......
...@@ -121,7 +121,10 @@ class PlayBook(object): ...@@ -121,7 +121,10 @@ class PlayBook(object):
self.inventory = inventory self.inventory = inventory
self.basedir = os.path.dirname(playbook) or '.' self.basedir = os.path.dirname(playbook) or '.'
(self.playbook, self.play_basedirs) = self._load_playbook_from_file(playbook) vars = {}
if self.inventory.basedir() is not None:
vars['inventory_dir'] = self.inventory.basedir()
(self.playbook, self.play_basedirs) = self._load_playbook_from_file(playbook, vars)
# ***************************************************** # *****************************************************
...@@ -171,7 +174,7 @@ class PlayBook(object): ...@@ -171,7 +174,7 @@ class PlayBook(object):
for t in tokens[1:]: for t in tokens[1:]:
(k,v) = t.split("=", 1) (k,v) = t.split("=", 1)
incvars[k] = utils.template(basedir, v, incvars) incvars[k] = utils.template(basedir, v, incvars)
included_path = utils.path_dwim(basedir, tokens[0]) included_path = utils.path_dwim(basedir, utils.template(basedir, tokens[0], incvars))
(plays, basedirs) = self._load_playbook_from_file(included_path, incvars) (plays, basedirs) = self._load_playbook_from_file(included_path, incvars)
for p in plays: for p in plays:
if 'vars' not in p: if 'vars' not in p:
......
...@@ -80,8 +80,11 @@ class Play(object): ...@@ -80,8 +80,11 @@ class Play(object):
self._update_vars_files_for_host(None) self._update_vars_files_for_host(None)
self._tasks = self._load_tasks(self._ds.get('tasks', [])) load_vars = {}
self._handlers = self._load_tasks(self._ds.get('handlers', [])) if self.playbook.inventory.basedir() is not None:
load_vars['inventory_dir'] = self.playbook.inventory.basedir();
self._tasks = self._load_tasks(self._ds.get('tasks', []), load_vars)
self._handlers = self._load_tasks(self._ds.get('handlers', []), load_vars)
if self.tags is None: if self.tags is None:
self.tags = [] self.tags = []
......
...@@ -339,6 +339,8 @@ class Runner(object): ...@@ -339,6 +339,8 @@ class Runner(object):
inject['groups'] = self.inventory.groups_list() inject['groups'] = self.inventory.groups_list()
inject['vars'] = self.module_vars inject['vars'] = self.module_vars
inject['environment'] = self.environment inject['environment'] = self.environment
if self.inventory.basedir() is not None:
inject['inventory_dir'] = self.inventory.basedir()
# allow with_foo to work in playbooks... # allow with_foo to work in playbooks...
items = None items = None
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment