Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add get.py for iosxe eigrp folder containing 12 APIs for EIGRPv4 and EIGRPv6 #149

Merged
merged 104 commits into from
Feb 23, 2024
Merged
Show file tree
Hide file tree
Changes from 102 commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
2b4e415
Create test
cherifimehdi Dec 29, 2023
0eff3c9
Add files via upload
cherifimehdi Dec 29, 2023
ae1ade1
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
343f641
Add files via upload
cherifimehdi Dec 29, 2023
a8b1077
Create tst
cherifimehdi Dec 29, 2023
3f0e764
Add files via upload
cherifimehdi Dec 29, 2023
c765c83
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
ce248b5
Add files via upload
cherifimehdi Dec 29, 2023
4e9f10b
Create tst
cherifimehdi Dec 29, 2023
3ef3980
Add files via upload
cherifimehdi Dec 29, 2023
856b810
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
3e3d841
Add files via upload
cherifimehdi Dec 29, 2023
bc72d28
Create tst
cherifimehdi Dec 29, 2023
d402ec4
Add files via upload
cherifimehdi Dec 29, 2023
28e8fc3
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
f5a402d
Add files via upload
cherifimehdi Dec 29, 2023
9caa922
Create tst
cherifimehdi Dec 29, 2023
d1e9007
Add files via upload
cherifimehdi Dec 29, 2023
39f5f41
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
638b2aa
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
3e00906
Create tst
cherifimehdi Dec 29, 2023
16a808d
Add files via upload
cherifimehdi Dec 29, 2023
4f1f15c
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
1d91a35
Add files via upload
cherifimehdi Dec 29, 2023
9f7da69
Create tst
cherifimehdi Dec 29, 2023
19b5ed4
Add files via upload
cherifimehdi Dec 29, 2023
39078ba
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
d435ed0
Add files via upload
cherifimehdi Dec 29, 2023
0bff529
Create tst
cherifimehdi Dec 29, 2023
da991dc
Add files via upload
cherifimehdi Dec 29, 2023
61e81ea
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
afc5cbc
Add files via upload
cherifimehdi Dec 29, 2023
e7041e6
Create tst
cherifimehdi Dec 29, 2023
f9c3b5f
Add files via upload
cherifimehdi Dec 29, 2023
a2ec764
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
e9adf1f
Add files via upload
cherifimehdi Dec 29, 2023
137d0f4
Add files via upload
cherifimehdi Dec 29, 2023
7a2802c
Create tst
cherifimehdi Dec 29, 2023
3024d6d
Add files via upload
cherifimehdi Dec 29, 2023
d5ad10b
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
6ed196b
Add files via upload
cherifimehdi Dec 29, 2023
b199fa5
Create tst
cherifimehdi Dec 29, 2023
c1a0dbc
Add files via upload
cherifimehdi Dec 29, 2023
15a5bde
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
cc7e7f7
Add files via upload
cherifimehdi Dec 29, 2023
50cc29e
Create tst
cherifimehdi Dec 29, 2023
edb91ed
Add files via upload
cherifimehdi Dec 29, 2023
a68d5e7
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
86b499c
Add files via upload
cherifimehdi Dec 29, 2023
396c6a8
Create tst
cherifimehdi Dec 29, 2023
b4be44a
Add files via upload
cherifimehdi Dec 29, 2023
3619972
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Dec 29, 2023
0f8eba2
Add files via upload
cherifimehdi Dec 29, 2023
fa6f271
Add files via upload
cherifimehdi Dec 29, 2023
79450a7
Add files via upload
cherifimehdi Dec 29, 2023
69fc7bd
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/eigrp/get.py
cherifimehdi Feb 10, 2024
f95fe4a
Add files via upload
cherifimehdi Feb 10, 2024
6fec871
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
a6f7187
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
33cef2e
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
3e075b3
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
eed04ee
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
d00b4da
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
c8c6804
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
7a660dd
Add files via upload
cherifimehdi Feb 10, 2024
25e1002
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
0ec7d4b
Create test
cherifimehdi Feb 10, 2024
edad0e4
Add files via upload
cherifimehdi Feb 10, 2024
31f4875
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
ecbdeff
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
8d427c9
Add files via upload
cherifimehdi Feb 10, 2024
2be8102
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
1eee1f1
Create test
cherifimehdi Feb 10, 2024
355d492
Add files via upload
cherifimehdi Feb 10, 2024
1ea7051
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
1b3de7c
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
4ec95d7
Add files via upload
cherifimehdi Feb 10, 2024
cab3240
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
a91dd79
Create test
cherifimehdi Feb 10, 2024
9fb65a0
Add files via upload
cherifimehdi Feb 10, 2024
ebcb476
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
e2be41d
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
1443e37
Add files via upload
cherifimehdi Feb 10, 2024
24caf7c
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
9c114d9
Create test
cherifimehdi Feb 10, 2024
cd99205
Add files via upload
cherifimehdi Feb 10, 2024
a084914
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
988640c
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
1aaaf57
Add files via upload
cherifimehdi Feb 10, 2024
ec9215e
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
0cc0279
Create test
cherifimehdi Feb 10, 2024
a729e4a
Add files via upload
cherifimehdi Feb 10, 2024
3b98492
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
e58a16d
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
1b40b11
Add files via upload
cherifimehdi Feb 10, 2024
bcdaf95
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
ce2f765
Create test
cherifimehdi Feb 10, 2024
20da7b5
Add files via upload
cherifimehdi Feb 10, 2024
8e3387d
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/eigrp/get/get…
cherifimehdi Feb 10, 2024
239ff42
Update changelog_add_eigrp_get.py_apis_202329121901.rst
cherifimehdi Feb 10, 2024
ad61225
Delete pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/eigrp/get.py
cherifimehdi Feb 21, 2024
7196baa
Add files via upload
cherifimehdi Feb 21, 2024
bde2ebe
Delete pkgs/sdk-pkg/changelog/changelog_add_eigrp_get.py_apis_2023291…
cherifimehdi Feb 23, 2024
60ea325
Add files via upload
cherifimehdi Feb 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
--------------------------------------------------------------------------------
New
--------------------------------------------------------------------------------
* IOSXE
* Added get.py in eigrp containing 06 APIs supporting IPv4 and IPv6:
* get_eigrp_interfaces
* get_eigrp_interfaces_as
* get_eigrp_interfaces_peers
* get_eigrp_interfaces_timers
* get_eigrp_neighbors
* get_eigrp_router_id
cherifimehdi marked this conversation as resolved.
Show resolved Hide resolved


167 changes: 167 additions & 0 deletions pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/eigrp/get.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
import logging
import os
from genie.metaparser.util.exceptions import SchemaEmptyParserError
log = logging.getLogger(__name__)

def get_eigrp_interfaces(device, vrf='default', AS_N=None, ip='ipv4'):
"""Gets all the interfaces on the device for a given AS or vrf for ipv4/ipv6
Args:
device (obj): Device object
vrf = "default" (str): Name of the vrf by default set to "default"
AS_N = None (int): Autonomous System
cherifimehdi marked this conversation as resolved.
Show resolved Hide resolved
ip = "ipv4" (str): Protocol ip set by default to "ipv4" to change to "ipv6"
Returns:
list: List of the interfaces in -interfaces- list
"""
if ((isinstance(AS_N, int) and isinstance (ip, str) and isinstance(vrf, str) and AS_N!=0 and ip in ['ipv4','ipv6'])):
if AS_N:
try:
response=device.parse(f"show {'ipv6' if ip!='ipv4' else 'ip'} eigrp interfaces")
except SchemaEmptyParserError:
return None
interfaces = []
if (vrf not in response.q.get_values("vrf")) or (str(AS_N) not in response.q.get_values("eigrp_instance")):
log.error(f"Sorry,no data for the provided 'AS = {AS_N}' and/or 'vrf = {vrf}' !")
else:
interfaces = response.q.contains(vrf).contains_key_value("eigrp_instance", str(AS_N)).contains(ip).get_values('interface')
return interfaces
else:
log.error(f"Please, provide a valide format for AS and/or vrf and ip!!")

