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.
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
````````````````````````
......
......@@ -121,7 +121,10 @@ class PlayBook(object):
self.inventory = inventory
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):
for t in tokens[1:]:
(k,v) = t.split("=", 1)
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)
for p in plays:
if 'vars' not in p:
......
......@@ -80,8 +80,11 @@ class Play(object):
self._update_vars_files_for_host(None)
self._tasks = self._load_tasks(self._ds.get('tasks', []))
self._handlers = self._load_tasks(self._ds.get('handlers', []))
load_vars = {}
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:
self.tags = []
......
......@@ -339,6 +339,8 @@ class Runner(object):
inject['groups'] = self.inventory.groups_list()
inject['vars'] = self.module_vars
inject['environment'] = self.environment
if self.inventory.basedir() is not None:
inject['inventory_dir'] = self.inventory.basedir()
# allow with_foo to work in playbooks...
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