Интеллектуальная разница Cisco IOS в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Интеллектуальная разница Cisco IOS в Python

Сообщение Anonymous »

До:

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

hostname Foo
!
interface GigabitEthernet 1/1
switchport mode trunk
switchport trunk allowed vlan 10,20,30
!
interface GigabitEthernet 1/2
ip address 192.0.2.1 255.255.255.128
no ip proxy-arp
!
После:

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

hostname Foo
!
interface GigabitEthernet 1/1
switchport mode trunk
switchport allowed vlan 10,20,30,40
!
interface GigabitEthernet 1/2
ip address 192.0.2.1 255.255.255.128
!
Я знаю, что могу сравнить эти две строки с помощью difflib, но difflib не понимает синтаксис Cisco IOS.
Пример Difflib
Я знаю, что могу сравнить эти две строки с помощью difflib, но difflib не понимает синтаксис Cisco IOS.
Пример Difflib h1>

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

import difflib

before = open('before.txt').readlines()
after = open('after.txt').readlines()

# Find and print the diff:
for line in difflib.unified_diff(
before, after, fromfile='before.txt',
tofile='after.txt', lineterm=''):
print(line)
Когда я запускаю это, я получаю:

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

--- before.txt
+++ after.txt
@@ -2,9 +2,8 @@
!

interface GigabitEthernet 1/1

switchport mode trunk

- switchport trunk allowed vlan 10,20,30

+ switchport allowed vlan 10,20,30,40

!

interface GigabitEthernet 1/2

ip address 192.0.2.1 255.255.255.128

- no ip proxy-arp

!
Это разница, которая не будет работать с Cisco IOS. Самое главное, что имена интерфейсов не включаются в набор различий для команд интерфейса (например, no ip proxy-arp); однако команда интерфейса необходима для правильного различия Cisco IOS.
Требуемый вывод
Как с помощью Python получить вывод сравнения, подобный этому , который понимает формат конфигурации Cisco?

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

interface GigabitEthernet 1/1
switchport allowed vlan 10,20,30,40
interface GigabitEthernet 1/2
ip proxy-arp
Обратите внимание, что каждой интерфейсной команде diff предшествует имя интерфейса; кроме того, добавлена ​​команда ip proxy-arp, поскольку ни один ip proxy-arp не был удален из исходной конфигурации.


Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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