r1 = tgen.gears["r1"].net
qcmd = (
- r"vtysh -c 'show mgmt get-data {}' "
+ r"vtysh -c 'show mgmt get-data {} {}' "
r"""| sed -e 's/"phy-address": ".*"/"phy-address": "rubout"/'"""
r"""| sed -e 's/"uptime": ".*"/"uptime": "rubout"/'"""
r"""| sed -e 's/"vrf": "[0-9]*"/"vrf": "rubout"/'"""
if doreset:
doreset = False
expected = open(qr[1], encoding="ascii").read()
- output = r1.cmd_nostatus(qcmd.format(qr[0]))
+ output = r1.cmd_nostatus(qcmd.format(qr[0], qr[2] if len(qr) > 2 else ""))
try:
ojson = json.loads(output)
interface r1-eth0
ip address 1.1.1.1/24
+ description r1-eth0-desc
exit
interface r1-eth1 vrf red
ip address 3.3.3.1/24
+ description r1-eth1-desc
exit
ip route 11.11.11.11/32 1.1.1.2
-!ip route 13.13.13.13/32 3.3.3.2 vrf red
\ No newline at end of file
+!ip route 13.13.13.13/32 3.3.3.2 vrf red
--- /dev/null
+{
+ "frr-interface:lib": {
+ "interface": [
+ {
+ "name": "r1-eth0",
+ "description": "r1-eth0-desc"
+ },
+ {
+ "name": "r1-eth1",
+ "description": "r1-eth1-desc"
+ }
+ ]
+ }
+}
--- /dev/null
+{
+ "frr-interface:lib": {
+ "interface": [
+ {
+ "name": "r1-eth0",
+ "description": "r1-eth0-desc"
+ }
+ ]
+ }
+}
--- /dev/null
+{
+ "frr-interface:lib": {
+ "interface": [
+ {
+ "name": "r1-eth0",
+ "vrf": "default",
+ "description": "r1-eth0-desc",
+ "state": {
+ "if-index": "rubout",
+ "mtu": 1500,
+ "mtu6": 1500,
+ "speed": 10000,
+ "metric": 0,
+ "phy-address": "rubout"
+ },
+ "frr-zebra:zebra": {
+ "state": {
+ "up-count": 0,
+ "down-count": 0
+ }
+ }
+ }
+ ]
+ }
+}
'route[prefix="1.1.1.0/24"]/route-entry[protocol="connected"]/metric',
"simple-results/result-singleton-metric.json",
),
+ (
+ '/frr-interface:lib/interface[name="r1-eth0"]',
+ "simple-results/result-intf-eth0-with-config.json",
+ "with-config",
+ ),
+ (
+ '/frr-interface:lib/interface[name="r1-eth0"]',
+ "simple-results/result-intf-eth0-only-config.json",
+ "only-config",
+ ),
+ (
+ "/frr-interface:lib/interface/description",
+ "simple-results/result-intf-description.json",
+ "with-config",
+ ),
# Interface state
(
'/frr-interface:lib/interface[name="r1-eth0"]/state',