Move inventory.set_playbook_basedir from ansible-playbook to playbook constructor

parent cc28fd89
...@@ -158,9 +158,6 @@ def main(args): ...@@ -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:
......
...@@ -57,7 +57,8 @@ class Inventory(object): ...@@ -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
......
...@@ -159,6 +159,10 @@ class PlayBook(object): ...@@ -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:
......
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