def get_eigrp_interfaces_as(device, vrf='default', ip='ipv4'):
"""Gets all the interfaces for a given vrf for ipv4 or ipv6 for all active AS
Args:
device (obj): Device object
vrf = "default" (str) : Name of the vrf
ip = "ipv4" (str): Protocol ip set by default to "ipv4" to change to "ipv6"
Returns:
Dict: Dctionary of the interfaces for a given AS in -inter_as_dict- Dict
"""
if (isinstance(vrf, str) and isinstance(ip, str) and ip in ['ipv4','ipv6']):
try:
response=device.parse(f"show {'ipv6' if ip!='ipv4' else 'ip'} eigrp interfaces")
except SchemaEmptyParserError:
return None
inter_as_dict={}
if (vrf not in response.q.get_values("vrf")):
log.error(f"Sorry, 'vrf = {vrf}' provided doesn't configured OR doesn't contain eigrp instances!")
return None
else:
as_proc = response.q.contains(vrf).contains(ip).get_values("eigrp_instance")
for as_n in as_proc:
interface_as=response.q.contains(as_n).get_values("interface")
inter_as_dict[as_n]=interface_as
return inter_as_dict
else:
log.error(f"Please, provide a valide format for vrf and/or ip!!")

def get_eigrp_interfaces_timers(device, vrf='default', AS_N=None, ip='ipv4'):
"""Gets hello interval and hold time for a given vrf and active AS for ipv4 or ipv6
Args:
device (obj): Device object
vrf = "default" (str) : Name of the vrf
AS_N = None (int) : Autonomous System
ip = "ipv4" (str): Protocol ip set by default to "ipv4" to change to "ipv6"
Returns:
Dict: Dctionary of the timers for all the interfaces for a given AS in -inter_timers- Dict
"""
if ((isinstance(AS_N, int) and isinstance(vrf, str) and AS_N !=0 and ip in ['ipv4','ipv6'])):
if AS_N:
try:
response=device.parse(f"show {'ipv6' if ip!='ipv4' else 'ip'} eigrp interfaces detail")
except SchemaEmptyParserError:
return None
inter_timers={}
if (vrf not in response.q.get_values("vrf")) or (str(AS_N) not in response.q.get_values("eigrp_instance")):
log.error(f"Sorry, no data for the provided for 'AS = {AS_N}' and/or 'vrf = {vrf}' !")
return None
else:
interfaces = response.q.contains(vrf).contains_key_value("eigrp_instance",str(AS_N)).contains(ip).get_values("interface")
for interface in interfaces:
hello_interval = {"hello_interval":(response.q.contains(interface).get_values("hello_interval"))[0]}
hold_time = {"hold_time":(response.q.contains(interface).get_values("hold_time"))[0]}
inter_timers[interface] = [hello_interval, hold_time]
return inter_timers
else:
log.error(f"Please, provide a valide format for vrf and/or AS and ip!!")

def get_eigrp_interfaces_peers(device, vrf='default', AS_N=None, ip='ipv4'):
"""Gets interfaces and number of the EIGRP peers for a given vrf/active AS
Args:
device (obj): Device object
vrf = "default" (str) : Name of the vrf
AS_N = None (int) : Autonomous System
ip = "ipv4" (str): Protocol ip set by default to "ipv4" to change to "ipv6"
Returns:
Dict: Dctionary of the interfaces and the peers for a given AS in -inter_peers- Dict
"""
if ((isinstance(AS_N, int) and isinstance(vrf, str) and AS_N !=0 and ip in ['ipv4','ipv6'])):
if AS_N:
try:
response=device.parse(f"show {'ipv6' if ip!='ipv4' else 'ip'} eigrp interfaces")
except SchemaEmptyParserError:
return None
inter_peers={}
if (vrf not in response.q.get_values("vrf")) or (str(AS_N) not in response.q.get_values("eigrp_instance")):
log.error(f"Sorry, no data for the provided 'AS = {AS_N}' and/or 'vrf = {vrf}' !")
return None
else:
interfaces = response.q.contains(vrf).contains_key_value("eigrp_instance",str(AS_N)).contains(ip).get_values("interface")
peers = response.q.contains(vrf).contains_key_value("eigrp_instance",str(AS_N)).contains(ip).get_values("peers")
for interface in interfaces:
inter_peers=dict(zip(interfaces, peers))
return inter_peers
else:
log.error(f"Please, provide a valide format for vrf and/or AS and ip!!")

def get_eigrp_neighbors(device, vrf='default', AS_N=None, ip='ipv4'):
"""Gets EIGRP neighbors for a given vrf and active AS instance for ipv4/ipv6
Args:
device (obj): Device object
vrf = "default" (str) : Name of the vrf
AS_N = None (int) : Autonomous System
ip = "ipv4" (str): Protocol ip set by default to "ipv4" to change to "ipv6"
Returns:
List: List of the EIGRP neighbors for a given AS in -eigrp_neighbors- List
"""
if ((isinstance(AS_N, int) and isinstance(vrf, str) and AS_N != 0 and ip in ['ipv4','ipv6'])):
if AS_N:
try:
response=device.parse(f"show {'ipv6' if ip!='ipv4' else 'ip'} eigrp neighbors")
except SchemaEmptyParserError:
return None
eigrp_neighbors=[]
if (vrf not in response.q.get_values("vrf")) or (str(AS_N) not in response.q.get_values("eigrp_instance")):
log.error(f"Sorry, no data for the provided 'AS = {AS_N}' and/or 'vrf = {vrf}' !")
return None
else:
eigrp_neighbors = response.q.contains_key_value("eigrp_instance",str(AS_N)).contains(vrf).contains(ip).get_values("eigrp_nbr")
return eigrp_neighbors
else:
log.error(f"Please, provide a valide format for vrf and/or AS and ip!!")

def get_eigrp_router_id(device, vrf='default', AS_N=None, ip = 'ipv4'):
"""Gets EIGRP IDs for a given vrf and AS active instance for ipv4 or ipv6
Args:
device (obj): Device object
vrf = "default" (str) : Name of the vrf
AS_N = None (int) : Autonomous System
ip = "ipv4" (str): Protocol ip set by default to "ipv4" to change to "ipv6"
Returns:
List: List of the EIGRP IDs for a given AS in -eigrp_id- List
"""
if AS_N:
if ((isinstance(AS_N, int) and isinstance(vrf, str) and AS_N != 0 and ip in ['ipv4','ipv6'])):
try:
response=device.parse(f"show {'ipv6' if ip!='ipv4' else 'ip'} eigrp topology")
except SchemaEmptyParserError:
return None
eigrp_id=[]
if (vrf not in response.q.get_values("vrf")) or (str(AS_N) not in response.q.get_values("eigrp_instance")):
log.error(f"Sorry, no data for the provided for 'AS = {AS_N}' and/or 'vrf = {vrf}' !")
return None
else:
eigrp_id = response.q.contains_key_value("eigrp_instance", str(AS_N)).contains(vrf).contains((ip[0:2]).upper()+ip[2:]).get_values("eigrp_id")
return eigrp_id
else:
log.error(f"Please, provide a valide format for vrf and/or AS and ip!!")
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
configure:
commands:
end:
new_state: execute
line console 0:
new_state: configure_line
no logging console: ''
prompt: R1(config)#
configure_line:
commands:
end:
new_state: execute
exec-timeout 0: ''
prompt: R1(config-line)#
connect:
commands:
? ''
: new_state: execute
preface: 'Trying mock_device ...

