示例#1
0
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
示例#2
0
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