Move inventory.set_playbook_basedir from ansible-playbook to playbook constructor

This commit is contained in:
Serge van Ginderachter 2014-03-19 11:09:38 +01:00
parent cc28fd891b
commit f8ea93c732
3 changed files with 6 additions and 4 deletions

View file

@ -158,9 +158,6 @@ def main(args):
# run all playbooks specified on the command line # run all playbooks specified on the command line
for playbook in args: for playbook in args:
# let inventory know which playbooks are using so it can know the basedirs
inventory.set_playbook_basedir(os.path.dirname(playbook))
stats = callbacks.AggregateStats() stats = callbacks.AggregateStats()
playbook_cb = callbacks.PlaybookCallbacks(verbose=utils.VERBOSITY) playbook_cb = callbacks.PlaybookCallbacks(verbose=utils.VERBOSITY)
if options.step: if options.step:

View file

@ -57,7 +57,8 @@ class Inventory(object):
self._groups_list = {} self._groups_list = {}
self._pattern_cache = {} self._pattern_cache = {}
# to be set by calling set_playbook_basedir by ansible-playbook self._inventory_basedir = inventory.basedir()
# to be set by calling set_playbook_basedir by playbook code
self._playbook_basedir = None self._playbook_basedir = None
# the inventory object holds a list of groups # the inventory object holds a list of groups

View file

@ -159,6 +159,10 @@ class PlayBook(object):
self.basedir = os.path.dirname(playbook) or '.' self.basedir = os.path.dirname(playbook) or '.'
utils.plugins.push_basedir(self.basedir) utils.plugins.push_basedir(self.basedir)
# let inventory know the playbook basedir so it can load more vars
self.inventory.set_playbook_basedir(self.basedir)
vars = extra_vars.copy() vars = extra_vars.copy()
vars['playbook_dir'] = self.basedir vars['playbook_dir'] = self.basedir
if self.inventory.basedir() is not None: if self.inventory.basedir() is not None: