def get_interfaces(conn_config, cmds=None): """ connects to remote ssh server and gets interface details as plain text. """ output = "" conn = None if cmds is None: cmds = ["ls"] try: conn = ConnectHandler(**conn_config) output = conn.send_command(cmds[0]) except Exception as ex_obj: print(ex_obj) finally: if conn is not None: conn.cleanup() return output
def run(command, **kwargs): defaults = { "port": 22, "device_type": "cisco_nxos", "fast_cli": False, "verbose": False, } cfg = {} opts = {} for var_name in ["host", "username", "password", "port", "device_type"]: cfg[var_name] = (kwargs.get(var_name) or self._parent.configuration.get(f"ssh_{var_name}") or defaults.get(var_name) or self._parent.handle_undefined_var(f"ssh_{var_name}")) try: del kwargs[var_name] except KeyError: pass for var_name in kwargs: opts[var_name] = kwargs[var_name] try: backup_log_level = log.level netmiko_log.setLevel(logging.INFO) connection = ConnectHandler(**cfg) except ssh_exception.NetMikoAuthenticationException as e: netmiko_log.setLevel(backup_log_level) if self._parent.configuration["best_effort"]: self._parent._log.error( f'Unable to run command {command} on platform {cfg["device_type"]} - {str(e)}' ) return "" else: raise Exception( f'Unable to run command {command} on platform {cfg["device_type"]} - {str(e)}' ) retval = connection.send_command_expect(command, max_loops=10000, **opts) connection.cleanup() netmiko_log.setLevel(backup_log_level) return retval