From 166e583379d3b5e99aa0ede1c6921631f2aad4c0 Mon Sep 17 00:00:00 2001 From: Ganesh Nalawade Date: Fri, 1 Nov 2019 11:25:28 +0530 Subject: [PATCH] Fix network plugin config option load from collection (#64046) * Fix network plugin config option load from collection Fixes #63975 * Update the complete sub-plugin name within network connection plugins to handle sub-plugin in collection scenario. * Fix review comments (cherry picked from commit 60276d3d8da8496e45a5c320113b5a8d7deaeb3d) --- changelogs/fragments/network_plugin_collection_fix.yaml | 2 ++ lib/ansible/plugins/connection/httpapi.py | 5 +++-- lib/ansible/plugins/connection/netconf.py | 5 +++-- lib/ansible/plugins/connection/network_cli.py | 5 +++-- 4 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 changelogs/fragments/network_plugin_collection_fix.yaml diff --git a/changelogs/fragments/network_plugin_collection_fix.yaml b/changelogs/fragments/network_plugin_collection_fix.yaml new file mode 100644 index 00000000000000..71ced12824bd00 --- /dev/null +++ b/changelogs/fragments/network_plugin_collection_fix.yaml @@ -0,0 +1,2 @@ +bugfixes: +- Can't use plugin options vars in playbook when using collections (https://github.com/ansible/ansible/issues/63975) diff --git a/lib/ansible/plugins/connection/httpapi.py b/lib/ansible/plugins/connection/httpapi.py index 37facee8f1c4f7..abe88d9a5392e2 100644 --- a/lib/ansible/plugins/connection/httpapi.py +++ b/lib/ansible/plugins/connection/httpapi.py @@ -201,8 +201,9 @@ def __init__(self, play_context, new_stdin, *args, **kwargs): self.httpapi = httpapi_loader.get(self._network_os, self) if self.httpapi: - self._sub_plugin = {'type': 'httpapi', 'name': self._network_os, 'obj': self.httpapi} - self.queue_message('vvvv', 'loaded API plugin for network_os %s' % self._network_os) + self._sub_plugin = {'type': 'httpapi', 'name': self.httpapi._load_name, 'obj': self.httpapi} + self.queue_message('vvvv', 'loaded API plugin %s from path %s for network_os %s' % + (self.httpapi._load_name, self.httpapi._original_path, self._network_os)) else: raise AnsibleConnectionFailure('unable to load API plugin for network_os %s' % self._network_os) diff --git a/lib/ansible/plugins/connection/netconf.py b/lib/ansible/plugins/connection/netconf.py index 22987f6a34b89d..c45cf2d3c02bd9 100644 --- a/lib/ansible/plugins/connection/netconf.py +++ b/lib/ansible/plugins/connection/netconf.py @@ -227,8 +227,9 @@ def __init__(self, play_context, new_stdin, *args, **kwargs): netconf = netconf_loader.get(self._network_os, self) if netconf: - self._sub_plugin = {'type': 'netconf', 'name': self._network_os, 'obj': netconf} - self.queue_message('log', 'loaded netconf plugin for network_os %s' % self._network_os) + self._sub_plugin = {'type': 'netconf', 'name': netconf._load_name, 'obj': netconf} + self.queue_message('vvvv', 'loaded netconf plugin %s from path %s for network_os %s' % + (netconf._load_name, netconf._original_path, self._network_os)) else: netconf = netconf_loader.get("default", self) self._sub_plugin = {'type': 'netconf', 'name': 'default', 'obj': netconf} diff --git a/lib/ansible/plugins/connection/network_cli.py b/lib/ansible/plugins/connection/network_cli.py index 6611d91be51a5b..88ce1a1aa7fa8e 100644 --- a/lib/ansible/plugins/connection/network_cli.py +++ b/lib/ansible/plugins/connection/network_cli.py @@ -330,8 +330,9 @@ def __init__(self, play_context, new_stdin, *args, **kwargs): self.cliconf = cliconf_loader.get(self._network_os, self) if self.cliconf: - self.queue_message('vvvv', 'loaded cliconf plugin for network_os %s' % self._network_os) - self._sub_plugin = {'type': 'cliconf', 'name': self._network_os, 'obj': self.cliconf} + self._sub_plugin = {'type': 'cliconf', 'name': self.cliconf._load_name, 'obj': self.cliconf} + self.queue_message('vvvv', 'loaded cliconf plugin %s from path %s for network_os %s' % + (self.cliconf._load_name, self.cliconf._original_path, self._network_os)) else: self.queue_message('vvvv', 'unable to load cliconf for network_os %s' % self._network_os) else: