Конфигурация маршрутизатора показывает, что для одной строки требуется многострочный для 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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