Могу ли я заставить команду Cisco использовать уже установленное соединение SSH - PullRequest
0 голосов
/ 05 октября 2019

Я работаю над тем, в котором я использовал классы и методы. Первый метод / функция используется для установки ssh-соединения с моим маршрутизатором Cisco. Другие методы / функции содержат команды, поэтому они выглядят так ...

  1. Когда пользователь нажимает на изображение устройства, он устанавливает сессию ssh.

  2. Когда пользователь выбирает операцию из выпадающего меню, соответствующая команда отправляется на то устройство, которое уже установило соединение ssh (команда находится внутри функции класса, поэтому она вызывает только эту функцию)

Проблема в том, что каждый раз, когда я вызываю команду, она устанавливает новое соединение, которое мне не нужно.

Любая помощь будет принята с благодарностью.

Я попытался вызвать только командную функцию, но поскольку она содержит переменные "self" из функции, которая установила сеанс ssh, она выдала мне ошибку.

class router(object):
    def __init__(self,command,ipadd):
        self.command = command
        self.ipadd = ipadd
        self.core_router1 = 0
        self.core_router = 0



def connect(self):
            self.core_router = paramiko.SSHClient()
            self.core_router.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            self.core_router.connect(self.ipadd, username = "", password = "")
            self.core_router1 = self.core_router.invoke_shell()
            self.core_router1.send("\n")
            time.sleep(1)
            self.core_router1.send("en \n")
            time.sleep(1)
            self.core_router1.send("\n")
            time.sleep(6)
            return (self.core_router1.get_transport())



def show_run(self,command):
                                self.core_router1.send("\n")
                self.core_router1.send("terminal length 0 \n")
                self.core_router1.send("terminal monitor \n")
                self.core_router1.send("show run\n")
                time.sleep(2)
                output = self.core_router1.recv(65535)
                return (output)

def show_interface(self,command):

                self.core_router1.send("\n")
                self.core_router1.send("terminal length 0 \n")
                self.core_router1.send("terminal monitor \n")
                self.core_router1.send("show interface \n")
                time.sleep(2)
                output = self.core_router1.recv(65535)
                return (output)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...