Connected to mock_device.

Escape character is ''^]''.'
prompt: ''
execute:
commands:
config term:
new_state: configure
config-transaction:
new_state: configure
show ip eigrp interfaces:
response:
- "EIGRP-IPv4 Interfaces for AS(1)\r\n Xmit Queue\
\ PeerQ Mean Pacing Time Multicast Pending\r\nInterface \
\ Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer\
\ Routes\r\nFa0/0 0 0/0 0/0 0\
\ 0/0 0 0\r\nEIGRP-IPv4 Interfaces for AS(2)\r\n\
\ Xmit Queue PeerQ Mean Pacing Time\
\ Multicast Pending\r\nInterface Peers Un/Reliable Un/Reliable\
\ SRTT Un/Reliable Flow Timer Routes\r\nFa1/0 1\
\ 0/0 0/0 36 0/0 50 0"
- "EIGRP-IPv4 Interfaces for AS(1)\r\n Xmit Queue\
\ PeerQ Mean Pacing Time Multicast Pending\r\nInterface \
\ Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer\
\ Routes\r\nFa0/0 0 0/0 0/0 0\
\ 0/0 0 0\r\nEIGRP-IPv4 Interfaces for AS(2)\r\n\
\ Xmit Queue PeerQ Mean Pacing Time\
\ Multicast Pending\r\nInterface Peers Un/Reliable Un/Reliable\
\ SRTT Un/Reliable Flow Timer Routes\r\nFa1/0 1\
\ 0/0 0/0 36 0/0 50 0"
- "EIGRP-IPv4 Interfaces for AS(1)\r\n Xmit Queue\
\ PeerQ Mean Pacing Time Multicast Pending\r\nInterface \
\ Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer\
\ Routes\r\nFa0/0 0 0/0 0/0 0\
\ 0/0 0 0\r\nEIGRP-IPv4 Interfaces for AS(2)\r\n\
\ Xmit Queue PeerQ Mean Pacing Time\
\ Multicast Pending\r\nInterface Peers Un/Reliable Un/Reliable\
\ SRTT Un/Reliable Flow Timer Routes\r\nFa1/0 1\
\ 0/0 0/0 36 0/0 50 0"
response_type: circular
show ipv6 eigrp interfaces:
response:
- "EIGRP-IPv6 Interfaces for AS(3)\r\n Xmit Queue\
\ PeerQ Mean Pacing Time Multicast Pending\r\nInterface \
\ Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer\
\ Routes\r\nFa0/0 0 0/0 0/0 0\
\ 0/0 0 0\r\nEIGRP-IPv6 Interfaces for AS(4)\r\n\
\ Xmit Queue PeerQ Mean Pacing Time\
\ Multicast Pending\r\nInterface Peers Un/Reliable Un/Reliable\
\ SRTT Un/Reliable Flow Timer Routes\r\nFa1/0 1\
\ 0/0 0/0 180 0/0 720 0"
response_type: circular
show version: ''
term length 0: ''
term width 0: ''
prompt: R1#
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import os
import unittest
from pyats.topology import loader
from genie.libs.sdk.apis.iosxe.eigrp.get import get_eigrp_interfaces


class TestGetEigrpInterfaces(unittest.TestCase):

@classmethod
def setUpClass(self):
testbed = f"""
devices:
R1:
connections:
defaults:
class: unicon.Unicon
a:
command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect
protocol: unknown
os: iosxe
platform: iosxe
type: iosxe
"""
self.testbed = loader.load(testbed)
self.device = self.testbed.devices['R1']
self.device.connect(
learn_hostname=True,
init_config_commands=[],
init_exec_commands=[]
)

def test_get_eigrp_interfaces(self):
result = get_eigrp_interfaces(self.device, 'default', 3, 'ipv4')
expected_output = []
self.assertEqual(result, expected_output)

