Example #1
0
def test_function_return_value_different_args():
    """
    Проверка работы функции с другими аргументами
    """
    correct_return_value = [
        ["network", "mask", "distance", "metric", "nexthop"],
        ["10.0.24.0", "24", "110", "20", ["10.0.12.2"]],
        ["10.0.34.0", "24", "110", "20", ["10.0.13.3"]],
        ["10.2.2.2", "32", "110", "11", ["10.0.12.2"]],
        ["10.3.3.3", "32", "110", "11", ["10.0.13.3"]],
        [
            "10.4.4.4", "32", "110", "21",
            ["10.0.13.3", "10.0.12.2", "10.0.14.4"]
        ],
        ["10.5.35.0", "24", "110", "20", ["10.0.13.3"]],
    ]

    with open("output/sh_ip_route_ospf.txt") as f:
        sh_ip_int_br = f.read()
    template = "templates/sh_ip_route_ospf.template"

    return_value = task_22_1.parse_command_output(template, sh_ip_int_br)
    assert return_value != None, "Функция ничего не возвращает"
    assert (
        type(return_value) == list
    ), f"По заданию функция должна возвращать список, а возвращает {type(return_value).__name__}"
    assert (return_value == correct_return_value
            ), "Функция возвращает неправильное значение"
Example #2
0
def test_function_return_value():
    correct_return_value = [
        ['mac', 'ip', 'vlan', 'intf'],
        ['00:09:BB:3D:D6:58', '10.1.10.2', '10', 'FastEthernet0/1'],
        ['00:04:A3:3E:5B:69', '10.1.5.2', '5', 'FastEthernet0/10'],
        ['00:05:B3:7E:9B:60', '10.1.5.4', '5', 'FastEthernet0/9'],
        ['00:09:BC:3F:A6:50', '10.1.10.6', '10', 'FastEthernet0/3']
    ]
    with open("output/sh_ip_dhcp_snooping.txt") as show:
        sh_ip_dhcp_snoop = show.read()
    template = "templates/sh_ip_dhcp_snooping.template"
    return_value = task_22_1.parse_command_output(template, sh_ip_dhcp_snoop)

    assert return_value == correct_return_value, \
        "Шаблон templates/sh_ip_dhcp_snooping.template неправильно парсит данные"
Example #3
0
def test_function_return_value():
    correct_return_value = [
        ["mac", "ip", "vlan", "intf"],
        ["00:09:BB:3D:D6:58", "10.1.10.2", "10", "FastEthernet0/1"],
        ["00:04:A3:3E:5B:69", "10.1.5.2", "5", "FastEthernet0/10"],
        ["00:05:B3:7E:9B:60", "10.1.5.4", "5", "FastEthernet0/9"],
        ["00:09:BC:3F:A6:50", "10.1.10.6", "10", "FastEthernet0/3"],
    ]
    with open("output/sh_ip_dhcp_snooping.txt") as show:
        sh_ip_dhcp_snoop = show.read()
    template = "templates/sh_ip_dhcp_snooping.template"
    return_value = task_22_1.parse_command_output(template, sh_ip_dhcp_snoop)

    assert (
        return_value == correct_return_value
    ), "Шаблон templates/sh_ip_dhcp_snooping.template неправильно парсит данные"
Example #4
0
def test_function_return_value():
    correct_return_value = [['intf', 'address', 'status', 'protocol'],
                            ['FastEthernet0/0', '15.0.15.1', 'up', 'up'],
                            ['FastEthernet0/1', '10.0.12.1', 'up', 'up'],
                            ['FastEthernet0/2', '10.0.13.1', 'up', 'up'],
                            ['FastEthernet0/3', 'unassigned', 'up', 'up'],
                            ['Loopback0', '10.1.1.1', 'up', 'up'],
                            ['Loopback100', '100.0.0.1', 'up', 'up']]
    with open("output/sh_ip_int_br.txt") as f:
        sh_ip_int_br = f.read()
    template = "templates/sh_ip_int_br.template"

    return_value = task_22_1.parse_command_output(template, sh_ip_int_br)
    assert return_value != None, "Функция ничего не возвращает"
    assert type(return_value) == list, "Функция должна возвращать список"
    assert return_value == correct_return_value, \
        "Функция возвращает неправильное значение"
Example #5
0
def test_function_return_value():
    """
    Проверка работы функции
    """
    correct_return_value = [
        ["intf", "address", "status", "protocol"],
        ["FastEthernet0/0", "15.0.15.1", "up", "up"],
        ["FastEthernet0/1", "10.0.12.1", "up", "up"],
        ["FastEthernet0/2", "10.0.13.1", "up", "up"],
        ["FastEthernet0/3", "unassigned", "up", "up"],
        ["Loopback0", "10.1.1.1", "up", "up"],
        ["Loopback100", "100.0.0.1", "up", "up"],
    ]
    with open("output/sh_ip_int_br.txt") as f:
        sh_ip_int_br = f.read()
    template = "templates/sh_ip_int_br.template"

    return_value = task_22_1.parse_command_output(template, sh_ip_int_br)
    assert return_value != None, "Функция ничего не возвращает"
    assert (
        type(return_value) == list
    ), f"По заданию функция должна возвращать список, а возвращает {type(return_value).__name__}"
    assert (return_value == correct_return_value
            ), "Функция возвращает неправильное значение"
