summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Martz <matt@sivel.net>2015-12-02 11:29:51 -0600
committerJames Cammarata <jimi@sngx.net>2015-12-02 12:41:18 -0500
commitca838d75e384e53e2429ee3365ce7773ca56f6d2 (patch)
tree32076bf89dffa4a26a94ed53709959a8795bcf39
parentf339184e292a402b76733eb034ff4ff357cd8326 (diff)
downloadansible-ca838d75e384e53e2429ee3365ce7773ca56f6d2.tar.gz
Get v2_playbook_on_start working
* Move self._tqm.load_callbacks() earlier to ensure that v2_on_playbook_start can fire * Pass the playbook instance to v2_on_playbook_start * Add a _file_name instance attribute to the playbook
-rw-r--r--lib/ansible/executor/playbook_executor.py6
-rw-r--r--lib/ansible/playbook/__init__.py3
-rw-r--r--lib/ansible/plugins/callback/__init__.py2
3 files changed, 8 insertions, 3 deletions
diff --git a/lib/ansible/executor/playbook_executor.py b/lib/ansible/executor/playbook_executor.py
index d647c8246a..60a416af73 100644
--- a/lib/ansible/executor/playbook_executor.py
+++ b/lib/ansible/executor/playbook_executor.py
@@ -82,6 +82,10 @@ class PlaybookExecutor:
if self._tqm is None: # we are doing a listing
entry = {'playbook': playbook_path}
entry['plays'] = []
+ else:
+ # make sure the tqm has callbacks loaded
+ self._tqm.load_callbacks()
+ self._tqm.send_callback('v2_playbook_on_start', pb)
i = 1
plays = pb.get_plays()
@@ -130,8 +134,6 @@ class PlaybookExecutor:
entry['plays'].append(new_play)
else:
- # make sure the tqm has callbacks loaded
- self._tqm.load_callbacks()
self._tqm._unreachable_hosts.update(self._unreachable_hosts)
# we are actually running plays
diff --git a/lib/ansible/playbook/__init__.py b/lib/ansible/playbook/__init__.py
index 888299e1d9..0ae443f843 100644
--- a/lib/ansible/playbook/__init__.py
+++ b/lib/ansible/playbook/__init__.py
@@ -44,6 +44,7 @@ class Playbook:
self._entries = []
self._basedir = os.getcwd()
self._loader = loader
+ self._file_name = None
@staticmethod
def load(file_name, variable_manager=None, loader=None):
@@ -61,6 +62,8 @@ class Playbook:
# set the loaders basedir
self._loader.set_basedir(self._basedir)
+ self._file_name = file_name
+
# dynamically load any plugins from the playbook directory
for name, obj in get_all_plugin_loaders():
if obj.subdir:
diff --git a/lib/ansible/plugins/callback/__init__.py b/lib/ansible/plugins/callback/__init__.py
index ccc8a7f8e5..03eb58d99d 100644
--- a/lib/ansible/plugins/callback/__init__.py
+++ b/lib/ansible/plugins/callback/__init__.py
@@ -246,7 +246,7 @@ class CallbackBase:
def v2_runner_on_file_diff(self, result, diff):
pass #no v1 correspondance
- def v2_playbook_on_start(self):
+ def v2_playbook_on_start(self, playbook):
self.playbook_on_start()
def v2_playbook_on_notify(self, result, handler):