def test_get_eigrp_interfaces_1(self):
result = get_eigrp_interfaces(self.device, 'default', 3, 'ipv6')
expected_output = ['FastEthernet0/0']
self.assertEqual(result, expected_output)

def test_get_eigrp_interfaces_2(self):
result = get_eigrp_interfaces(self.device, 'default', 1, 'ipv4')
expected_output = ['FastEthernet0/0']
self.assertEqual(result, expected_output)

def test_get_eigrp_interfaces_3(self):
result = get_eigrp_interfaces(self.device, 'default', 2, 'ipv4')
expected_output = ['FastEthernet1/0']
self.assertEqual(result, expected_output)
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
configure:
commands:
end:
new_state: execute
line console 0:
new_state: configure_line
no logging console: ''
prompt: R1(config)#
configure_line:
commands:
end:
new_state: execute
exec-timeout 0: ''
prompt: R1(config-line)#
connect:
commands:
? ''
: new_state: execute
preface: 'Trying mock_device ...

Connected to mock_device.

Escape character is ''^]''.'
prompt: ''
execute:
commands:
config term:
new_state: configure
config-transaction:
new_state: configure
show ip eigrp interfaces:
response:
- "EIGRP-IPv4 Interfaces for AS(1)\r\n Xmit Queue\
\ PeerQ Mean Pacing Time Multicast Pending\r\nInterface \
\ Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer\
\ Routes\r\nFa0/0 0 0/0 0/0 0\
\ 0/0 0 0\r\nEIGRP-IPv4 Interfaces for AS(2)\r\n\
\ Xmit Queue PeerQ Mean Pacing Time\
\ Multicast Pending\r\nInterface Peers Un/Reliable Un/Reliable\
\ SRTT Un/Reliable Flow Timer Routes\r\nFa1/0 1\
\ 0/0 0/0 36 0/0 50 0"
- "EIGRP-IPv4 Interfaces for AS(1)\r\n Xmit Queue\
\ PeerQ Mean Pacing Time Multicast Pending\r\nInterface \
\ Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer\
\ Routes\r\nFa0/0 0 0/0 0/0 0\
\ 0/0 0 0\r\nEIGRP-IPv4 Interfaces for AS(2)\r\n\
\ Xmit Queue PeerQ Mean Pacing Time\
\ Multicast Pending\r\nInterface Peers Un/Reliable Un/Reliable\
\ SRTT Un/Reliable Flow Timer Routes\r\nFa1/0 1\
\ 0/0 0/0 36 0/0 50 0"
- "EIGRP-IPv4 Interfaces for AS(1)\r\n Xmit Queue\
\ PeerQ Mean Pacing Time Multicast Pending\r\nInterface \
\ Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer\
\ Routes\r\nFa0/0 0 0/0 0/0 0\
\ 0/0 0 0\r\nEIGRP-IPv4 Interfaces for AS(2)\r\n\
\ Xmit Queue PeerQ Mean Pacing Time\
\ Multicast Pending\r\nInterface Peers Un/Reliable Un/Reliable\
\ SRTT Un/Reliable Flow Timer Routes\r\nFa1/0 1\
\ 0/0 0/0 36 0/0 50 0"
response_type: circular
show ipv6 eigrp interfaces:
response:
- "EIGRP-IPv6 Interfaces for AS(3)\r\n Xmit Queue\
\ PeerQ Mean Pacing Time Multicast Pending\r\nInterface \
\ Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer\
\ Routes\r\nFa0/0 0 0/0 0/0 0\
\ 0/0 0 0\r\nEIGRP-IPv6 Interfaces for AS(4)\r\n\
\ Xmit Queue PeerQ Mean Pacing Time\
\ Multicast Pending\r\nInterface Peers Un/Reliable Un/Reliable\
\ SRTT Un/Reliable Flow Timer Routes\r\nFa1/0 1\
\ 0/0 0/0 180 0/0 720 0"
response_type: circular
show version: ''
term length 0: ''
term width 0: ''
prompt: R1#
Loading
Loading