Example #6
0
# -*- coding: utf-8 -*-
'''
Задание 22.2

Сделать шаблон TextFSM для обработки вывода sh ip dhcp snooping binding и записать его
в файл templates/sh_ip_dhcp_snooping.template

Вывод команды находится в файле output/sh_ip_dhcp_snooping.txt.

Шаблон должен обрабатывать и возвращать значения таких столбцов:
* mac - такого вида 00:04:A3:3E:5B:69
* ip - такого вида 10.1.10.6
* vlan - 10
* intf - FastEthernet0/10

Проверить работу шаблона с помощью функции parse_command_output из задания 22.1.
'''
from task_22_1 import parse_command_output

# don't run on import
if __name__ == "__main__":
    with open('output/sh_ip_dhcp_snooping.txt') as f:
        parse_otput_list = parse_command_output(
            "templates/sh_ip_dhcp_snooping.template", f.read())
    for line in parse_otput_list:
        print(line)
Example #7
0
Вывод команды находится в файле output/sh_ip_dhcp_snooping.txt.

Шаблон должен обрабатывать и возвращать значения таких столбцов:
* mac - такого вида 00:04:A3:3E:5B:69
* ip - такого вида 10.1.10.6
* vlan - 10
* intf - FastEthernet0/10

Проверить работу шаблона с помощью функции parse_command_output из задания 21.1.
"""
from task_22_1 import parse_command_output

if __name__ == "__main__":
    with open("output/sh_ip_dhcp_snooping.txt") as show:
        output = show.read()
    result = parse_command_output("templates/sh_ip_dhcp_snooping.template",
                                  output)
    print(result)

# templates/sh_ip_dhcp_snooping.template
"""
Value mac (\S+)
Value ip (\S+)
Value vlan (\d+)
Value intf (\S+)


Start
  ^${mac}\s+${ip}\s+\d+\s+\S+\s+${vlan}\s+${intf} -> Record
"""
Example #8
0
# -*- coding: utf-8 -*-
'''
Задание 22.2

Сделать шаблон TextFSM для обработки вывода sh ip dhcp snooping binding и записать его в файл templates/sh_ip_dhcp_snooping.template

Вывод команды находится в файле output/sh_ip_dhcp_snooping.txt.

Шаблон должен обрабатывать и возвращать значения таких столбцов:
* mac - такого вида 00:04:A3:3E:5B:69
* ip - такого вида 10.1.10.6
* vlan - 10
* intf - FastEthernet0/10

Проверить работу шаблона с помощью функции parse_command_output из задания 22.1.
'''
import sys
from task_22_1 import parse_command_output

with open('output/sh_ip_dhcp_snooping.txt') as f:
    out = f.read()

print(parse_command_output('templates/sh_ip_dhcp_snooping.template', out))
Example #9
0
# -*- coding: utf-8 -*-
"""
Задание 22.2

Сделать шаблон TextFSM для обработки вывода sh ip dhcp snooping binding и записать его в файл templates/sh_ip_dhcp_snooping.template

Вывод команды находится в файле output/sh_ip_dhcp_snooping.txt.

Шаблон должен обрабатывать и возвращать значения таких столбцов:
* mac - такого вида 00:04:A3:3E:5B:69
* ip - такого вида 10.1.10.6
* vlan - 10
* intf - FastEthernet0/10

Проверить работу шаблона с помощью функции parse_command_output из задания 22.1.
"""

from task_22_1 import parse_command_output
import textfsm

with open("output/sh_ip_dhcp_snooping.txt", encoding='UTF-8') as ff:
    sh_ip_dhcp_snooping_as_line = ff.read()
    print(
        parse_command_output("templates/sh_ip_dhcp_snooping.template",
                             sh_ip_dhcp_snooping_as_line))
Example #10
0
# -*- coding: utf-8 -*-
"""
Задание 22.2

Сделать шаблон TextFSM для обработки вывода sh ip dhcp snooping binding и записать его в файл templates/sh_ip_dhcp_snooping.template

Вывод команды находится в файле output/sh_ip_dhcp_snooping.txt.

Шаблон должен обрабатывать и возвращать значения таких столбцов:
* mac - такого вида 00:04:A3:3E:5B:69
* ip - такого вида 10.1.10.6
* vlan - 10
* intf - FastEthernet0/10

