Как заставить этот код конфигурации сети масштабироваться для многих устройств? - PullRequest
0 голосов
/ 15 ноября 2018

Больше ищите предложения здесь.Я работаю над кодом (фрагмент ниже) для извлечения, редактирования и оптимизации некоторых настроек на ряде сетевых устройств.Мне нужно обратиться к более чем 1000 устройствам различных типов и сделать эту работу достаточно эффективной.Так что понимание многопроцессорности, использования генераторов и т. Д. Может помочь, но не совсем понятно, где, как мне применять те из них, которые у меня есть в такой структуре классов?

class Device_optimiser():
    @staticmethod
    def connector(**args):
        ssh_client = paramiko.SSHClient()
        for i in args["devices"]:
            try:
                ssh_client.connect(hostname= i['host'],
                                   username=args['username'],
                                   password=args['password'],
                                   port = 22)
            except Exception:
                ll.error("bad device")
            stdin, stdout, stderr = ssh_client.exec_command(i['command'])
            return stdout.read()

    @staticmethod
    def parser(msg):
        parsed_msg = msg + "some work"
        return parsed_msg

    @staticmethod
    def algorithm(parsed_msg):
        sort_selected_msg = parsed_msg + "some work"
        return sort_selected_msg

    @classmethod
    def main(cls, info):
        ssh_output = Device_optimiser.connector(**info)
        parsed_output = Device_optimiser.parser(ssh_output)
        Device_optimiser.algorithm(parsed_output)
        Device_optimiser.connector(**info)
...