map network_os to ncclient device_params (#36819) (#36913)

* map network_os to ncclient device_params

Fixes #36786

* update device map

* Add default netconf fallback plugin

(cherry picked from commit b12e90311f)
pull/36933/head
Ganesh Nalawade 7 years ago committed by GitHub
parent 617659a33c
commit 3e123d8298
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -157,6 +157,10 @@ except ImportError:
logging.getLogger('ncclient').setLevel(logging.INFO)
network_os_device_param_map = {
"nxos": "nexus"
}
class Connection(ConnectionBase):
"""NetConf connections"""
@ -238,7 +242,7 @@ class Connection(ConnectionBase):
if network_os:
display.display('discovered network_os %s' % network_os, log_only=True)
device_params = {'name': (network_os or 'default')}
device_params = {'name': (network_os_device_param_map.get(network_os) or network_os or 'default')}
ssh_config = os.getenv('ANSIBLE_NETCONF_SSH_CONFIG', False)
if ssh_config in BOOLEANS_TRUE:
@ -276,7 +280,8 @@ class Connection(ConnectionBase):
if self._netconf:
display.display('loaded netconf plugin for network_os %s' % network_os, log_only=True)
else:
display.display('unable to load netconf for network_os %s' % network_os)
self._netconf = netconf_loader.get("default", self)
display.display('unable to load netconf plugin for network_os %s, falling back to default plugin' % network_os)
return 0, to_bytes(self._manager.session_id, errors='surrogate_or_strict'), b''

Loading…
Cancel
Save