Skip to content

Commit

Permalink
Merge pull request ansible#9629 from ansible/expand-variables
Browse files Browse the repository at this point in the history
Expand playbook_dir in time for loading tasks
  • Loading branch information
abadger committed Nov 25, 2014
2 parents 9a77aef + 968c56d commit 880fc4e
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions lib/ansible/playbook/play.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,21 @@ def __init__(self, playbook, ds, basedir, vault_password=None):
elif type(self.tags) != list:
self.tags = []

# make sure we have some special internal variables set
self.vars['playbook_dir'] = os.path.abspath(self.basedir)
# make sure we have some special internal variables set, which
# we use later when loading tasks and handlers
load_vars = dict()
load_vars['playbook_dir'] = os.path.abspath(self.basedir)
if self.playbook.inventory.basedir() is not None:
self.vars['inventory_dir'] = self.playbook.inventory.basedir()
load_vars['inventory_dir'] = self.playbook.inventory.basedir()
if self.playbook.inventory.src() is not None:
self.vars['inventory_file'] = self.playbook.inventory.src()
load_vars['inventory_file'] = self.playbook.inventory.src()

# template the play vars with themselves and the extra vars
# from the playbook, to make sure they're correct
all_vars = utils.combine_vars(self.vars, self.playbook.extra_vars)
all_vars = utils.combine_vars(all_vars, load_vars)
self.vars = template(basedir, self.vars, all_vars)
self.vars = utils.combine_vars(self.vars, load_vars)

# We first load the vars files from the datastructure
# so we have the default variables to pass into the roles
Expand Down Expand Up @@ -157,8 +161,7 @@ def __init__(self, playbook, ds, basedir, vault_password=None):
raise errors.AnsibleError('sudo params ("sudo", "sudo_user") and su params '
'("su", "su_user") cannot be used together')

load_vars = {}
load_vars['role_names'] = ds.get('role_names',[])
load_vars['role_names'] = ds.get('role_names', [])

self._tasks = self._load_tasks(self._ds.get('tasks', []), load_vars)
self._handlers = self._load_tasks(self._ds.get('handlers', []), load_vars)
Expand Down

0 comments on commit 880fc4e

Please sign in to comment.