diff --git a/lib/ansible/executor/task_executor.py b/lib/ansible/executor/task_executor.py index 6d4fe3c7c9..fdc57b82a9 100644 --- a/lib/ansible/executor/task_executor.py +++ b/lib/ansible/executor/task_executor.py @@ -29,7 +29,6 @@ from ansible import constants as C from ansible.errors import AnsibleError, AnsibleParserError, AnsibleUndefinedVariable from ansible.playbook.conditional import Conditional from ansible.playbook.task import Task -from ansible.plugins import connection_loader, action_loader from ansible.template import Templar from ansible.utils.listify import listify_lookup_plugin_terms from ansible.utils.unicode import to_unicode @@ -400,7 +399,7 @@ class TaskExecutor: # Because this is an async task, the action handler is async. However, # we need the 'normal' action handler for the status check, so get it # now via the action_loader - normal_handler = action_loader.get( + normal_handler = self._shared_loader_obj.action_loader.get( 'normal', task=async_task, connection=self._connection, @@ -457,7 +456,7 @@ class TaskExecutor: except OSError: conn_type = "paramiko" - connection = connection_loader.get(conn_type, self._play_context, self._new_stdin) + connection = self._shared_loader_obj.connection_loader.get(conn_type, self._play_context, self._new_stdin) if not connection: raise AnsibleError("the connection plugin '%s' was not found" % conn_type) @@ -468,7 +467,7 @@ class TaskExecutor: Returns the correct action plugin to handle the requestion task action ''' - if self._task.action in action_loader: + if self._task.action in self._shared_loader_obj.action_loader: if self._task.async != 0: raise AnsibleError("async mode is not supported with the %s module" % module_name) handler_name = self._task.action @@ -477,7 +476,7 @@ class TaskExecutor: else: handler_name = 'async' - handler = action_loader.get( + handler = self._shared_loader_obj.action_loader.get( handler_name, task=self._task, connection=connection, diff --git a/lib/ansible/plugins/strategies/__init__.py b/lib/ansible/plugins/strategies/__init__.py index 5cfb80388f..1ecc95e87e 100644 --- a/lib/ansible/plugins/strategies/__init__.py +++ b/lib/ansible/plugins/strategies/__init__.py @@ -31,7 +31,7 @@ from ansible.playbook.handler import Handler from ansible.playbook.helpers import load_list_of_blocks from ansible.playbook.included_file import IncludedFile from ansible.playbook.role import hash_params -from ansible.plugins import _basedirs, filter_loader, lookup_loader, module_loader +from ansible.plugins import _basedirs, action_loader, connection_loader, filter_loader, lookup_loader, module_loader from ansible.template import Templar try: @@ -51,7 +51,9 @@ class SharedPluginLoaderObj: the forked processes over the queue easier ''' def __init__(self): - self.basedirs = _basedirs[:] + self.basedirs = _basedirs[:] + self.action_loader = action_loader + self.connection_loader = connection_loader self.filter_loader = filter_loader self.lookup_loader = lookup_loader self.module_loader = module_loader