Конфигурация маршрутизатора показывает, что для одной строки требуется многострочный для ciscoconfparsePython

Программы на Python
Anonymous
Конфигурация маршрутизатора показывает, что для одной строки требуется многострочный для ciscoconfparse

Сообщение Anonymous »

Сетевой парень, который плохо знаком с Python и программированием, нашел библиотеку ciscoconfparse, которая, похоже, имеет несколько весьма полезных функций. Я столкнулся с проблемой, которая, я уверен, является чем-то фундаментальным, но я не понял ее. Я пытаюсь получить конфигурацию snmp с маршрутизатора, чтобы создать набор конфигураций для удаления конфигураций v2. Использование netmiko для получения вывода «show run | in snmp», а затем его анализа. Возвращаемая конфигурация отображается в виде одной строки. При использовании операторов ciscoconfparse для удаления некоторых строк удаляется все (при условии, что это всего лишь одна строка), поэтому мне нечего создавать.

во всех примерах в Интернете пример Конфигурация выглядит так, а функции работают, поскольку она состоит из нескольких строк.

Код: Выделить всё

conf=[
'access-list dmz_inbound extended deny udp object training-network any4 eq snmp',
'snmp-server host inside 10.10.10.10 poll community ***** version 2c',
'snmp-server host inside 10.20.20.20 poll community ***** version 2c',
'no snmp-server location',
'no snmp-server contact',
'snmp-server community *****',
'!'
]
когда я на самом деле извлекаю конфигурацию из маршрутизатора, она выглядит так с символами новой строки, но анализируется как 1 строка:

Код: Выделить всё

'access-list testNada extended permit udp host 10.10.10.10 eq snmp host 10.20.10.10 eq snmp \nsnmp-server host inside 10.11.11.11 community ***** version 2c\nsnmp-server host inside 10.5.5.5 poll community ***** version 2c\nno snmp-server location\nno snmp-server contact\nsnmp-server community *****\n']
фрагмент кода, который я запускаю. операторы удаления строки удаляют весь фрагмент конфигурации, а не только строку, соответствующую аргументу.

Код: Выделить всё

conf = [ssh.send_command("show run | include snmp")]
parse = CiscoConfParse(conf)
parse.delete_lines('no snmp-server')
parse.delete_lines('access-list')
newConf = (parse.replace_lines('snmp', 'no snmp',excludespec='v3'))

ssh.send_config_set(newConf)
как мне получить конфигурацию, полученную непосредственно с маршрутизатора, чтобы она отображалась как многострочная, чтобы я мог использовать функции ciscoconfparse?

Подробнее здесь: https://stackoverflow.com/questions/623 ... oconfparse

Вернуться в «Python»