Reuse inventory object created by ansible-playbook in playbook

This reduces the amount of times an inventory script has to be invoked.
pull/1693/merge
Daniel Hokka Zakrisson 12 years ago
parent d703f92077
commit 900790af41

@ -105,7 +105,7 @@ def main(args):
pb = ansible.playbook.PlayBook( pb = ansible.playbook.PlayBook(
playbook=playbook, playbook=playbook,
module_path=options.module_path, module_path=options.module_path,
host_list=options.inventory, inventory=inventory,
forks=options.forks, forks=options.forks,
remote_user=options.remote_user, remote_user=options.remote_user,
remote_pass=sshpass, remote_pass=sshpass,
@ -120,7 +120,6 @@ def main(args):
extra_vars=extra_vars, extra_vars=extra_vars,
private_key_file=options.private_key_file, private_key_file=options.private_key_file,
only_tags=only_tags, only_tags=only_tags,
subset=options.subset,
) )
if options.listhosts: if options.listhosts:

@ -60,7 +60,8 @@ class PlayBook(object):
sudo_user = C.DEFAULT_SUDO_USER, sudo_user = C.DEFAULT_SUDO_USER,
extra_vars = None, extra_vars = None,
only_tags = None, only_tags = None,
subset = C.DEFAULT_SUBSET): subset = C.DEFAULT_SUBSET,
inventory = None):
""" """
playbook: path to a playbook file playbook: path to a playbook file
@ -77,6 +78,7 @@ class PlayBook(object):
runner_callbacks: more callbacks, this time for the runner API runner_callbacks: more callbacks, this time for the runner API
stats: holds aggregrate data about events occuring to each host stats: holds aggregrate data about events occuring to each host
sudo: if not specified per play, requests all plays use sudo mode sudo: if not specified per play, requests all plays use sudo mode
inventory: can be specified instead of host_list to use a pre-existing inventory object
""" """
self.SETUP_CACHE = SETUP_CACHE self.SETUP_CACHE = SETUP_CACHE
@ -107,8 +109,11 @@ class PlayBook(object):
self.private_key_file = private_key_file self.private_key_file = private_key_file
self.only_tags = only_tags self.only_tags = only_tags
self.inventory = ansible.inventory.Inventory(host_list) if inventory is None:
self.inventory.subset(subset) self.inventory = ansible.inventory.Inventory(host_list)
self.inventory.subset(subset)
else:
self.inventory = inventory
self.basedir = os.path.dirname(playbook) self.basedir = os.path.dirname(playbook)
(self.playbook, self.play_basedirs) = self._load_playbook_from_file(playbook) (self.playbook, self.play_basedirs) = self._load_playbook_from_file(playbook)

Loading…
Cancel
Save