def __init__(self, play_context, new_stdin, *args, **kwargs): super(Connection, self).__init__(play_context, new_stdin, *args, **kwargs) # If network_os is not specified then set the network os to auto # This will be used to trigger the the use of guess_network_os when connecting. self._network_os = self._network_os or 'auto' netconf = netconf_loader.get(self._network_os, self) if netconf: 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 } self.queue_message( 'display', 'unable to load netconf plugin for network_os %s, falling back to default plugin' % self._network_os) self.queue_message('log', 'network_os is set to %s' % self._network_os) self._manager = None self.key_filename = None self._ssh_config = None
def __init__(self, play_context, new_stdin, *args, **kwargs): super(Connection, self).__init__(play_context, new_stdin, *args, **kwargs) self._network_os = self._network_os or 'default' netconf = netconf_loader.get(self._network_os, self) if netconf: self._sub_plugins.append({ 'type': 'netconf', 'name': self._network_os, 'obj': netconf }) display.display('loaded netconf plugin for network_os %s' % self._network_os, log_only=True) else: netconf = netconf_loader.get("default", self) self._sub_plugins.append({ 'type': 'netconf', 'name': 'default', 'obj': netconf }) display.display( 'unable to load netconf plugin for network_os %s, falling back to default plugin' % self._network_os) display.display('network_os is set to %s' % self._network_os, log_only=True) self._manager = None self.key_filename = None
def __init__(self, play_context, new_stdin, *args, **kwargs): super(Connection, self).__init__( play_context, new_stdin, *args, **kwargs ) # If network_os is not specified then set the network os to auto # This will be used to trigger the use of guess_network_os when connecting. self._network_os = self._network_os or "auto" self.netconf = netconf_loader.get(self._network_os, self) if self.netconf: self._sub_plugin = { "type": "netconf", "name": self.netconf._load_name, "obj": self.netconf, } self.queue_message( "vvvv", "loaded netconf plugin %s from path %s for network_os %s" % ( self.netconf._load_name, self.netconf._original_path, self._network_os, ), ) else: self.netconf = netconf_loader.get("default", self) self._sub_plugin = { "type": "netconf", "name": "default", "obj": self.netconf, } self.queue_message( "vvvv", "unable to load netconf plugin for network_os %s, falling back to default plugin" % self._network_os, ) self.queue_message("log", "network_os is set to %s" % self._network_os) self._manager = None self.key_filename = None self._ssh_config = None
def _connect(self): super(Connection, self)._connect() display.display('ssh connection done, starting ncclient', log_only=True) allow_agent = True if self._play_context.password is not None: allow_agent = False setattr(self._play_context, 'allow_agent', allow_agent) key_filename = None if self._play_context.private_key_file: key_filename = os.path.expanduser( self._play_context.private_key_file) if self._network_os == 'default': for cls in netconf_loader.all(class_only=True): network_os = cls.guess_network_os(self) if network_os: display.display('discovered network_os %s' % network_os, log_only=True) self._network_os = network_os device_params = { 'name': NETWORK_OS_DEVICE_PARAM_MAP.get(self._network_os) or self._network_os } ssh_config = os.getenv('ANSIBLE_NETCONF_SSH_CONFIG', False) if ssh_config in BOOLEANS_TRUE: ssh_config = True else: ssh_config = None try: self._manager = manager.connect( host=self._play_context.remote_addr, port=self._play_context.port or 830, username=self._play_context.remote_user, password=self._play_context.password, key_filename=str(key_filename), hostkey_verify=self.get_option('host_key_checking'), look_for_keys=self.get_option('look_for_keys'), device_params=device_params, allow_agent=self._play_context.allow_agent, timeout=self._play_context.timeout, ssh_config=ssh_config) except SSHUnknownHostError as exc: raise AnsibleConnectionFailure(str(exc)) except ImportError as exc: raise AnsibleError( "connection=netconf is not supported on {0}".format( self._network_os)) if not self._manager.connected: return 1, b'', b'not connected' display.display('ncclient manager object created successfully', log_only=True) self._connected = True netconf = netconf_loader.get(self._network_os, self) if netconf: display.display('loaded netconf plugin for network_os %s' % self._network_os, log_only=True) else: netconf = netconf_loader.get("default", self) display.display( 'unable to load netconf plugin for network_os %s, falling back to default plugin' % self._network_os) self._implementation_plugins.append(netconf) return 0, to_bytes(self._manager.session_id, errors='surrogate_or_strict'), b''
def _connect(self): super(Connection, self)._connect() display.display('ssh connection done, starting ncclient', log_only=True) allow_agent = True if self._play_context.password is not None: allow_agent = False key_filename = None if self._play_context.private_key_file: key_filename = os.path.expanduser( self._play_context.private_key_file) network_os = self._play_context.network_os if not network_os: for cls in netconf_loader.all(class_only=True): network_os = cls.guess_network_os(self) if network_os: display.display('discovered network_os %s' % network_os, log_only=True) if not network_os: raise AnsibleConnectionFailure( 'Unable to automatically determine host network os. Please ansible_network_os value' ) ssh_config = os.getenv('ANSIBLE_NETCONF_SSH_CONFIG', False) if ssh_config in BOOLEANS_TRUE: ssh_config = True else: ssh_config = None try: self._manager = manager.connect( host=self._play_context.remote_addr, port=self._play_context.port or 830, username=self._play_context.remote_user, password=self._play_context.password, key_filename=str(key_filename), hostkey_verify=C.HOST_KEY_CHECKING, look_for_keys=C.PARAMIKO_LOOK_FOR_KEYS, allow_agent=allow_agent, timeout=self._play_context.timeout, device_params={'name': network_os}, ssh_config=ssh_config) except SSHUnknownHostError as exc: raise AnsibleConnectionFailure(str(exc)) except ImportError as exc: raise AnsibleError( "connection=netconf is not supported on {0}".format( network_os)) if not self._manager.connected: return 1, b'', b'not connected' display.display('ncclient manager object created successfully', log_only=True) self._connected = True self._netconf = netconf_loader.get(network_os, self) 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) return 0, to_bytes(self._manager.session_id, errors='surrogate_or_strict'), b''
def _connect(self): super(Connection, self)._connect() display.display('ssh connection done, stating ncclient', log_only=True) self.allow_agent = True if self._play_context.password is not None: self.allow_agent = False self.key_filename = None if self._play_context.private_key_file: self.key_filename = os.path.expanduser(self._play_context.private_key_file) network_os = self._play_context.network_os if not network_os: for cls in netconf_loader.all(class_only=True): network_os = cls.guess_network_os(self) if network_os: display.display('discovered network_os %s' % network_os, log_only=True) if not network_os: raise AnsibleConnectionFailure('Unable to automatically determine host network os. Please ansible_network_os value') ssh_config = os.getenv('ANSIBLE_NETCONF_SSH_CONFIG', False) if ssh_config in BOOLEANS_TRUE: ssh_config = True else: ssh_config = None try: self._manager = manager.connect( host=self._play_context.remote_addr, port=self._play_context.port or 830, username=self._play_context.remote_user, password=self._play_context.password, key_filename=str(self.key_filename), hostkey_verify=C.HOST_KEY_CHECKING, look_for_keys=C.PARAMIKO_LOOK_FOR_KEYS, allow_agent=self.allow_agent, timeout=self._play_context.timeout, device_params={'name': network_os}, ssh_config=ssh_config ) except SSHUnknownHostError as exc: raise AnsibleConnectionFailure(str(exc)) if not self._manager.connected: return 1, b'', b'not connected' display.display('ncclient manager object created successfully', log_only=True) self._connected = True self._netconf = netconf_loader.get(network_os, self) if self._netconf: self._rpc.add(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) return 0, to_bytes(self._manager.session_id, errors='surrogate_or_strict'), b''
def _connect(self): super(Connection, self)._connect() display.display('ssh connection done, starting ncclient', log_only=True) allow_agent = True if self._play_context.password is not None: allow_agent = False setattr(self._play_context, 'allow_agent', allow_agent) key_filename = None if self._play_context.private_key_file: key_filename = os.path.expanduser(self._play_context.private_key_file) network_os = self._play_context.network_os if not network_os: for cls in netconf_loader.all(class_only=True): network_os = cls.guess_network_os(self) if network_os: display.display('discovered network_os %s' % network_os, log_only=True) 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: ssh_config = True else: ssh_config = None try: self._manager = manager.connect( host=self._play_context.remote_addr, port=self._play_context.port or 830, username=self._play_context.remote_user, password=self._play_context.password, key_filename=str(key_filename), hostkey_verify=C.HOST_KEY_CHECKING, look_for_keys=C.PARAMIKO_LOOK_FOR_KEYS, device_params=device_params, allow_agent=self._play_context.allow_agent, timeout=self._play_context.timeout, ssh_config=ssh_config ) except SSHUnknownHostError as exc: raise AnsibleConnectionFailure(str(exc)) except ImportError as exc: raise AnsibleError("connection=netconf is not supported on {0}".format(network_os)) if not self._manager.connected: return 1, b'', b'not connected' display.display('ncclient manager object created successfully', log_only=True) self._connected = True self._netconf = netconf_loader.get(network_os, self) if self._netconf: display.display('loaded netconf plugin for network_os %s' % network_os, log_only=True) else: 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''
def _connect(self): if not HAS_NCCLIENT: raise AnsibleError( 'ncclient is required to use the netconf connection type.\n' 'Please run pip install ncclient') super(Connection, self)._connect() display.display('ssh connection done, starting ncclient', log_only=True) allow_agent = True if self._play_context.password is not None: allow_agent = False setattr(self._play_context, 'allow_agent', allow_agent) self.key_filename = self._play_context.private_key_file or self.get_option( 'private_key_file') if self.key_filename: self.key_filename = str(os.path.expanduser(self.key_filename)) if self._network_os == 'default': for cls in netconf_loader.all(class_only=True): network_os = cls.guess_network_os(self) if network_os: display.display('discovered network_os %s' % network_os, log_only=True) self._network_os = network_os device_params = { 'name': NETWORK_OS_DEVICE_PARAM_MAP.get(self._network_os) or self._network_os } ssh_config = self.get_option('netconf_ssh_config') if ssh_config in BOOLEANS_TRUE: ssh_config = True elif ssh_config in BOOLEANS_FALSE: ssh_config = None try: port = self._play_context.port or 830 display.vvvv( "ESTABLISH NETCONF SSH CONNECTION FOR USER: %s on PORT %s TO %s" % (self._play_context.remote_user, port, self._play_context.remote_addr)) self._manager = manager.connect( host=self._play_context.remote_addr, port=port, username=self._play_context.remote_user, password=self._play_context.password, key_filename=self.key_filename, hostkey_verify=self.get_option('host_key_checking'), look_for_keys=self.get_option('look_for_keys'), device_params=device_params, allow_agent=self._play_context.allow_agent, timeout=self._play_context.timeout, ssh_config=ssh_config) except SSHUnknownHostError as exc: raise AnsibleConnectionFailure(str(exc)) except ImportError as exc: raise AnsibleError( "connection=netconf is not supported on {0}".format( self._network_os)) if not self._manager.connected: return 1, b'', b'not connected' display.display('ncclient manager object created successfully', log_only=True) self._connected = True netconf = netconf_loader.get(self._network_os, self) if netconf: display.display('loaded netconf plugin for network_os %s' % self._network_os, log_only=True) else: netconf = netconf_loader.get("default", self) display.display( 'unable to load netconf plugin for network_os %s, falling back to default plugin' % self._network_os) self._implementation_plugins.append(netconf) super(Connection, self)._connect() return 0, to_bytes(self._manager.session_id, errors='surrogate_or_strict'), b''