Проверить работу шаблона с помощью функции parse_command_output из задания 22.1.
"""
from task_22_1 import parse_command_output
from pprint import pprint
if __name__ == "__main__":
    with open("output/sh_ip_dhcp_snooping.txt") as out:
        pprint(
            parse_command_output("templates/sh_ip_dhcp_snooping.template",
                                 out.read()))
def main():
    with open('output/sh_ip_dhcp_snooping.txt', 'r', encoding='utf-8') as f:
        command_output = f.read()
        print(parse_command_output('templates/sh_ip_dhcp_snooping.template', command_output))
Example #12
0
# -*- coding: utf-8 -*-
'''
Задание 22.2

Сделать шаблон TextFSM для обработки вывода sh ip dhcp snooping binding и записать его в файл templates/sh_ip_dhcp_snooping.template

Вывод команды находится в файле output/sh_ip_dhcp_snooping.txt.

Шаблон должен обрабатывать и возвращать значения таких столбцов:
* mac - такого вида 00:04:A3:3E:5B:69
* ip - такого вида 10.1.10.6
* vlan - 10
* intf - FastEthernet0/10

Проверить работу шаблона с помощью функции parse_command_output из задания 22.1.
'''

from task_22_1 import parse_command_output

if __name__ == '__main__':
    with open('output/sh_ip_dhcp_snooping.txt') as f:
        print(
            parse_command_output('templates/sh_ip_dhcp_snooping.template',
                                 f.read()))
Example #13
0
# -*- coding: utf-8 -*-
'''
Задание 22.2

Сделать шаблон TextFSM для обработки вывода sh ip dhcp snooping binding и записать его в файл templates/sh_ip_dhcp_snooping.template

Вывод команды находится в файле output/sh_ip_dhcp_snooping.txt.

Шаблон должен обрабатывать и возвращать значения таких столбцов:
* mac - такого вида 00:04:A3:3E:5B:69
* ip - такого вида 10.1.10.6
* vlan - 10
* intf - FastEthernet0/10

Проверить работу шаблона с помощью функции parse_command_output из задания 22.1.
'''

from tabulate import tabulate

from task_22_1 import parse_command_output

with open('output/sh_ip_dhcp_snooping.txt') as f:
    output = f.read()
table_data = parse_command_output('templates/sh_ip_dhcp_snooping.template',
                                  output)
print(tabulate(table_data, headers='firstrow'))
Example #14
0
Value Distance (\d+)
Value Metric (\d+)
Value List NextHop ([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})

Start
  ^O -> Continue.Record
  ^O +${Network}${Mask}\s\[${Distance}\/${Metric}\]\svia\s${NextHop},
  ^\s+\[${Distance}\/${Metric}\]\svia\s${NextHop},




Value intf (\S+)
Value address (\S+)
Value status (up|down|administratively down)
Value protocol (up|down)

Start
  ^${intf}\s+${address}\s+\w+\s+\w+\s+${status}\s+${protocol} -> Record


"""

from task_22_1 import parse_command_output

if __name__ == "__main__":
    path = "/home/vagrant/my_repo/online-8-oleg-bosyuk/exercises/22_textfsm/"
    with open(path + 'output/sh_ip_dhcp_snooping.txt') as f:
        command_output = f.read()
        parse_command_output(path + 'templates/sh_ip_dhcp_snooping.template',
                             command_output)
Example #15
0
# -*- coding: utf-8 -*-
'''
Задание 22.2

Сделать шаблон TextFSM для обработки вывода sh ip dhcp snooping binding и записать его в файл templates/sh_ip_dhcp_snooping.template

Вывод команды находится в файле output/sh_ip_dhcp_snooping.txt.

Шаблон должен обрабатывать и возвращать значения таких столбцов:
* mac - такого вида 00:04:A3:3E:5B:69
* ip - такого вида 10.1.10.6
* vlan - 10
* intf - FastEthernet0/10

Проверить работу шаблона с помощью функции parse_command_output из задания 22.1.
'''
from task_22_1 import parse_command_output
from tabulate import tabulate

print(
    tabulate(parse_command_output('templates/sh_ip_dhcp_snooping.template',
                                  'output/sh_ip_dhcp_snooping.txt'),
             headers='firstrow'))
Example #16
0
# -*- coding: utf-8 -*-
'''
Задание 22.2

Сделать шаблон TextFSM для обработки вывода sh ip dhcp snooping binding и записать его в файл
templates/sh_ip_dhcp_snooping.template

Вывод команды находится в файле output/sh_ip_dhcp_snooping.txt.

Шаблон должен обрабатывать и возвращать значения таких столбцов:
* mac - такого вида 00:04:A3:3E:5B:69
* ip - такого вида 10.1.10.6
* vlan - 10
* intf - FastEthernet0/10

Проверить работу шаблона с помощью функции parse_command_output из задания 22.1.
'''
from task_22_1 import parse_command_output

if __name__ == '__main__':
    with open("output/sh_ip_dhcp_snooping.txt") as f:
        command_output = f.read()
    template_command = 'templates/sh_ip_dhcp_snooping.template'
    print(parse_command_output(template_command, command_output))