diff options
Diffstat (limited to 'tests/topotests')
77 files changed, 4883 insertions, 2969 deletions
diff --git a/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py b/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py index 705937ef9..d478e9902 100644 --- a/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py +++ b/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py @@ -130,13 +130,15 @@ def test_bfd_loss_intermediate(): pytest.skip(tgen.errors) r1 = tgen.gears["r1"] - expected = { "as":101, "peers":{ "2001:db8:4::1": { "state":"Established" } } } - test_func = partial(topotest.router_json_cmp, r1, "show bgp ipv6 uni summ json", expected) + expected = {"as": 101, "peers": {"2001:db8:4::1": {"state": "Established"}}} + test_func = partial( + topotest.router_json_cmp, r1, "show bgp ipv6 uni summ json", expected + ) _, result = topotest.run_and_expect(test_func, None, count=60, wait=1) - assertmsg ='"r1" has not established bgp peering yet' + assertmsg = '"r1" has not established bgp peering yet' assert result is None, assertmsg - #assert False + # assert False logger.info("removing IPv6 address from r2 to simulate loss of connectivity") # Disable r2-eth0 ipv6 address cmd = 'vtysh -c "configure terminal" -c "interface r2-eth1" -c "no ipv6 address 2001:db8:4::2/64"' diff --git a/tests/topotests/bfd_vrflite_topo1/test_bfd_vrflite_topo1.py b/tests/topotests/bfd_vrflite_topo1/test_bfd_vrflite_topo1.py index 30f4a2f9b..fee5f2d53 100644 --- a/tests/topotests/bfd_vrflite_topo1/test_bfd_vrflite_topo1.py +++ b/tests/topotests/bfd_vrflite_topo1/test_bfd_vrflite_topo1.py @@ -81,8 +81,7 @@ def setup_module(mod): for rname, router in router_list.items(): router.load_config( - TopoRouter.RD_ZEBRA, - os.path.join(CWD, "{}/zebra.conf".format(rname)) + TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname)) ) router.load_config( TopoRouter.RD_BFD, os.path.join(CWD, "{}/bfdd.conf".format(rname)) @@ -114,8 +113,8 @@ def test_bfd_connection(): if tgen.routers_have_failure(): pytest.skip(tgen.errors) logger.info("waiting for bfd peers to go up") - router = tgen.gears['r1'] - json_file = "{}/{}/bfd_peers_status.json".format(CWD, 'r1') + router = tgen.gears["r1"] + json_file = "{}/{}/bfd_peers_status.json".format(CWD, "r1") expected = json.loads(open(json_file).read()) test_func = partial( diff --git a/tests/topotests/bgp_color_extcommunities/test_bgp_color_extcommunities.py b/tests/topotests/bgp_color_extcommunities/test_bgp_color_extcommunities.py index 6d17cdb4d..e0c1b4953 100644 --- a/tests/topotests/bgp_color_extcommunities/test_bgp_color_extcommunities.py +++ b/tests/topotests/bgp_color_extcommunities/test_bgp_color_extcommunities.py @@ -117,7 +117,9 @@ def test_bgp_color_extended_communities(): test_func = functools.partial(_bgp_check_route, r2, True) _, result = topotest.run_and_expect(test_func, None, count=30, wait=1) - assert result is None, "10.10.10.0/24 ext community is correctly not installed, but SHOULD be" + assert ( + result is None + ), "10.10.10.0/24 ext community is correctly not installed, but SHOULD be" if __name__ == "__main__": diff --git a/tests/topotests/bgp_confed1/test_bgp_confed1.py b/tests/topotests/bgp_confed1/test_bgp_confed1.py index 57a852202..2b52cc10b 100644 --- a/tests/topotests/bgp_confed1/test_bgp_confed1.py +++ b/tests/topotests/bgp_confed1/test_bgp_confed1.py @@ -32,7 +32,7 @@ pytestmark = [pytest.mark.bgpd] def build_topo(tgen): - for routern in range(1, 5): + for routern in range(1, 5): tgen.add_router("r{}".format(routern)) switch = tgen.add_switch("s1") @@ -47,6 +47,7 @@ def build_topo(tgen): switch.add_link(tgen.gears["r2"]) switch.add_link(tgen.gears["r3"]) + def setup_module(mod): tgen = Topogen(build_topo, mod.__name__) @@ -67,6 +68,7 @@ def setup_module(mod): # Initialize all routers. tgen.start_router() + def teardown_module(_mod): "Teardown the pytest environment" tgen = get_topogen() diff --git a/tests/topotests/bgp_default_originate/test_bgp_default_originate_topo1_1.py b/tests/topotests/bgp_default_originate/test_bgp_default_originate_topo1_1.py index 6156968de..50a1938ae 100644 --- a/tests/topotests/bgp_default_originate/test_bgp_default_originate_topo1_1.py +++ b/tests/topotests/bgp_default_originate/test_bgp_default_originate_topo1_1.py @@ -325,12 +325,14 @@ def teardown_module(): ) logger.info("=" * 40) + ##################################################### # # Testcases # ##################################################### + def test_verify_bgp_default_originate_in_IBGP_p0(request): """ Verify BGP default-originate route with IBGP peer @@ -396,7 +398,9 @@ def test_verify_bgp_default_originate_in_IBGP_p0(request): step("After changing the BGP AS Path Verify the BGP Convergence") BGP_CONVERGENCE = verify_bgp_convergence(tgen, topo) - assert BGP_CONVERGENCE is True, " Complete Convergence is expected after changing the ASN but failed to converge --> :Failed \n Error: {}".format( + assert ( + BGP_CONVERGENCE is True + ), " Complete Convergence is expected after changing the ASN but failed to converge --> :Failed \n Error: {}".format( BGP_CONVERGENCE ) @@ -413,8 +417,10 @@ def test_verify_bgp_default_originate_in_IBGP_p0(request): } } result = create_static_routes(tgen, static_routes_input) - assert result is True, "Testcase {} : Failed to configure the static routes {} on router R1 \n Error: {}".format( - tc_name,static_routes_input, result + assert ( + result is True + ), "Testcase {} : Failed to configure the static routes {} on router R1 \n Error: {}".format( + tc_name, static_routes_input, result ) step("verify IPv4 and IPv6 static route are configured and up on R1") for addr_type in ADDR_TYPES: @@ -429,8 +435,10 @@ def test_verify_bgp_default_originate_in_IBGP_p0(request): } } result = verify_fib_routes(tgen, addr_type, "r1", static_routes_input) - assert result is True, "Testcase {} : Failed \n After configuring the static routes {} , the routes are not found in FIB \n Error: {}".format( - tc_name,static_routes_input, result + assert ( + result is True + ), "Testcase {} : Failed \n After configuring the static routes {} , the routes are not found in FIB \n Error: {}".format( + tc_name, static_routes_input, result ) step( @@ -483,7 +491,11 @@ def test_verify_bgp_default_originate_in_IBGP_p0(request): }, } result = create_router_bgp(tgen, topo, redistribute_static) - assert result is True, "Testcase {} : Failed to configure the redistribute static configuration \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the redistribute static configuration \n Error: {}".format( + tc_name, result + ) step( "After configuring redistribute command , verify static and connected routes ( loopback connected routes) are advertised on R2" @@ -517,13 +529,17 @@ def test_verify_bgp_default_originate_in_IBGP_p0(request): } } result = verify_fib_routes(tgen, addr_type, "r2", static_routes_input) - assert result is True, "Testcase {} : After redistributing static routes the routes {} expected in FIB but NOT FOUND ......! \n Error: {}".format( - tc_name, static_routes_input,result + assert ( + result is True + ), "Testcase {} : After redistributing static routes the routes {} expected in FIB but NOT FOUND ......! \n Error: {}".format( + tc_name, static_routes_input, result ) result = verify_bgp_rib(tgen, addr_type, "r2", static_routes_input) - assert result is True, "Testcase {} : After redistributing static routes the routes {} expected in RIB but NOT FOUND ......! \n Error: {}".format( - tc_name, static_routes_input , result + assert ( + result is True + ), "Testcase {} : After redistributing static routes the routes {} expected in RIB but NOT FOUND ......! \n Error: {}".format( + tc_name, static_routes_input, result ) step( @@ -547,7 +563,11 @@ def test_verify_bgp_default_originate_in_IBGP_p0(request): } } result = create_router_bgp(tgen, topo, default_originate_config) - assert result is True, "Testcase {} : Failed Configuring default originate configuration. \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed Configuring default originate configuration. \n Error: {}".format( + tc_name, result + ) step( "After configuring default-originate command , verify default routes are advertised on R2 " @@ -574,12 +594,16 @@ def test_verify_bgp_default_originate_in_IBGP_p0(request): } result = verify_fib_routes(tgen, addr_type, "r2", static_routes_input) - assert result is True, "Testcase {} : post configuring the BGP Default originate configuration static and connected routes should not be effected but impacted on FIB .......! FAILED \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : post configuring the BGP Default originate configuration static and connected routes should not be effected but impacted on FIB .......! FAILED \n Error: {}".format( tc_name, result ) result = verify_bgp_rib(tgen, addr_type, "r2", static_routes_input) - assert result is True, "Testcase {} : Failedpost configuring the BGP Default originate configuration static and connected routes should not be effected but impacted on RIB......! FAILED \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failedpost configuring the BGP Default originate configuration static and connected routes should not be effected but impacted on RIB......! FAILED \n Error: {}".format( tc_name, result ) step( @@ -686,7 +710,9 @@ def test_verify_bgp_default_originate_in_EBGP_p0(request): step("After changing the BGP AS Path Verify the BGP Convergence") BGP_CONVERGENCE = verify_bgp_convergence(tgen, topo) - assert BGP_CONVERGENCE is True, "Complete convergence is expeceted after changing the ASN os the routes ..! :Failed \n Error: {}".format( + assert ( + BGP_CONVERGENCE is True + ), "Complete convergence is expeceted after changing the ASN os the routes ..! :Failed \n Error: {}".format( BGP_CONVERGENCE ) @@ -703,7 +729,9 @@ def test_verify_bgp_default_originate_in_EBGP_p0(request): } } result = create_static_routes(tgen, static_routes_input) - assert result is True, "Testcase {} : Failed to configure the static routes ....! Failed \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed to configure the static routes ....! Failed \n Error: {}".format( tc_name, result ) step("verify IPv4 and IPv6 static route are configured and up on R1") @@ -719,8 +747,10 @@ def test_verify_bgp_default_originate_in_EBGP_p0(request): } } result = verify_fib_routes(tgen, addr_type, "r3", static_routes_input) - assert result is True, "Testcase {} : Route is not found in {} in FIB ......! Failed \n Error: {}".format( - tc_name, static_routes_input,result + assert ( + result is True + ), "Testcase {} : Route is not found in {} in FIB ......! Failed \n Error: {}".format( + tc_name, static_routes_input, result ) step( @@ -773,7 +803,11 @@ def test_verify_bgp_default_originate_in_EBGP_p0(request): }, } result = create_router_bgp(tgen, topo, redistribute_static) - assert result is True, "Testcase {} : Failed to configure redistribute configuratin \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure redistribute configuratin \n Error: {}".format( + tc_name, result + ) step( "After configuring redistribute command , verify static and connected routes ( loopback connected routes) are advertised on R2" @@ -806,11 +840,15 @@ def test_verify_bgp_default_originate_in_EBGP_p0(request): } } result = verify_fib_routes(tgen, addr_type, "r2", static_routes_input) - assert result is True, "Testcase {} : static & and connected routes are expected but not found in FIB .... ! \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : static & and connected routes are expected but not found in FIB .... ! \n Error: {}".format( tc_name, result ) result = verify_bgp_rib(tgen, addr_type, "r2", static_routes_input) - assert result is True, "Testcase {} : static & and connected routes are expected but not found in RIB .... ! \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : static & and connected routes are expected but not found in RIB .... ! \n Error: {}".format( tc_name, result ) snapshot1 = get_prefix_count_route(tgen, topo, dut="r2", peer="r3") @@ -830,7 +868,11 @@ def test_verify_bgp_default_originate_in_EBGP_p0(request): } } result = create_router_bgp(tgen, topo, default_originate_config) - assert result is True, "Testcase {} : Failed to configure the default originate configuration \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the default originate configuration \n Error: {}".format( + tc_name, result + ) step( "After configuring default-originate command , verify default routes are advertised on R2 on both BGP RIB and FIB" @@ -853,13 +895,17 @@ def test_verify_bgp_default_originate_in_EBGP_p0(request): } result = verify_fib_routes(tgen, addr_type, "r2", static_routes_input) - assert result is True, "Testcase {} : static route from R1 {} and default route from R3 is expected in R2 FIB .....! NOT FOUND \n Error: {}".format( - tc_name, NETWORK1_1,result + assert ( + result is True + ), "Testcase {} : static route from R1 {} and default route from R3 is expected in R2 FIB .....! NOT FOUND \n Error: {}".format( + tc_name, NETWORK1_1, result ) result = verify_bgp_rib(tgen, addr_type, "r2", static_routes_input) - assert result is True, "Testcase {} : static route from R1 {} and default route from R3 is expected in R2 RIB .....! NOT FOUND \n Error: {}".format( - tc_name,NETWORK1_1, result + assert ( + result is True + ), "Testcase {} : static route from R1 {} and default route from R3 is expected in R2 RIB .....! NOT FOUND \n Error: {}".format( + tc_name, NETWORK1_1, result ) step( @@ -875,7 +921,11 @@ def test_verify_bgp_default_originate_in_EBGP_p0(request): metric=0, expected_aspath="4000", ) - assert result is True, "Testcase {} : Default route from R3 is expected with attributes in R2 RIB .....! NOT FOUND Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Default route from R3 is expected with attributes in R2 RIB .....! NOT FOUND Error: {}".format( + tc_name, result + ) step( "Taking the snapshot2 of the prefix count after configuring the default originate" @@ -968,7 +1018,9 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): step("After changing the BGP AS Path Verify the BGP Convergence") BGP_CONVERGENCE = verify_bgp_convergence(tgen, topo) - assert BGP_CONVERGENCE is True, "Complete convergence is expected after changing ASN ....! ERROR :Failed \n Error: {}".format( + assert ( + BGP_CONVERGENCE is True + ), "Complete convergence is expected after changing ASN ....! ERROR :Failed \n Error: {}".format( BGP_CONVERGENCE ) @@ -989,7 +1041,9 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = create_static_routes(tgen, static_routes_input) - assert result is True, "Testcase {} : Static Configuration is Failed \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Static Configuration is Failed \n Error: {}".format( tc_name, result ) @@ -1010,8 +1064,10 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = verify_fib_routes(tgen, addr_type, "r0", static_routes_input) - assert result is True, "Testcase {} : routes {} unable is not found in R0 FIB \n Error: {}".format( - tc_name, static_routes_input,result + assert ( + result is True + ), "Testcase {} : routes {} unable is not found in R0 FIB \n Error: {}".format( + tc_name, static_routes_input, result ) step( @@ -1028,7 +1084,11 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = create_router_bgp(tgen, topo, redistribute_static) - assert result is True, "Testcase {} : Failed to configure redistribute static configuration....! \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure redistribute static configuration....! \n Error: {}".format( + tc_name, result + ) step("verify IPv4 and IPv6 static route are configured and up on R1") for addr_type in ADDR_TYPES: @@ -1047,13 +1107,17 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = verify_fib_routes(tgen, addr_type, "r1", static_routes_input) - assert result is True, "Testcase {} : Failed... Routes {} expected in r0 FIB after configuring the redistribute config \n Error: {}".format( - tc_name,static_routes_input, result + assert ( + result is True + ), "Testcase {} : Failed... Routes {} expected in r0 FIB after configuring the redistribute config \n Error: {}".format( + tc_name, static_routes_input, result ) result = verify_bgp_rib(tgen, addr_type, "r1", static_routes_input) - assert result is True, "Testcase {} : Failed... Routes {} expected in r0 RIB after configuring the redistribute config \n Error: {}".format( - tc_name, static_routes_input,result + assert ( + result is True + ), "Testcase {} : Failed... Routes {} expected in r0 RIB after configuring the redistribute config \n Error: {}".format( + tc_name, static_routes_input, result ) step( @@ -1094,7 +1158,11 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = create_prefix_lists(tgen, input_dict_3) - assert result is True, "Testcase {} : Failed to configure the prefix list \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the prefix list \n Error: {}".format( + tc_name, result + ) step( "Configure IPV4 and IPv6 route-map (RMv4 and RMv6 ) matching prefix-list (Pv4 and Pv6) respectively on R1" @@ -1120,7 +1188,11 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = create_route_maps(tgen, input_dict_3) - assert result is True, "Testcase {} : Failed to configure the route map \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the route map \n Error: {}".format( + tc_name, result + ) step( "Configure default-originate with route-map (RMv4 and RMv6) on R1, on BGP IPv4 and IPv6 address family " @@ -1142,7 +1214,11 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = create_router_bgp(tgen, topo, default_originate_config) - assert result is True, "Testcase {} : Failed to configure the default originate \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the default originate \n Error: {}".format( + tc_name, result + ) step("Verify the default route is received in BGP RIB and FIB") step( @@ -1167,7 +1243,9 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): static_routes_input, next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], ) - assert result is True, "Testcase {} : Failed...! Expected default route from R1 not found in FIB \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed...! Expected default route from R1 not found in FIB \n Error: {}".format( tc_name, result ) @@ -1178,7 +1256,9 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): static_routes_input, next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], ) - assert result is True, "Testcase {} : Failed...! Expected default route from R1 not found in RIB \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed...! Expected default route from R1 not found in RIB \n Error: {}".format( tc_name, result ) step("Remove route-map RMv4 and RMv6 from default-originate command in R1") @@ -1196,7 +1276,11 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = create_router_bgp(tgen, topo, default_originate_config) - assert result is True, "Testcase {} : Failed to remove the default originate conditional route-map \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to remove the default originate conditional route-map \n Error: {}".format( + tc_name, result + ) step( "Verify BGP RIB and FIB After removing route-map , default route still present on R2" @@ -1221,7 +1305,9 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): static_routes_input, next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], ) - assert result is True, "Testcase {} : Failed Default route from R1 is not found in FIB \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed Default route from R1 is not found in FIB \n Error: {}".format( tc_name, result ) @@ -1232,7 +1318,9 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): static_routes_input, next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], ) - assert result is True, "Testcase {} : Failed Default route from R1 is not found in RIB \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed Default route from R1 is not found in RIB \n Error: {}".format( tc_name, result ) @@ -1266,7 +1354,11 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = create_router_bgp(tgen, topo, default_originate_config) - assert result is True, "Testcase {} : Failed to configure the Default originate route-map \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the Default originate route-map \n Error: {}".format( + tc_name, result + ) step( "After configuring default-originate command , verify default routes are advertised on R2 " @@ -1290,7 +1382,9 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): static_routes_input, next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], ) - assert result is True, "Testcase {} : Failed Default Route from R1 is not found in FIB \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed Default Route from R1 is not found in FIB \n Error: {}".format( tc_name, result ) @@ -1301,7 +1395,9 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): static_routes_input, next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], ) - assert result is True, "Testcase {} : Failed Default Route from R1 is not found in RIB \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed Default Route from R1 is not found in RIB \n Error: {}".format( tc_name, result ) @@ -1345,7 +1441,11 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = create_prefix_lists(tgen, input_dict_3) - assert result is True, "Testcase {} : Failed to delete the prefix list Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to delete the prefix list Error: {}".format( + tc_name, result + ) step( "Verify BGP RIB and FIB After deleting prefix-list , verify IPv4 and IPv6 default route got removed from DUT " @@ -1426,7 +1526,11 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): } } result = create_prefix_lists(tgen, input_dict_3) - assert result is True, "Testcase {} : Failed to configure the prefix lists Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the prefix lists Error: {}".format( + tc_name, result + ) step( "After configuring the Prefixlist cross checking the BGP Default route is configured again , before deleting the route map" @@ -1452,7 +1556,9 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], expected=True, ) - assert result is True, "Testcase {} : Failed Default route from R1 is expected in FIB but not found \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed Default route from R1 is expected in FIB but not found \n Error: {}".format( tc_name, result ) @@ -1464,14 +1570,20 @@ def test_verify_bgp_default_originate_in_IBGP_with_route_map_p0(request): next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], expected=True, ) - assert result is True, "Testcase {} : Failed Default route from R1 is expected in RIB but not found \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed Default route from R1 is expected in RIB but not found \n Error: {}".format( tc_name, result ) step("Deleting the routemap") input_dict = {"r1": {"route_maps": ["RMv4", "RMv6"]}} result = delete_route_maps(tgen, input_dict) - assert result is True, "Testcase {} : Failed to delete the Route-map \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to delete the Route-map \n Error: {}".format( + tc_name, result + ) step( "Verify BGP RIB and FIB ,After deleting route-map , verify IPv4 and IPv6 default route got removed from DUT" @@ -1605,7 +1717,9 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): } } result = create_static_routes(tgen, static_routes_input) - assert result is True, "Testcase {} : Failed to configure the static routes \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed to configure the static routes \n Error: {}".format( tc_name, result ) step("verify IPv4 and IPv6 static route are configured and up on R4") @@ -1625,8 +1739,10 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): } } result = verify_fib_routes(tgen, addr_type, "r4", static_routes_input) - assert result is True, "Testcase {} : Failed Static route {} is not found in R4 FIB \n Error: {}".format( - tc_name, static_routes_input,result + assert ( + result is True + ), "Testcase {} : Failed Static route {} is not found in R4 FIB \n Error: {}".format( + tc_name, static_routes_input, result ) step( @@ -1643,7 +1759,11 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): } } result = create_router_bgp(tgen, topo, redistribute_static) - assert result is True, "Testcase {} : Failed to configure the redistribute static \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the redistribute static \n Error: {}".format( + tc_name, result + ) step("verify IPv4 and IPv6 static route are configured and up on R3") for addr_type in ADDR_TYPES: @@ -1662,11 +1782,15 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): } } result = verify_fib_routes(tgen, addr_type, "r3", static_routes_input) - assert result is True, "Testcase {} : Failed static routes from R1 and R3 is not found in FIB \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed static routes from R1 and R3 is not found in FIB \n Error: {}".format( tc_name, result ) result = verify_bgp_rib(tgen, addr_type, "r3", static_routes_input) - assert result is True, "Testcase {} : Failed static routes from R1 and R3 is not found in RIB \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed static routes from R1 and R3 is not found in RIB \n Error: {}".format( tc_name, result ) @@ -1698,12 +1822,20 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): } } result = create_prefix_lists(tgen, input_dict_3) - assert result is True, "Testcase {} : Failed to configure the prefix lists \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the prefix lists \n Error: {}".format( + tc_name, result + ) step("verify IPv4 and IPv6 Prefix list got configured on R3") input_dict = {"r3": {"prefix_lists": ["Pv4", "Pv6"]}} result = verify_prefix_lists(tgen, input_dict) - assert result is True, "Testcase {} : Failed ..! configured prefix lists {} are not found \n Error: {}".format(tc_name,input_dict, result) + assert ( + result is True + ), "Testcase {} : Failed ..! configured prefix lists {} are not found \n Error: {}".format( + tc_name, input_dict, result + ) step( "Configure IPv4 and IPv6 route-map ( RMv4 and RMv6 ) matching prefix-list (Pv4 and Pv6 ) respectively on R3" @@ -1729,7 +1861,11 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): } } result = create_route_maps(tgen, input_dict_3) - assert result is True, "Testcase {} : Failed to configure the route-map \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the route-map \n Error: {}".format( + tc_name, result + ) step( "Taking the snapshot of the prefix count before configuring the default originate" ) @@ -1754,7 +1890,11 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): } } result = create_router_bgp(tgen, topo, default_originate_config) - assert result is True, "Testcase {} : Failed to configure default-originate \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure default-originate \n Error: {}".format( + tc_name, result + ) step("Verify the default route is NOT received in BGP RIB and FIB on R2 ") step( @@ -1836,7 +1976,11 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): } } result = create_prefix_lists(tgen, input_dict_3) - assert result is True, "Testcase {} : Failed to configure the prefix lists Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to configure the prefix lists Error: {}".format( + tc_name, result + ) step("Verify BGP default route for IPv4 and IPv6 is received on R2") @@ -1859,7 +2003,9 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): static_routes_input, next_hop=DEFAULT_ROUTE_NXT_HOP_R3[addr_type], ) - assert result is True, "Testcase {} : Failed Default routes are expected in R2 FIB from R3 but not found ....! \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed Default routes are expected in R2 FIB from R3 but not found ....! \n Error: {}".format( tc_name, result ) @@ -1870,7 +2016,9 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): static_routes_input, next_hop=DEFAULT_ROUTE_NXT_HOP_R3[addr_type], ) - assert result is True, "Testcase {} : Failed Default routes are expected in R2 RIB from R3 but not found ....! \n Error: {}".format( + assert ( + result is True + ), "Testcase {} : Failed Default routes are expected in R2 RIB from R3 but not found ....! \n Error: {}".format( tc_name, result ) @@ -1914,7 +2062,11 @@ def test_verify_bgp_default_originate_in_EBGP_with_route_map_p0(request): } } result = create_prefix_lists(tgen, input_dict_3) - assert result is True, "Testcase {} : Failed to remove prefix-lists from R3 Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Failed to remove prefix-lists from R3 Error: {}".format( + tc_name, result + ) step( "After Removing route BGP default route for IPv4 and IPv6 is NOT received on R2" diff --git a/tests/topotests/bgp_default_originate/test_bgp_default_originate_topo1_2.py b/tests/topotests/bgp_default_originate/test_bgp_default_originate_topo1_2.py index 59f833b93..4e8bda55c 100644 --- a/tests/topotests/bgp_default_originate/test_bgp_default_originate_topo1_2.py +++ b/tests/topotests/bgp_default_originate/test_bgp_default_originate_topo1_2.py @@ -955,6 +955,7 @@ def test_verify_bgp_default_originate_route_map_in_OUT_p1(request): write_test_footer(tc_name) + def test_verify_bgp_default_originate_route_map_in_IN_p1(request): """Verify BGP default originate route-map with IN route-map""" tgen = get_topogen() @@ -1472,6 +1473,7 @@ def test_verify_bgp_default_originate_route_map_in_IN_p1(request): ) write_test_footer(tc_name) + def test_verify_default_originate_after_removing_default_originate_p1(request): """Verify BGP default route after removing default-originate""" @@ -2232,9 +2234,9 @@ def test_verify_default_originate_after_removing_default_originate_p1(request): ) write_test_footer(tc_name) + def test_verify_default_originate_route_with_GR_p1(request): - """ "Verify default-originate route with GR " - """ + """ "Verify default-originate route with GR " """ tgen = get_topogen() global BGP_CONVERGENCE global topo @@ -2250,14 +2252,13 @@ def test_verify_default_originate_route_with_GR_p1(request): if BGP_CONVERGENCE != True: pytest.skip("skipped because of BGP Convergence failure") - step("Configure IPV4 and IPV6 IBGP between R1 and R2 ") step("Configure IPV4 and IPV6 EBGP between R2 to R3 ") - r0_local_as = topo['routers']['r0']['bgp']['local_as'] - r1_local_as = topo['routers']['r1']['bgp']['local_as'] - r2_local_as = topo['routers']['r2']['bgp']['local_as'] - r3_local_as = topo['routers']['r3']['bgp']['local_as'] - r4_local_as = topo['routers']['r4']['bgp']['local_as'] + r0_local_as = topo["routers"]["r0"]["bgp"]["local_as"] + r1_local_as = topo["routers"]["r1"]["bgp"]["local_as"] + r2_local_as = topo["routers"]["r2"]["bgp"]["local_as"] + r3_local_as = topo["routers"]["r3"]["bgp"]["local_as"] + r4_local_as = topo["routers"]["r4"]["bgp"]["local_as"] input_dict = { "r0": { "bgp": { @@ -2336,33 +2337,14 @@ def test_verify_default_originate_route_with_GR_p1(request): "bgp": { "local_as": local_as, "address_family": { - "ipv4": { - "unicast": { - "default_originate":{ - "r2":{ - - } - - } - - } - }, "ipv6": { - "unicast": { - "default_originate":{ - "r2":{ - - } - - } - } - } - } + "ipv4": {"unicast": {"default_originate": {"r2": {}}}}, + "ipv6": {"unicast": {"default_originate": {"r2": {}}}}, + }, } } } result = create_router_bgp(tgen, topo, default_originate_config) - assert result is True, "Testcase {} : Failed \n Error: {}".format( - tc_name, result) + assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result) step( "R2 received default-originate routes and advertised it to R3 , verify on R2 and R3" @@ -2383,17 +2365,28 @@ def test_verify_default_originate_route_with_GR_p1(request): } } - result = verify_fib_routes(tgen, addr_type, "r2", static_routes_input,next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type]) + result = verify_fib_routes( + tgen, + addr_type, + "r2", + static_routes_input, + next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], + ) assert result is True, "Testcase {} : Failed \n Error: {}".format( tc_name, result ) - result = verify_bgp_rib(tgen, addr_type, "r2", static_routes_input,next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type]) + result = verify_bgp_rib( + tgen, + addr_type, + "r2", + static_routes_input, + next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], + ) assert result is True, "Testcase {} : Failed \n Error: {}".format( tc_name, result ) - step(" Kill BGPd session on R2") kill_router_daemons(tgen, "r2", ["bgpd"]) start_router_daemons(tgen, "r2", ["bgpd"]) @@ -2411,17 +2404,30 @@ def test_verify_default_originate_route_with_GR_p1(request): } } - result = verify_fib_routes(tgen, addr_type, "r2", static_routes_input,next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type]) + result = verify_fib_routes( + tgen, + addr_type, + "r2", + static_routes_input, + next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], + ) assert result is True, "Testcase {} : Failed \n Error: {}".format( tc_name, result ) - result = verify_bgp_rib(tgen, addr_type, "r2", static_routes_input,next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type]) + result = verify_bgp_rib( + tgen, + addr_type, + "r2", + static_routes_input, + next_hop=DEFAULT_ROUTE_NXT_HOP_R1[addr_type], + ) assert result is True, "Testcase {} : Failed \n Error: {}".format( tc_name, result ) write_test_footer(tc_name) + if __name__ == "__main__": args = ["-s"] + sys.argv[1:] sys.exit(pytest.main(args)) diff --git a/tests/topotests/bgp_default_originate/test_default_originate_conditional_routemap.py b/tests/topotests/bgp_default_originate/test_default_originate_conditional_routemap.py index 82c4e7e0a..f67a431c7 100644 --- a/tests/topotests/bgp_default_originate/test_default_originate_conditional_routemap.py +++ b/tests/topotests/bgp_default_originate/test_default_originate_conditional_routemap.py @@ -75,6 +75,7 @@ NETWORK1_1 = {"ipv4": "198.51.1.1/32", "ipv6": "2001:DB8::1:1/128"} DEFAULT_ROUTES = {"ipv4": "0.0.0.0/0", "ipv6": "0::0/0"} NEXT_HOP_IP = {"ipv4": "Null0", "ipv6": "Null0"} + def setup_module(mod): """ Sets up the pytest environment @@ -818,11 +819,11 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): step("Configure IPv4 and IPv6 , EBGP neighbor between R3 and R2") step("Configure IPv4 and IPv6 IBGP neighbor between R3 and R4") - r0_local_as = topo['routers']['r0']['bgp']['local_as'] - r1_local_as = topo['routers']['r1']['bgp']['local_as'] - r2_local_as = topo['routers']['r2']['bgp']['local_as'] - r3_local_as = topo['routers']['r3']['bgp']['local_as'] - r4_local_as = topo['routers']['r4']['bgp']['local_as'] + r0_local_as = topo["routers"]["r0"]["bgp"]["local_as"] + r1_local_as = topo["routers"]["r1"]["bgp"]["local_as"] + r2_local_as = topo["routers"]["r2"]["bgp"]["local_as"] + r3_local_as = topo["routers"]["r3"]["bgp"]["local_as"] + r4_local_as = topo["routers"]["r4"]["bgp"]["local_as"] input_dict = { "r0": { "bgp": { @@ -1026,22 +1027,21 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "action": "permit", "seq_id": "1", "set": { - "path": { - "as_num": "200", - "as_action": "prepend", - } + "path": { + "as_num": "200", + "as_action": "prepend", } - + }, }, { "action": "permit", "seq_id": "2", "set": { - "path": { - "as_num": "300", - "as_action": "prepend", - } + "path": { + "as_num": "300", + "as_action": "prepend", } + }, }, ], "RMv6": [ @@ -1049,21 +1049,21 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "action": "permit", "seq_id": "1", "set": { - "path": { - "as_num": "200", - "as_action": "prepend", - } + "path": { + "as_num": "200", + "as_action": "prepend", } + }, }, { "action": "permit", "seq_id": "2", "set": { - "path": { - "as_num": "300", - "as_action": "prepend", - } + "path": { + "as_num": "300", + "as_action": "prepend", } + }, }, ], } @@ -1122,22 +1122,21 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "action": "permit", "seq_id": "1", "set": { - "path": { - "as_num": "500", - "as_action": "prepend", - } + "path": { + "as_num": "500", + "as_action": "prepend", } - + }, }, { "action": "permit", "seq_id": "2", "set": { - "path": { - "as_num": "600", - "as_action": "prepend", - } + "path": { + "as_num": "600", + "as_action": "prepend", } + }, }, ], "RMv6": [ @@ -1145,21 +1144,21 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "action": "permit", "seq_id": "1", "set": { - "path": { - "as_num": "500", - "as_action": "prepend", - } + "path": { + "as_num": "500", + "as_action": "prepend", } + }, }, { "action": "permit", "seq_id": "2", "set": { - "path": { - "as_num": "600", - "as_action": "prepend", - } + "path": { + "as_num": "600", + "as_action": "prepend", } + }, }, ], } @@ -1170,7 +1169,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): assert result is True, "Test case {} : Failed \n Error: {}".format(tc_name, result) assert result is True, "Testcase {} : Failed Error: {}".format(tc_name, result) - step("As path 500 added to IPv4 and IPv6 default -originate route received on R2") result = verify_rib_default_route( tgen, @@ -1232,7 +1230,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "Verify Configured metric value received on R2 along with as-path for IPv4 and IPv6 default routes " ) - DEFAULT_ROUTES = {"ipv4": "0.0.0.0/0", "ipv6": "::/0"} result = verify_rib_default_route( tgen, @@ -1244,7 +1241,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): expected_aspath="4000 500", ) - step( "Modify route-map seq1 configure metric 50 and route-map seq2 configure metric 100 IPv4 and IPv6 route-map " ) @@ -1294,7 +1290,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "Verify Configured metric value received on R2 along with as-path for IPv4 and IPv6 default routes " ) - result = verify_rib_default_route( tgen, topo, @@ -1314,7 +1309,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): { "action": "permit", "seq_id": "1", - "set": { "path": { "as_num": "500", @@ -1374,9 +1368,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "Verify AS-prepend is deleted from default originate route and metric value only present on R2 for IPv4 and IPv6 default routes " ) - - - result = verify_rib_default_route( tgen, topo, @@ -1388,7 +1379,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): ) assert result is True, "Testcase {} : Failed Error: {}".format(tc_name, result) - step("Delete metric value from IP4 and IPv6 route-map configured on R3 ") route_map = { "r3": { @@ -1428,8 +1418,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "Verify Metric value deleted from IPv4 and IPv6 default route on R2 ,verify default routes " ) - - result = verify_rib_default_route( tgen, topo, @@ -1443,11 +1431,11 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): assert result is True, "Testcase {} : Failed Error: {}".format(tc_name, result) step("Change IPv4 and IPv6 , EBGP to IBGP neighbor between R3 and R2") step("Change IPv4 and IPv6 IBGP to EBGP neighbor between R3 and R4") - r0_local_as = topo['routers']['r0']['bgp']['local_as'] - r1_local_as = topo['routers']['r1']['bgp']['local_as'] - r2_local_as = topo['routers']['r2']['bgp']['local_as'] - r3_local_as = topo['routers']['r3']['bgp']['local_as'] - r4_local_as = topo['routers']['r4']['bgp']['local_as'] + r0_local_as = topo["routers"]["r0"]["bgp"]["local_as"] + r1_local_as = topo["routers"]["r1"]["bgp"]["local_as"] + r2_local_as = topo["routers"]["r2"]["bgp"]["local_as"] + r3_local_as = topo["routers"]["r3"]["bgp"]["local_as"] + r4_local_as = topo["routers"]["r4"]["bgp"]["local_as"] input_dict = { "r0": { "bgp": { @@ -1459,7 +1447,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "local_as": r1_local_as, } }, - "r2": { "bgp": { "local_as": 1111, @@ -1645,8 +1632,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "Verify Configured metric value received on R2 along with as-path for IPv4 and IPv6 default routes " ) - - result = verify_rib_default_route( tgen, topo, @@ -1656,7 +1641,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): locPrf=50, ) - assert result is True, "Testcase {} : Failed Error: {}".format(tc_name, result) step( @@ -1708,9 +1692,6 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "Verify Modified local-preference value received on R2 for IPv4 and IPv6 default routes " ) - - - DEFAULT_ROUTES = {"ipv4": "0.0.0.0/0", "ipv6": "::/0"} result = verify_rib_default_route( tgen, @@ -1724,13 +1705,15 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): assert result is True, "Testcase {} : Failed Error: {}".format(tc_name, result) # updating the topology with the updated AS-Number to avoid conflict in con configuring the AS updated_topo = topo - updated_topo['routers']['r0']['bgp']['local_as']=get_dut_as_number(tgen,"r0") - updated_topo['routers']['r1']['bgp']['local_as']=get_dut_as_number(tgen,"r1") - updated_topo['routers']['r2']['bgp']['local_as']=get_dut_as_number(tgen,"r2") - updated_topo['routers']['r3']['bgp']['local_as']=get_dut_as_number(tgen,"r3") - updated_topo['routers']['r4']['bgp']['local_as']=get_dut_as_number(tgen,"r4") + updated_topo["routers"]["r0"]["bgp"]["local_as"] = get_dut_as_number(tgen, "r0") + updated_topo["routers"]["r1"]["bgp"]["local_as"] = get_dut_as_number(tgen, "r1") + updated_topo["routers"]["r2"]["bgp"]["local_as"] = get_dut_as_number(tgen, "r2") + updated_topo["routers"]["r3"]["bgp"]["local_as"] = get_dut_as_number(tgen, "r3") + updated_topo["routers"]["r4"]["bgp"]["local_as"] = get_dut_as_number(tgen, "r4") - step("Shut IPv4/IPv6 BGP neighbor from R4 ( R4-R3) using 'neighbor x.x.x.x shut' command ") + step( + "Shut IPv4/IPv6 BGP neighbor from R4 ( R4-R3) using 'neighbor x.x.x.x shut' command " + ) local_as = get_dut_as_number(tgen, dut="r4") shut_neighbor = { "r4": { @@ -1740,46 +1723,41 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "ipv4": { "unicast": { "neighbor": { - "r3": { - "dest_link": { - "r4": {"shutdown":True} - } - } + "r3": {"dest_link": {"r4": {"shutdown": True}}} } } }, "ipv6": { "unicast": { "neighbor": { - "r3": { - "dest_link": { - "r4": {"shutdown":True} - } - } + "r3": {"dest_link": {"r4": {"shutdown": True}}} } } - } - } + }, + }, } } } result = create_router_bgp(tgen, updated_topo, shut_neighbor) assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result) - interface = topo['routers']['r3']['links']['r4']['interface'] - input_dict = { - "r1": { - "interface_list": [interface], - "status": "down" - } - } + interface = topo["routers"]["r3"]["links"]["r4"]["interface"] + input_dict = {"r1": {"interface_list": [interface], "status": "down"}} result = interface_status(tgen, topo, input_dict) - assert result is True, "Testcase {} : Shut down the interface failed ! \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Shut down the interface failed ! \n Error: {}".format( + tc_name, result + ) step("After shutting the interface verify the BGP convergence") - result = verify_bgp_convergence(tgen,topo,expected=False) - assert result is not True, "Testcase {} : Failed \n After shutting Down BGP convergence should Fail and return False \n Error: {}".format(tc_name, result) + result = verify_bgp_convergence(tgen, topo, expected=False) + assert ( + result is not True + ), "Testcase {} : Failed \n After shutting Down BGP convergence should Fail and return False \n Error: {}".format( + tc_name, result + ) step("verify default route deleted from R2 ") result = verify_rib_default_route( @@ -1788,8 +1766,13 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected=False) - assert result is not True, "Testcase {} : Failed \n Error: After Shut down interface the default route is NOT expected but found in RIB -> {}".format( tc_name, result) + expected=False, + ) + assert ( + result is not True + ), "Testcase {} : Failed \n Error: After Shut down interface the default route is NOT expected but found in RIB -> {}".format( + tc_name, result + ) result = verify_fib_default_route( tgen, @@ -1797,11 +1780,17 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected=False) - assert result is not True, "Testcase {} : Failed \n Error: After Shut down interface the default route is NOT expected but found in FIB -> {}".format( tc_name, result) - + expected=False, + ) + assert ( + result is not True + ), "Testcase {} : Failed \n Error: After Shut down interface the default route is NOT expected but found in FIB -> {}".format( + tc_name, result + ) - step("no Shut IPv4/IPv6 BGP neighbor from R4 ( R4-R3) using 'neighbor x.x.x.x shut' command ") + step( + "no Shut IPv4/IPv6 BGP neighbor from R4 ( R4-R3) using 'neighbor x.x.x.x shut' command " + ) local_as = get_dut_as_number(tgen, dut="r4") shut_neighbor = { "r4": { @@ -1811,46 +1800,39 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "ipv4": { "unicast": { "neighbor": { - "r3": { - "dest_link": { - "r4": {"shutdown":False} - } - } + "r3": {"dest_link": {"r4": {"shutdown": False}}} } } }, "ipv6": { "unicast": { "neighbor": { - "r3": { - "dest_link": { - "r4": {"shutdown":False} - } - } + "r3": {"dest_link": {"r4": {"shutdown": False}}} } } - } - } + }, + }, } } } result = create_router_bgp(tgen, updated_topo, shut_neighbor) assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result) - interface = topo['routers']['r3']['links']['r4']['interface'] - input_dict = { - "r1": { - "interface_list": [interface], - "status": "up" - } - } + interface = topo["routers"]["r3"]["links"]["r4"]["interface"] + input_dict = {"r1": {"interface_list": [interface], "status": "up"}} result = interface_status(tgen, topo, input_dict) - assert result is True, "Testcase {} : Bring up interface failed ! \n Error: {}".format(tc_name, result) + assert ( + result is True + ), "Testcase {} : Bring up interface failed ! \n Error: {}".format(tc_name, result) step("After no shutting the interface verify the BGP convergence") - result = verify_bgp_convergence(tgen,topo,expected=True) - assert result is True, "Testcase {} : Failed \n After shutting Down BGP convergence should Fail and return False \n Error: {}".format(tc_name, result) + result = verify_bgp_convergence(tgen, topo, expected=True) + assert ( + result is True + ), "Testcase {} : Failed \n After shutting Down BGP convergence should Fail and return False \n Error: {}".format( + tc_name, result + ) step("After no shut neighbor , verify default route relearn on R2") result = verify_rib_default_route( @@ -1859,8 +1841,13 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected=True) - assert result is True, "Testcase {} : Failed \n Error: After no Shut down interface the default route is expected but found in RIB -> {}".format( tc_name, result) + expected=True, + ) + assert ( + result is True + ), "Testcase {} : Failed \n Error: After no Shut down interface the default route is expected but found in RIB -> {}".format( + tc_name, result + ) result = verify_fib_default_route( tgen, @@ -1868,10 +1855,13 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected=True) - assert result is True, "Testcase {} : Failed \n Error: After Shut down interface the default route is expected but found in FIB -> {}".format( tc_name, result) - - + expected=True, + ) + assert ( + result is True + ), "Testcase {} : Failed \n Error: After Shut down interface the default route is expected but found in FIB -> {}".format( + tc_name, result + ) step("Remove IPv4/IPv6 static route configure on R4") for addr_type in ADDR_TYPES: @@ -1881,7 +1871,7 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): { "network": [NETWORK1_1[addr_type]], "next_hop": NEXT_HOP_IP[addr_type], - "delete": True + "delete": True, } ] } @@ -1902,12 +1892,16 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): ] } } - result = verify_fib_routes(tgen, addr_type, "r4", static_routes_input, expected=False) - assert result is not True, "Testcase {} : Failed \n Error: {}".format( + result = verify_fib_routes( + tgen, addr_type, "r4", static_routes_input, expected=False + ) + assert result is not True, "Testcase {} : Failed \n Error: {}".format( tc_name, result ) - result = verify_bgp_rib(tgen, addr_type, "r4", static_routes_input, expected=False) - assert result is not True, "Testcase {} : Failed \n Error: {}".format( + result = verify_bgp_rib( + tgen, addr_type, "r4", static_routes_input, expected=False + ) + assert result is not True, "Testcase {} : Failed \n Error: {}".format( tc_name, result ) @@ -1918,8 +1912,13 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected= False) - assert result is not True, "Testcase {} : Failed \n Error: After removing static the default route is NOT expected but found in RIB -> {}".format( tc_name, result) + expected=False, + ) + assert ( + result is not True + ), "Testcase {} : Failed \n Error: After removing static the default route is NOT expected but found in RIB -> {}".format( + tc_name, result + ) result = verify_fib_default_route( tgen, @@ -1927,9 +1926,13 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected= False) - assert result is not True, "Testcase {} : Failed \n Error: After removing static the default route is NOT expected but found in FIB -> {}".format( tc_name, result) - + expected=False, + ) + assert ( + result is not True + ), "Testcase {} : Failed \n Error: After removing static the default route is NOT expected but found in FIB -> {}".format( + tc_name, result + ) step("Configuring the static route back in r4") for addr_type in ADDR_TYPES: @@ -1959,12 +1962,16 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): ] } } - result = verify_fib_routes(tgen, addr_type, "r4", static_routes_input, expected=True) - assert result is True, "Testcase {} : Failed \n Error: {}".format( + result = verify_fib_routes( + tgen, addr_type, "r4", static_routes_input, expected=True + ) + assert result is True, "Testcase {} : Failed \n Error: {}".format( tc_name, result ) - result = verify_bgp_rib(tgen, addr_type, "r4", static_routes_input, expected=True) - assert result is True, "Testcase {} : Failed \n Error: {}".format( + result = verify_bgp_rib( + tgen, addr_type, "r4", static_routes_input, expected=True + ) + assert result is True, "Testcase {} : Failed \n Error: {}".format( tc_name, result ) @@ -1975,8 +1982,13 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected= True) - assert result is True, "Testcase {} : Failed \n Error: After removing static the default route is expected but found in RIB -> {}".format( tc_name, result) + expected=True, + ) + assert ( + result is True + ), "Testcase {} : Failed \n Error: After removing static the default route is expected but found in RIB -> {}".format( + tc_name, result + ) result = verify_fib_default_route( tgen, @@ -1984,8 +1996,13 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected= True) - assert result is True, "Testcase {} : Failed \n Error: After removing static the default route is expected but found in FIB -> {}".format( tc_name, result) + expected=True, + ) + assert ( + result is True + ), "Testcase {} : Failed \n Error: After removing static the default route is expected but found in FIB -> {}".format( + tc_name, result + ) step("Deactivate IPv4 and IPv6 neighbor configured from R4 ( R4-R3)") @@ -1999,15 +2016,14 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "r3": {"dest_link": {"r4": {"deactivate": "ipv4"}}} } }, - - },"ipv6": { + }, + "ipv6": { "unicast": { "neighbor": { "r3": {"dest_link": {"r4": {"deactivate": "ipv6"}}} } }, - - } + }, } } } @@ -2022,8 +2038,13 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected= False) - assert result is not True, "Testcase {} : Failed \n Error: After Deactivating the BGP neighbor the default route is NOT expected but found in RIB -> {}".format( tc_name, result) + expected=False, + ) + assert ( + result is not True + ), "Testcase {} : Failed \n Error: After Deactivating the BGP neighbor the default route is NOT expected but found in RIB -> {}".format( + tc_name, result + ) result = verify_fib_default_route( tgen, @@ -2031,8 +2052,13 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected= False) - assert result is not True, "Testcase {} : Failed \n Error: After Deactivating the BGP neighbor the default route is NOT expected but found in FIB -> {}".format( tc_name, result) + expected=False, + ) + assert ( + result is not True + ), "Testcase {} : Failed \n Error: After Deactivating the BGP neighbor the default route is NOT expected but found in FIB -> {}".format( + tc_name, result + ) step("Activate IPv4 and IPv6 neighbor configured from R4 ( R4-R3)") @@ -2046,15 +2072,14 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): "r3": {"dest_link": {"r4": {"activate": "ipv4"}}} } }, - - },"ipv6": { + }, + "ipv6": { "unicast": { "neighbor": { "r3": {"dest_link": {"r4": {"activate": "ipv6"}}} } }, - - } + }, } } } @@ -2064,7 +2089,7 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): step("Verify bgp convergence.") bgp_convergence = verify_bgp_convergence(tgen, updated_topo) - assert bgp_convergence is True, "Testcase {} : Failed \n Error: {}".format( + assert bgp_convergence is True, "Testcase {} : Failed \n Error: {}".format( tc_name, bgp_convergence ) step("After Activating the BGP neighbor , verify default route learned on R2") @@ -2074,8 +2099,13 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected= True) - assert result is True, "Testcase {} : Failed \n Error: After Deactivating the BGP neighbor the default route is expected but found in RIB -> {}".format( tc_name, result) + expected=True, + ) + assert ( + result is True + ), "Testcase {} : Failed \n Error: After Deactivating the BGP neighbor the default route is expected but found in RIB -> {}".format( + tc_name, result + ) result = verify_fib_default_route( tgen, @@ -2083,10 +2113,16 @@ def test_verify_default_originate_after_BGP_attributes_p1(request): dut="r2", routes=DEFAULT_ROUTES, expected_nexthop=DEFAULT_ROUTE_NXT_HOP_R3, - expected= True) - assert result is True, "Testcase {} : Failed \n Error: After Deactivating the BGP neighbor the default route is expected but found in FIB -> {}".format( tc_name, result) + expected=True, + ) + assert ( + result is True + ), "Testcase {} : Failed \n Error: After Deactivating the BGP neighbor the default route is expected but found in FIB -> {}".format( + tc_name, result + ) write_test_footer(tc_name) + if __name__ == "__main__": args = ["-s"] + sys.argv[1:] sys.exit(pytest.main(args)) diff --git a/tests/topotests/bgp_dont_capability_negotiate/test_bgp_dont_capability_negotiate.py b/tests/topotests/bgp_dont_capability_negotiate/test_bgp_dont_capability_negotiate.py index 2ab13b08e..826932221 100644 --- a/tests/topotests/bgp_dont_capability_negotiate/test_bgp_dont_capability_negotiate.py +++ b/tests/topotests/bgp_dont_capability_negotiate/test_bgp_dont_capability_negotiate.py @@ -192,6 +192,7 @@ def test_bgp_check_fqdn(): _, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5) assert result is None, "FQDN capability disabled, but we still have a hostname" + if __name__ == "__main__": args = ["-s"] + sys.argv[1:] sys.exit(pytest.main(args)) diff --git a/tests/topotests/bgp_evpn_overlay_index_gateway/test_bgp_evpn_overlay_index_gateway.py b/tests/topotests/bgp_evpn_overlay_index_gateway/test_bgp_evpn_overlay_index_gateway.py index 2041a4091..603f069fe 100755 --- a/tests/topotests/bgp_evpn_overlay_index_gateway/test_bgp_evpn_overlay_index_gateway.py +++ b/tests/topotests/bgp_evpn_overlay_index_gateway/test_bgp_evpn_overlay_index_gateway.py @@ -179,7 +179,7 @@ def setup_module(mod): pe.cmd_raises("sysctl -w net.ipv4.tcp_l3mdev_accept={}".format(l3mdev_accept)) # For all registered routers, load the zebra configuration file - for (name, router) in tgen.routers().items(): + for name, router in tgen.routers().items(): router.load_config( TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(name)) ) @@ -230,11 +230,11 @@ def evpn_gateway_ip_show_op_check(trigger=" "): "zebra_vrf_ipv6": "show ipv6 route vrf vrf-blue json", } - for (name, pe) in tgen.gears.items(): + for name, pe in tgen.gears.items(): if name not in PES: continue - for (cmd_key, command) in show_commands.items(): + for cmd_key, command in show_commands.items(): expected_op_file = "{0}/{1}/{2}_{3}.json".format( CWD, name, cmd_key, trigger ) diff --git a/tests/topotests/bgp_extcomm_list_delete/test_bgp_extcomm-list_delete.py b/tests/topotests/bgp_extcomm_list_delete/test_bgp_extcomm-list_delete.py index eb05986fe..a5e5bdcee 100644 --- a/tests/topotests/bgp_extcomm_list_delete/test_bgp_extcomm-list_delete.py +++ b/tests/topotests/bgp_extcomm_list_delete/test_bgp_extcomm-list_delete.py @@ -124,7 +124,8 @@ def test_rt_extcomm_list_delete(): # check for the deletion of the extended community test_func = functools.partial( - _bgp_extcomm_list_del_check, r2, "10.10.10.1/32", r"1.1.1.1:1") + _bgp_extcomm_list_del_check, r2, "10.10.10.1/32", r"1.1.1.1:1" + ) _, result = topotest.run_and_expect(test_func, True, count=60, wait=0.5) assert result, "RT extended community 1.1.1.1:1 was not stripped." @@ -138,7 +139,8 @@ def test_soo_extcomm_list_delete(): # check for the deletion of the extended community test_func = functools.partial( - _bgp_extcomm_list_del_check, r2, "10.10.10.2/32", r"2.2.2.2:2") + _bgp_extcomm_list_del_check, r2, "10.10.10.2/32", r"2.2.2.2:2" + ) _, result = topotest.run_and_expect(test_func, True, count=60, wait=0.5) assert result, "SoO extended community 2.2.2.2:2 was not stripped." @@ -152,7 +154,8 @@ def test_nt_extcomm_list_delete(): # check for the deletion of the extended community test_func = functools.partial( - _bgp_extcomm_list_del_check, r2, "10.10.10.3/32", r"3.3.3.3") + _bgp_extcomm_list_del_check, r2, "10.10.10.3/32", r"3.3.3.3" + ) _, result = topotest.run_and_expect(test_func, True, count=60, wait=0.5) assert result, "NT extended community 3.3.3.3:0 was not stripped." diff --git a/tests/topotests/bgp_gr_restart_retain_routes/test_bgp_gr_restart_retain_routes.py b/tests/topotests/bgp_gr_restart_retain_routes/test_bgp_gr_restart_retain_routes.py index a820b4b22..ea71a926f 100644 --- a/tests/topotests/bgp_gr_restart_retain_routes/test_bgp_gr_restart_retain_routes.py +++ b/tests/topotests/bgp_gr_restart_retain_routes/test_bgp_gr_restart_retain_routes.py @@ -83,8 +83,10 @@ def test_bgp_gr_restart_retain_routes(): return topotest.json_cmp(output, expected) def _bgp_check_kernel_retained_routes(): - output = json.loads(r2.cmd("ip -j route show 172.16.255.1/32 proto bgp dev r2-eth0")) - expected = [{"dst":"172.16.255.1","gateway":"192.168.255.1","metric":20}] + output = json.loads( + r2.cmd("ip -j route show 172.16.255.1/32 proto bgp dev r2-eth0") + ) + expected = [{"dst": "172.16.255.1", "gateway": "192.168.255.1", "metric": 20}] return topotest.json_cmp(output, expected) step("Initial BGP converge") @@ -101,7 +103,9 @@ def test_bgp_gr_restart_retain_routes(): assert result is None, "Failed to see BGP retained routes on R2" step("Check if routes (Kernel) are retained at R2") - assert _bgp_check_kernel_retained_routes() is None, "Failed to retain BGP routes in kernel on R2" + assert ( + _bgp_check_kernel_retained_routes() is None + ), "Failed to retain BGP routes in kernel on R2" if __name__ == "__main__": diff --git a/tests/topotests/bgp_l3vpn_to_bgp_direct/scripts/adjacencies.py b/tests/topotests/bgp_l3vpn_to_bgp_direct/scripts/adjacencies.py index 6cd92e293..c9666601a 100644 --- a/tests/topotests/bgp_l3vpn_to_bgp_direct/scripts/adjacencies.py +++ b/tests/topotests/bgp_l3vpn_to_bgp_direct/scripts/adjacencies.py @@ -7,18 +7,36 @@ luCommand("ce1", 'vtysh -c "show bgp summary"', " 00:0", "wait", "Adjacencies up luCommand("ce2", 'vtysh -c "show bgp summary"', " 00:0", "wait", "Adjacencies up", 180) luCommand("ce3", 'vtysh -c "show bgp summary"', " 00:0", "wait", "Adjacencies up", 180) luCommand( - "r1", 'vtysh -c "show ip route ospf"', "2.2.2.2", "wait", "OSPF Route has Arrived", 60) + "r1", + 'vtysh -c "show ip route ospf"', + "2.2.2.2", + "wait", + "OSPF Route has Arrived", + 60, +) luCommand( "r1", "ping 2.2.2.2 -c 1", " 0. packet loss", "wait", "PE->P2 (loopback) ping", 60 ) luCommand( - "r3", 'vtysh -c "show ip route ospf"', "2.2.2.2", "wait", "OSPF Route has Arrived", 60) + "r3", + 'vtysh -c "show ip route ospf"', + "2.2.2.2", + "wait", + "OSPF Route has Arrived", + 60, +) luCommand( "r3", "ping 2.2.2.2 -c 1", " 0. packet loss", "wait", "PE->P2 (loopback) ping", 60 ) luCommand( - "r4", 'vtysh -c "show ip route ospf"', "2.2.2.2", "wait", "OSPF Route has Arrived", 60) + "r4", + 'vtysh -c "show ip route ospf"', + "2.2.2.2", + "wait", + "OSPF Route has Arrived", + 60, +) luCommand( "r4", "ping 2.2.2.2 -c 1", " 0. packet loss", "wait", "PE->P2 (loopback) ping", 60 ) diff --git a/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/scale_up.py b/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/scale_up.py index e05bf21ea..2ce4bc59b 100644 --- a/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/scale_up.py +++ b/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/scale_up.py @@ -70,7 +70,7 @@ else: "See all sharp routes in rib on ce1", wait, wait_time=10, - ) + ) luCommand( "ce2", 'vtysh -c "show ip route summ" | grep "sharp" | cut -d " " -f 33', @@ -79,7 +79,7 @@ else: "See all sharp routes in rib on ce2", wait, wait_time=10, - ) + ) rtrs = ["ce1", "ce2", "ce3"] for rtr in rtrs: diff --git a/tests/topotests/bgp_large_comm_list_match/test_bgp_large_comm_list_match.py b/tests/topotests/bgp_large_comm_list_match/test_bgp_large_comm_list_match.py index 483c048d2..7023e3a50 100644 --- a/tests/topotests/bgp_large_comm_list_match/test_bgp_large_comm_list_match.py +++ b/tests/topotests/bgp_large_comm_list_match/test_bgp_large_comm_list_match.py @@ -137,7 +137,9 @@ def test_bgp_large_comm_list_match_any(): step("BGP filtering check with large-community-list on R3") test_func = functools.partial(_bgp_converge) _, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5) - assert result is None, "Failed to filter BGP UPDATES with large-community-list on R3" + assert ( + result is None + ), "Failed to filter BGP UPDATES with large-community-list on R3" if __name__ == "__main__": diff --git a/tests/topotests/bgp_local_asn/test_bgp_local_asn_agg.py b/tests/topotests/bgp_local_asn/test_bgp_local_asn_agg.py index 26e8fe970..c84fce6a9 100644 --- a/tests/topotests/bgp_local_asn/test_bgp_local_asn_agg.py +++ b/tests/topotests/bgp_local_asn/test_bgp_local_asn_agg.py @@ -35,7 +35,7 @@ from lib.common_config import ( verify_rib, step, check_address_types, - check_router_status + check_router_status, ) from lib.topolog import logger diff --git a/tests/topotests/bgp_local_asn_dot/test_bgp_local_asn_dot_agg.py b/tests/topotests/bgp_local_asn_dot/test_bgp_local_asn_dot_agg.py index cb8fa1e9f..cfaab9bbe 100644 --- a/tests/topotests/bgp_local_asn_dot/test_bgp_local_asn_dot_agg.py +++ b/tests/topotests/bgp_local_asn_dot/test_bgp_local_asn_dot_agg.py @@ -48,7 +48,7 @@ from lib.common_config import ( verify_rib, step, check_address_types, - check_router_status + check_router_status, ) from lib.topolog import logger @@ -163,7 +163,9 @@ def test_verify_bgp_local_as_agg_in_EBGP_p0(request): "neighbor": { neighbor: { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -190,7 +192,9 @@ def test_verify_bgp_local_as_agg_in_EBGP_p0(request): "neighbor": { neighbor: { "dest_link": { - dut: {"local_asn": {"remote_as": "1.110"}} + dut: { + "local_asn": {"remote_as": "1.110"} + } } } } diff --git a/tests/topotests/bgp_local_asn_dot/test_bgp_local_asn_dot_topo1.py b/tests/topotests/bgp_local_asn_dot/test_bgp_local_asn_dot_topo1.py index e9234f517..bacef4766 100644 --- a/tests/topotests/bgp_local_asn_dot/test_bgp_local_asn_dot_topo1.py +++ b/tests/topotests/bgp_local_asn_dot/test_bgp_local_asn_dot_topo1.py @@ -229,7 +229,9 @@ def test_verify_bgp_local_as_in_EBGP_p0(request): "neighbor": { neighbor: { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -256,7 +258,9 @@ def test_verify_bgp_local_as_in_EBGP_p0(request): "neighbor": { neighbor: { "dest_link": { - dut: {"local_asn": {"remote_as": "1.110"}} + dut: { + "local_asn": {"remote_as": "1.110"} + } } } } @@ -832,7 +836,9 @@ def test_verify_bgp_local_as_GR_EBGP_p0(request): "neighbor": { "r2": { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -861,7 +867,9 @@ def test_verify_bgp_local_as_GR_EBGP_p0(request): "neighbor": { "r4": { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -1395,7 +1403,9 @@ def test_verify_bgp_local_as_in_EBGP_aspath_p0(request): "neighbor": { neighbor: { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -1422,7 +1432,9 @@ def test_verify_bgp_local_as_in_EBGP_aspath_p0(request): "neighbor": { neighbor: { "dest_link": { - dut: {"local_asn": {"remote_as": "1.110"}} + dut: { + "local_asn": {"remote_as": "1.110"} + } } } } @@ -1593,7 +1605,10 @@ def test_verify_bgp_local_as_in_EBGP_aspath_p0(request): { "action": "permit", "set": { - "path": {"as_num": "1.1000 1.1000", "as_action": "prepend"} + "path": { + "as_num": "1.1000 1.1000", + "as_action": "prepend", + } }, } ] @@ -1778,7 +1793,9 @@ def test_verify_bgp_local_as_in_iBGP_p0(request): "neighbor": { "r4": { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -2137,7 +2154,9 @@ def test_verify_bgp_local_as_allow_as_in_iBGP_p0(request): "neighbor": { "r2": { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -2166,7 +2185,9 @@ def test_verify_bgp_local_as_allow_as_in_iBGP_p0(request): "neighbor": { "r4": { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -2484,7 +2505,9 @@ def test_verify_bgp_local_as_in_EBGP_port_reset_p0(request): "neighbor": { neighbor: { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -2511,7 +2534,9 @@ def test_verify_bgp_local_as_in_EBGP_port_reset_p0(request): "neighbor": { neighbor: { "dest_link": { - dut: {"local_asn": {"remote_as": "1.110"}} + dut: { + "local_asn": {"remote_as": "1.110"} + } } } } @@ -2824,7 +2849,9 @@ def test_verify_bgp_local_as_in_EBGP_negative2_p0(request): "neighbor": { neighbor: { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -2851,7 +2878,9 @@ def test_verify_bgp_local_as_in_EBGP_negative2_p0(request): "neighbor": { neighbor: { "dest_link": { - dut: {"local_asn": {"remote_as": "1.110"}} + dut: { + "local_asn": {"remote_as": "1.110"} + } } } } @@ -3164,7 +3193,9 @@ def test_verify_bgp_local_as_in_EBGP_negative3_p0(request): "neighbor": { neighbor: { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -3191,7 +3222,9 @@ def test_verify_bgp_local_as_in_EBGP_negative3_p0(request): "neighbor": { neighbor: { "dest_link": { - dut: {"local_asn": {"remote_as": "1.110"}} + dut: { + "local_asn": {"remote_as": "1.110"} + } } } } @@ -3354,7 +3387,9 @@ def test_verify_bgp_local_as_in_EBGP_restart_daemons_p0(request): "neighbor": { neighbor: { "dest_link": { - "r3": {"local_asn": {"local_as": "1.110"}} + "r3": { + "local_asn": {"local_as": "1.110"} + } } } } @@ -3381,7 +3416,9 @@ def test_verify_bgp_local_as_in_EBGP_restart_daemons_p0(request): "neighbor": { neighbor: { "dest_link": { - dut: {"local_asn": {"remote_as": "1.110"}} + dut: { + "local_asn": {"remote_as": "1.110"} + } } } } diff --git a/tests/topotests/bgp_path_attributes_topo1/test_bgp_path_attributes.py b/tests/topotests/bgp_path_attributes_topo1/test_bgp_path_attributes.py index df390327d..8504737d8 100644 --- a/tests/topotests/bgp_path_attributes_topo1/test_bgp_path_attributes.py +++ b/tests/topotests/bgp_path_attributes_topo1/test_bgp_path_attributes.py @@ -78,6 +78,7 @@ pytestmark = [pytest.mark.bgpd, pytest.mark.staticd] # Address read from env variables ADDR_TYPES = check_address_types() + #### def setup_module(mod): """ diff --git a/tests/topotests/bgp_path_selection/test_bgp_path_selection.py b/tests/topotests/bgp_path_selection/test_bgp_path_selection.py index bf5737b66..30083b4de 100644 --- a/tests/topotests/bgp_path_selection/test_bgp_path_selection.py +++ b/tests/topotests/bgp_path_selection/test_bgp_path_selection.py @@ -49,7 +49,11 @@ def setup_module(mod): for routern in range(1, 4): tgen.gears["r{}".format(routern)].cmd("ip link add vrf1 type vrf table 10") tgen.gears["r{}".format(routern)].cmd("ip link set vrf1 up") - tgen.gears["r{}".format(routern)].cmd("ip address add dev vrf1 {}.{}.{}.{}/32".format(routern, routern, routern,routern)) + tgen.gears["r{}".format(routern)].cmd( + "ip address add dev vrf1 {}.{}.{}.{}/32".format( + routern, routern, routern, routern + ) + ) tgen.gears["r2"].cmd("ip address add dev vrf1 192.0.2.8/32") tgen.gears["r3"].cmd("ip address add dev vrf1 192.0.2.8/32") @@ -74,6 +78,7 @@ def teardown_module(mod): tgen = get_topogen() tgen.stop_topology() + def test_bgp_path_selection_ecmp(): tgen = get_topogen() @@ -97,7 +102,7 @@ def test_bgp_path_selection_ecmp(): "aspath": {"string": "65002"}, "multipath": True, "nexthops": [{"ip": "192.0.2.3", "metric": 20}], - } + }, ] } @@ -117,7 +122,9 @@ def test_bgp_path_selection_vpn_ecmp(): def _bgp_check_path_selection_vpn_ecmp(): output = json.loads( - tgen.gears["r1"].vtysh_cmd("show bgp vrf vrf1 ipv4 unicast 192.0.2.8/32 json") + tgen.gears["r1"].vtysh_cmd( + "show bgp vrf vrf1 ipv4 unicast 192.0.2.8/32 json" + ) ) expected = { "paths": [ @@ -132,7 +139,7 @@ def test_bgp_path_selection_vpn_ecmp(): "aspath": {"string": "65002"}, "multipath": True, "nexthops": [{"ip": "192.0.2.3", "metric": 20}], - } + }, ] } @@ -160,13 +167,13 @@ def test_bgp_path_selection_metric(): "valid": True, "aspath": {"string": "65002"}, "nexthops": [{"ip": "192.0.2.2", "metric": 10}], - "bestpath":{ "selectionReason":"IGP Metric"}, + "bestpath": {"selectionReason": "IGP Metric"}, }, { "valid": True, "aspath": {"string": "65002"}, "nexthops": [{"ip": "192.0.2.3", "metric": 20}], - } + }, ] } @@ -189,7 +196,9 @@ def test_bgp_path_selection_vpn_metric(): def _bgp_check_path_selection_vpn_metric(): output = json.loads( - tgen.gears["r1"].vtysh_cmd("show bgp vrf vrf1 ipv4 unicast 192.0.2.8/32 json") + tgen.gears["r1"].vtysh_cmd( + "show bgp vrf vrf1 ipv4 unicast 192.0.2.8/32 json" + ) ) expected = { "paths": [ @@ -197,13 +206,13 @@ def test_bgp_path_selection_vpn_metric(): "valid": True, "aspath": {"string": "65002"}, "nexthops": [{"ip": "192.0.2.2", "metric": 10}], - "bestpath":{ "selectionReason":"IGP Metric"}, + "bestpath": {"selectionReason": "IGP Metric"}, }, { "valid": True, "aspath": {"string": "65002"}, "nexthops": [{"ip": "192.0.2.3", "metric": 20}], - } + }, ] } diff --git a/tests/topotests/bgp_route_aggregation/test_bgp_aggregation.py b/tests/topotests/bgp_route_aggregation/test_bgp_aggregation.py index 412ecc12e..71dc2fd9d 100644 --- a/tests/topotests/bgp_route_aggregation/test_bgp_aggregation.py +++ b/tests/topotests/bgp_route_aggregation/test_bgp_aggregation.py @@ -815,7 +815,11 @@ def test_route_summarisation_with_as_set_p1(request): ) for addr_type in ADDR_TYPES: - for pfx, seq_id, network, in zip( + for ( + pfx, + seq_id, + network, + ) in zip( [1, 2, 3, 4, 5], [10, 20, 30, 40, 50], [NETWORK_1_1, NETWORK_1_2, NETWORK_1_3, NETWORK_1_4, NETWORK_1_5], diff --git a/tests/topotests/bgp_srv6l3vpn_route_leak/test_bgp_srv6l3vpn_route_leak.py b/tests/topotests/bgp_srv6l3vpn_route_leak/test_bgp_srv6l3vpn_route_leak.py index 900d0c296..f0c914424 100755 --- a/tests/topotests/bgp_srv6l3vpn_route_leak/test_bgp_srv6l3vpn_route_leak.py +++ b/tests/topotests/bgp_srv6l3vpn_route_leak/test_bgp_srv6l3vpn_route_leak.py @@ -37,10 +37,12 @@ def setup_module(mod): tgen.start_topology() for rname, router in tgen.routers().items(): - router.load_config(TopoRouter.RD_ZEBRA, - os.path.join(CWD, '{}/zebra.conf'.format(rname))) - router.load_config(TopoRouter.RD_BGP, - os.path.join(CWD, '{}/bgpd.conf'.format(rname))) + router.load_config( + TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname)) + ) + router.load_config( + TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname)) + ) tgen.gears["pe1"].run("ip link add vrf10 type vrf table 10") tgen.gears["pe1"].run("ip link set vrf10 up") @@ -62,7 +64,7 @@ def open_json_file(path): return json.load(f) except IOError: assert False, "Could not read file {}".format(path) - + def check(name, command, checker): tgen = get_topogen() @@ -80,25 +82,25 @@ def check(name, command, checker): def check_vrf10_bgp_rib(output): - expected = open_json_file("%s/pe1/results/vrf10_ipv4_unicast.json" % CWD) + expected = open_json_file("%s/pe1/results/vrf10_ipv4_unicast.json" % CWD) actual = json.loads(output) return topotest.json_cmp(actual, expected) def check_default_bgp_vpn_rib(output): - expected = open_json_file("%s/pe1/results/default_ipv4_vpn.json" % CWD) + expected = open_json_file("%s/pe1/results/default_ipv4_vpn.json" % CWD) actual = json.loads(output) return topotest.json_cmp(actual, expected) def check_vrf20_bgp_rib(output): - expected = open_json_file("%s/pe1/results/vrf20_ipv4_unicast.json" % CWD) + expected = open_json_file("%s/pe1/results/vrf20_ipv4_unicast.json" % CWD) actual = json.loads(output) return topotest.json_cmp(actual, expected) def check_vrf20_rib(output): - expected = open_json_file("%s/pe1/results/vrf20_ipv4.json" % CWD) + expected = open_json_file("%s/pe1/results/vrf20_ipv4.json" % CWD) actual = json.loads(output) return topotest.json_cmp(actual, expected) diff --git a/tests/topotests/bgp_suppress_fib/test_bgp_suppress_fib.py b/tests/topotests/bgp_suppress_fib/test_bgp_suppress_fib.py index fd8a78b48..ec14ef065 100644 --- a/tests/topotests/bgp_suppress_fib/test_bgp_suppress_fib.py +++ b/tests/topotests/bgp_suppress_fib/test_bgp_suppress_fib.py @@ -217,6 +217,7 @@ def test_bgp_allow_as_in(): assertmsg = '"r2" 192.168.1.1/32 route should be gone' assert result is None, assertmsg + def test_local_vs_non_local(): tgen = get_topogen() @@ -229,7 +230,7 @@ def test_local_vs_non_local(): paths = output["paths"] for i in range(len(paths)): if "fibPending" in paths[i]: - assert(False), "Route 60.0.0.0/24 should not have fibPending" + assert False, "Route 60.0.0.0/24 should not have fibPending" if __name__ == "__main__": diff --git a/tests/topotests/bgp_tcp_mss/test_bgp_vrf_tcp_mss.py b/tests/topotests/bgp_tcp_mss/test_bgp_vrf_tcp_mss.py index 600360130..332952790 100644 --- a/tests/topotests/bgp_tcp_mss/test_bgp_vrf_tcp_mss.py +++ b/tests/topotests/bgp_tcp_mss/test_bgp_vrf_tcp_mss.py @@ -46,7 +46,7 @@ from lib.bgp import ( verify_bgp_rib, verify_bgp_timers_and_functionality, verify_router_id, - verify_tcp_mss + verify_tcp_mss, ) from lib.common_config import ( kill_router_daemons, @@ -66,7 +66,7 @@ from lib.common_config import ( verify_fib_routes, verify_rib, write_test_footer, - write_test_header + write_test_header, ) # Global variables @@ -84,7 +84,8 @@ NETWORK5_2 = {"ipv4": "5.1.1.2/32", "ipv6": "5::2/128"} NEXT_HOP_IP = {"ipv4": "Null0", "ipv6": "Null0"} ## File name -TCPDUMP_FILE="test_tcp_packet_test.txt" +TCPDUMP_FILE = "test_tcp_packet_test.txt" + def setup_module(mod): """ @@ -92,7 +93,7 @@ def setup_module(mod): * `mod`: module name """ - global topo,TCPDUMP_FILE + global topo, TCPDUMP_FILE # Required linux kernel version for this suite to run. result = required_linux_kernel_version("4.15") @@ -127,6 +128,7 @@ def setup_module(mod): step("Running setup_module() done") + def teardown_module(): """Teardown the pytest environment""" @@ -137,9 +139,7 @@ def teardown_module(): # Stop toplogy and Remove tmp files tgen.stop_topology() - step( - "Testsuite end time: {}".format(time.asctime(time.localtime(time.time()))) - ) + step("Testsuite end time: {}".format(time.asctime(time.localtime(time.time())))) step("=" * 40) @@ -149,6 +149,7 @@ def teardown_module(): # ##################################################### + def test_bgp_vrf_tcp_mss(request): tgen = get_topogen() tc_name = request.node.name @@ -279,34 +280,34 @@ def test_bgp_vrf_tcp_mss(request): step("Verify the static Routes in R2 on RED VRF") for addr_type in ADDR_TYPES: static_routes_input = { - "r3": { - "static_routes": [ - { - "network": [NETWORK1_1[addr_type]] + [NETWORK1_2[addr_type]], - "next_hop": NEXT_HOP_IP[addr_type], - "vrf": "RED", - }, - { - "network": [NETWORK2_1[addr_type]] + [NETWORK2_2[addr_type]], - "next_hop": NEXT_HOP_IP[addr_type], - "vrf": "RED", - }, - { - "network": [NETWORK3_1[addr_type]] + [NETWORK3_2[addr_type]], - "next_hop": NEXT_HOP_IP[addr_type], - "vrf": "RED", - }, - { - "network": [NETWORK4_1[addr_type]] + [NETWORK4_2[addr_type]], - "next_hop": NEXT_HOP_IP[addr_type], - "vrf": "RED", - }, - { - "network": [NETWORK5_1[addr_type]] + [NETWORK5_2[addr_type]], - "next_hop": NEXT_HOP_IP[addr_type], - "vrf": "RED", - }, - ] + "r3": { + "static_routes": [ + { + "network": [NETWORK1_1[addr_type]] + [NETWORK1_2[addr_type]], + "next_hop": NEXT_HOP_IP[addr_type], + "vrf": "RED", + }, + { + "network": [NETWORK2_1[addr_type]] + [NETWORK2_2[addr_type]], + "next_hop": NEXT_HOP_IP[addr_type], + "vrf": "RED", + }, + { + "network": [NETWORK3_1[addr_type]] + [NETWORK3_2[addr_type]], + "next_hop": NEXT_HOP_IP[addr_type], + "vrf": "RED", + }, + { + "network": [NETWORK4_1[addr_type]] + [NETWORK4_2[addr_type]], + "next_hop": NEXT_HOP_IP[addr_type], + "vrf": "RED", + }, + { + "network": [NETWORK5_1[addr_type]] + [NETWORK5_2[addr_type]], + "next_hop": NEXT_HOP_IP[addr_type], + "vrf": "RED", + }, + ] } } dut = "r2" @@ -316,34 +317,34 @@ def test_bgp_vrf_tcp_mss(request): step("Verify the static Routes in R1 on RED VRF") for addr_type in ADDR_TYPES: static_routes_input = { - "r3": { - "static_routes": [ - { - "network": [NETWORK1_1[addr_type]] + [NETWORK1_2[addr_type]], - "next_hop": NEXT_HOP_IP[addr_type], - "vrf": "RED", - }, - { - "network": [NETWORK2_1[addr_type]] + [NETWORK2_2[addr_type]], - "next_hop": NEXT_HOP_IP[addr_type], - "vrf": "RED", - }, - { - "network": [NETWORK3_1[addr_type]] + [NETWORK3_2[addr_type]], - "next_hop": NEXT_HOP_IP[addr_type], - "vrf": "RED", - }, - { - "network": [NETWORK4_1[addr_type]] + [NETWORK4_2[addr_type]], - "next_hop": NEXT_HOP_IP[addr_type], - "vrf": "RED", - }, - { - "network": [NETWORK5_1[addr_type]] + [NETWORK5_2[addr_type]], - "next_hop": NEXT_HOP_IP[addr_type], - "vrf": "RED", - }, - ] + "r3": { + "static_routes": [ + { + "network": [NETWORK1_1[addr_type]] + [NETWORK1_2[addr_type]], + "next_hop": NEXT_HOP_IP[addr_type], + "vrf": "RED", + }, + { + "network": [NETWORK2_1[addr_type]] + [NETWORK2_2[addr_type]], + "next_hop": NEXT_HOP_IP[addr_type], + "vrf": "RED", + }, + { + "network": [NETWORK3_1[addr_type]] + [NETWORK3_2[addr_type]], + "next_hop": NEXT_HOP_IP[addr_type], + "vrf": "RED", + }, + { + "network": [NETWORK4_1[addr_type]] + [NETWORK4_2[addr_type]], + "next_hop": NEXT_HOP_IP[addr_type], + "vrf": "RED", + }, + { + "network": [NETWORK5_1[addr_type]] + [NETWORK5_2[addr_type]], + "next_hop": NEXT_HOP_IP[addr_type], + "vrf": "RED", + }, + ] } } dut = "r1" @@ -403,9 +404,6 @@ def test_bgp_vrf_tcp_mss(request): tcp_mss_result ) - - - step("Enabling tcp-mss 500 between R2 and R3 of VRF Default") TCP_MSS = 500 raw_config = { @@ -439,8 +437,6 @@ def test_bgp_vrf_tcp_mss(request): result = apply_raw_config(tgen, raw_config) assert result is True, "Testcase {} : Failed Error: {}".format(tc_name, result) - - step("Clear BGP at router R2 and R3") for addr_type in ADDR_TYPES: clear_bgp(tgen, topo, "r2", addr_type) @@ -549,7 +545,6 @@ def test_bgp_vrf_tcp_mss(request): tcp_mss_result is not True ), " TCP-MSS mismatch :Failed \n Error: {}".format(tcp_mss_result) - step("Removing tcp-mss 500 between R2 and R3 of VRF Default ") TCP_MSS = 500 raw_config = { diff --git a/tests/topotests/bgp_vpnv4_gre/test_bgp_vpnv4_gre.py b/tests/topotests/bgp_vpnv4_gre/test_bgp_vpnv4_gre.py index 6f313be62..31743c8a6 100644 --- a/tests/topotests/bgp_vpnv4_gre/test_bgp_vpnv4_gre.py +++ b/tests/topotests/bgp_vpnv4_gre/test_bgp_vpnv4_gre.py @@ -52,30 +52,32 @@ def build_topo(tgen): switch = tgen.add_switch("s3") switch.add_link(tgen.gears["r2"]) + def _populate_iface(): tgen = get_topogen() cmds_list = [ - 'ip link add vrf1 type vrf table 10', - 'echo 10 > /proc/sys/net/mpls/platform_labels', - 'ip link set dev vrf1 up', - 'ip link set dev {0}-eth1 master vrf1', - 'echo 1 > /proc/sys/net/mpls/conf/{0}-eth0/input', - 'ip tunnel add {0}-gre0 mode gre ttl 64 dev {0}-eth0 local 10.125.0.{1} remote 10.125.0.{2}', - 'ip link set dev {0}-gre0 up', - 'echo 1 > /proc/sys/net/mpls/conf/{0}-gre0/input', + "ip link add vrf1 type vrf table 10", + "echo 10 > /proc/sys/net/mpls/platform_labels", + "ip link set dev vrf1 up", + "ip link set dev {0}-eth1 master vrf1", + "echo 1 > /proc/sys/net/mpls/conf/{0}-eth0/input", + "ip tunnel add {0}-gre0 mode gre ttl 64 dev {0}-eth0 local 10.125.0.{1} remote 10.125.0.{2}", + "ip link set dev {0}-gre0 up", + "echo 1 > /proc/sys/net/mpls/conf/{0}-gre0/input", ] for cmd in cmds_list: - input = cmd.format('r1', '1', '2') - logger.info('input: ' + cmd) - output = tgen.net['r1'].cmd(cmd.format('r1', '1', '2')) - logger.info('output: ' + output) + input = cmd.format("r1", "1", "2") + logger.info("input: " + cmd) + output = tgen.net["r1"].cmd(cmd.format("r1", "1", "2")) + logger.info("output: " + output) for cmd in cmds_list: - input = cmd.format('r2', '2', '1') - logger.info('input: ' + cmd) - output = tgen.net['r2'].cmd(cmd.format('r2', '2', '1')) - logger.info('output: ' + output) + input = cmd.format("r2", "2", "1") + logger.info("input: " + cmd) + output = tgen.net["r2"].cmd(cmd.format("r2", "2", "1")) + logger.info("output: " + output) + def setup_module(mod): "Sets up the pytest environment" @@ -113,13 +115,13 @@ def test_protocols_convergence(): if tgen.routers_have_failure(): pytest.skip(tgen.errors) - router = tgen.gears['r1'] + router = tgen.gears["r1"] logger.info("Dump some context for r1") router.vtysh_cmd("show bgp ipv4 vpn") router.vtysh_cmd("show bgp summary") router.vtysh_cmd("show bgp vrf vrf1 ipv4") router.vtysh_cmd("show running-config") - router = tgen.gears['r2'] + router = tgen.gears["r2"] logger.info("Dump some context for r2") router.vtysh_cmd("show bgp ipv4 vpn") router.vtysh_cmd("show bgp summary") @@ -128,11 +130,11 @@ def test_protocols_convergence(): # Check IPv4 routing tables on r1 logger.info("Checking IPv4 routes for convergence on r1") - router = tgen.gears['r1'] + router = tgen.gears["r1"] json_file = "{}/{}/ipv4_routes.json".format(CWD, router.name) if not os.path.isfile(json_file): logger.info("skipping file {}".format(json_file)) - assert 0, 'ipv4_routes.json file not found' + assert 0, "ipv4_routes.json file not found" return expected = json.loads(open(json_file).read()) @@ -148,10 +150,10 @@ def test_protocols_convergence(): # Check BGP IPv4 routing tables on r2 not installed logger.info("Checking BGP IPv4 routes for convergence on r2") - router = tgen.gears['r2'] + router = tgen.gears["r2"] json_file = "{}/{}/bgp_ipv4_routes.json".format(CWD, router.name) if not os.path.isfile(json_file): - assert 0, 'bgp_ipv4_routes.json file not found' + assert 0, "bgp_ipv4_routes.json file not found" expected = json.loads(open(json_file).read()) test_func = partial( @@ -163,7 +165,8 @@ def test_protocols_convergence(): _, result = topotest.run_and_expect(test_func, None, count=40, wait=2) assertmsg = '"{}" JSON output mismatches'.format(router.name) assert result is None, assertmsg - + + def test_memory_leak(): "Run the memory leak test and report results." tgen = get_topogen() diff --git a/tests/topotests/bgp_vrf_dynamic_route_leak_topo3/test_bgp_vrf_dynamic_route_leak_topo3.py b/tests/topotests/bgp_vrf_dynamic_route_leak_topo3/test_bgp_vrf_dynamic_route_leak_topo3.py index 1787021eb..726afcb6a 100644 --- a/tests/topotests/bgp_vrf_dynamic_route_leak_topo3/test_bgp_vrf_dynamic_route_leak_topo3.py +++ b/tests/topotests/bgp_vrf_dynamic_route_leak_topo3/test_bgp_vrf_dynamic_route_leak_topo3.py @@ -851,23 +851,25 @@ def test_dynamic_imported_matching_prefix_based_on_community_list_p0(request): result = verify_bgp_rib( tgen, addr_type, "r3", static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes["r3"]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes["r3"]["static_routes"][0]["network"], + ) ) result = verify_rib( tgen, addr_type, "r3", static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed Error {}" "Routes {} still in Route table".format( - tc_name, - result, - static_routes["r3"]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed Error {}" + "Routes {} still in Route table".format( + tc_name, + result, + static_routes["r3"]["static_routes"][0]["network"], + ) ) else: result = verify_bgp_rib(tgen, addr_type, "r3", static_routes) @@ -924,23 +926,25 @@ def test_dynamic_imported_matching_prefix_based_on_community_list_p0(request): result = verify_bgp_rib( tgen, addr_type, "r3", static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes["r3"]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes["r3"]["static_routes"][0]["network"], + ) ) result = verify_rib( tgen, addr_type, "r3", static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed Error {}" "Routes {} still in Route table".format( - tc_name, - result, - static_routes["r3"]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed Error {}" + "Routes {} still in Route table".format( + tc_name, + result, + static_routes["r3"]["static_routes"][0]["network"], + ) ) else: result = verify_bgp_rib(tgen, addr_type, "r3", static_routes) @@ -1153,23 +1157,25 @@ def test_dynamic_import_routes_delete_static_route_p1(request): result = verify_bgp_rib( tgen, addr_type, "r2", static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes["r2"]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes["r2"]["static_routes"][0]["network"], + ) ) result = verify_rib( tgen, addr_type, "r2", static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed Error {}" "Routes {} still in Route table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed Error {}" + "Routes {} still in Route table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) step("Delete static routes from vrf BLUE") @@ -1209,21 +1215,23 @@ def test_dynamic_import_routes_delete_static_route_p1(request): result = verify_bgp_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) result = verify_rib(tgen, addr_type, dut, static_routes, expected=False) - assert ( - result is not True - ), "Testcase {} : Failed Error {}" "Routes {} still in Route table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed Error {}" + "Routes {} still in Route table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) step("Delete static routes from vrf default") diff --git a/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-1.py b/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-1.py index c7fbc01eb..e03236242 100644 --- a/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-1.py +++ b/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-1.py @@ -357,23 +357,25 @@ def test_dynamic_import_recursive_import_tenant_vrf_p1(request): result = verify_bgp_rib( tgen, addr_type, "r4", static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes["r4"]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes["r4"]["static_routes"][0]["network"], + ) ) result = verify_rib( tgen, addr_type, "r4", static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed Error {}" "Routes {} still in Route table".format( - tc_name, - result, - static_routes["r4"]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed Error {}" + "Routes {} still in Route table".format( + tc_name, + result, + static_routes["r4"]["static_routes"][0]["network"], + ) ) else: result = verify_bgp_rib(tgen, addr_type, "r4", static_routes) diff --git a/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-2.py b/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-2.py index 02950eb3d..d29edf59b 100644 --- a/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-2.py +++ b/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-2.py @@ -495,23 +495,25 @@ def test_dynamic_import_routes_between_two_tenant_vrf_p0(request): result = verify_bgp_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) result = verify_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in Route table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in Route table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) else: result = verify_bgp_rib(tgen, addr_type, dut, static_routes) @@ -882,23 +884,25 @@ def test_dynamic_import_routes_between_two_tenant_vrf_p0(request): result = verify_bgp_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) result = verify_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed Error {}" "Routes {} still in Route table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed Error {}" + "Routes {} still in Route table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) else: result = verify_bgp_rib(tgen, addr_type, dut, static_routes) diff --git a/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-3.py b/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-3.py index 4b1890342..c118ffc09 100644 --- a/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-3.py +++ b/tests/topotests/bgp_vrf_dynamic_route_leak_topo4/test_bgp_vrf_dynamic_route_leak_topo4-3.py @@ -356,23 +356,25 @@ def test_dynamic_import_routes_between_tenant_to_default_vrf_p0(request): result = verify_bgp_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) result = verify_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) else: result = verify_bgp_rib(tgen, addr_type, dut, static_routes) @@ -503,23 +505,25 @@ def test_dynamic_import_routes_between_tenant_to_default_vrf_p0(request): result = verify_bgp_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) result = verify_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed Error {}" "Routes {} still in Route table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed Error {}" + "Routes {} still in Route table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) else: result = verify_bgp_rib(tgen, addr_type, dut, static_routes) @@ -882,23 +886,25 @@ def test_dynamic_import_routes_between_tenant_to_default_vrf_p0(request): result = verify_bgp_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed \nError {}\n" "Routes {} still in BGP table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed \nError {}\n" + "Routes {} still in BGP table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) result = verify_rib( tgen, addr_type, dut, static_routes, expected=False ) - assert ( - result is not True - ), "Testcase {} : Failed Error {}" "Routes {} still in Route table".format( - tc_name, - result, - static_routes[dut]["static_routes"][0]["network"], + assert result is not True, ( + "Testcase {} : Failed Error {}" + "Routes {} still in Route table".format( + tc_name, + result, + static_routes[dut]["static_routes"][0]["network"], + ) ) else: result = verify_bgp_rib(tgen, addr_type, dut, static_routes) diff --git a/tests/topotests/bgp_vrf_leaking_5549_routes/test_bgp_vrf_leaking.py b/tests/topotests/bgp_vrf_leaking_5549_routes/test_bgp_vrf_leaking.py index 244db6c46..b20819264 100755 --- a/tests/topotests/bgp_vrf_leaking_5549_routes/test_bgp_vrf_leaking.py +++ b/tests/topotests/bgp_vrf_leaking_5549_routes/test_bgp_vrf_leaking.py @@ -37,10 +37,12 @@ def setup_module(mod): tgen.start_topology() for rname, router in tgen.routers().items(): - router.load_config(TopoRouter.RD_ZEBRA, - os.path.join(CWD, '{}/zebra.conf'.format(rname))) - router.load_config(TopoRouter.RD_BGP, - os.path.join(CWD, '{}/bgpd.conf'.format(rname))) + router.load_config( + TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname)) + ) + router.load_config( + TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname)) + ) tgen.gears["pe1"].run("ip link add vrf10 type vrf table 10") tgen.gears["pe1"].run("ip link set vrf10 up") @@ -62,22 +64,22 @@ def open_json_file(path): return json.load(f) except IOError: assert False, "Could not read file {}".format(path) - + def check_vrf10_rib(output): - expected = open_json_file("%s/pe1/results/vrf10_ipv4_unicast.json" % CWD) + expected = open_json_file("%s/pe1/results/vrf10_ipv4_unicast.json" % CWD) actual = json.loads(output) return topotest.json_cmp(actual, expected) def check_default_vpn_rib(output): - expected = open_json_file("%s/pe1/results/default_ipv4_vpn.json" % CWD) + expected = open_json_file("%s/pe1/results/default_ipv4_vpn.json" % CWD) actual = json.loads(output) return topotest.json_cmp(actual, expected) def check_vrf20_rib(output): - expected = open_json_file("%s/pe1/results/vrf20_ipv4_unicast.json" % CWD) + expected = open_json_file("%s/pe1/results/vrf20_ipv4_unicast.json" % CWD) actual = json.loads(output) return topotest.json_cmp(actual, expected) diff --git a/tests/topotests/bgp_vrf_lite_best_path_test/test_bgp_vrf_lite_best_path_topo2.py b/tests/topotests/bgp_vrf_lite_best_path_test/test_bgp_vrf_lite_best_path_topo2.py index 5d9396438..3cb31809f 100644 --- a/tests/topotests/bgp_vrf_lite_best_path_test/test_bgp_vrf_lite_best_path_topo2.py +++ b/tests/topotests/bgp_vrf_lite_best_path_test/test_bgp_vrf_lite_best_path_topo2.py @@ -43,7 +43,7 @@ from lib.common_config import ( step, create_static_routes, check_router_status, - apply_raw_config + apply_raw_config, ) from lib.topolog import logger @@ -51,7 +51,7 @@ from lib.bgp import ( verify_bgp_convergence, create_router_bgp, verify_bgp_rib, - verify_bgp_bestpath + verify_bgp_bestpath, ) from lib.topojson import build_config_from_json @@ -84,10 +84,8 @@ VRF_LIST = ["RED", "BLUE", "GREEN"] COMM_VAL_1 = "100:100" COMM_VAL_2 = "500:500" COMM_VAL_3 = "600:600" -BESTPATH = { - "ipv4": "0.0.0.0", - "ipv6": "::" -} +BESTPATH = {"ipv4": "0.0.0.0", "ipv6": "::"} + def setup_module(mod): """ @@ -158,6 +156,7 @@ def teardown_module(): # ##################################################### + def test_dynamic_import_ecmp_imported_routed_diffrent_vrfs_p0(request): """ Verify ECMP for imported routes from different VRFs. @@ -170,136 +169,130 @@ def test_dynamic_import_ecmp_imported_routed_diffrent_vrfs_p0(request): check_router_status(tgen) reset_config_on_routers(tgen) - step("Configure same static routes in tenant vrfs RED and GREEN on router " - "R3 and redistribute in respective BGP process") + step( + "Configure same static routes in tenant vrfs RED and GREEN on router " + "R3 and redistribute in respective BGP process" + ) for vrf_name in ["RED", "GREEN"]: for addr_type in ADDR_TYPES: if vrf_name == "GREEN": - next_hop_vrf = topo["routers"]["r1"]["links"][ - "r3-link3"][addr_type].split("/")[0] + next_hop_vrf = topo["routers"]["r1"]["links"]["r3-link3"][ + addr_type + ].split("/")[0] else: - next_hop_vrf = topo["routers"]["r2"]["links"][ - "r3-link1"][addr_type].split("/")[0] + next_hop_vrf = topo["routers"]["r2"]["links"]["r3-link1"][ + addr_type + ].split("/")[0] static_routes = { "r3": { "static_routes": [ { "network": [NETWORK1_1[addr_type]], "next_hop": next_hop_vrf, - "vrf": vrf_name + "vrf": vrf_name, } ] } } result = create_static_routes(tgen, static_routes) - assert result is True, "Testcase {} :Failed \n Error: {}". \ - format(tc_name, result) + assert result is True, "Testcase {} :Failed \n Error: {}".format( + tc_name, result + ) step("Redistribute static route on BGP VRF : {}".format(vrf_name)) temp = {} for addr_type in ADDR_TYPES: - temp.update({ - addr_type: { - "unicast": { - "redistribute": [{ - "redist_type": "static" - }] - } - } - }) + temp.update( + {addr_type: {"unicast": {"redistribute": [{"redist_type": "static"}]}}} + ) - redist_dict = {"r3": {"bgp": [{ - "vrf": vrf_name, "local_as": 3, "address_family": temp - }]}} + redist_dict = { + "r3": {"bgp": [{"vrf": vrf_name, "local_as": 3, "address_family": temp}]} + } result = create_router_bgp(tgen, topo, redist_dict) - assert result is True, "Testcase {} :Failed \n Error: {}". \ - format(tc_name, result) + assert result is True, "Testcase {} :Failed \n Error: {}".format( + tc_name, result + ) - step("Verify that configured static routes are installed in respective " - "BGP table for vrf RED & GREEN") + step( + "Verify that configured static routes are installed in respective " + "BGP table for vrf RED & GREEN" + ) for vrf_name in ["RED", "GREEN"]: for addr_type in ADDR_TYPES: if vrf_name == "GREEN": - next_hop_vrf = topo["routers"]["r1"]["links"][ - "r3-link3"][addr_type].split("/")[0] + next_hop_vrf = topo["routers"]["r1"]["links"]["r3-link3"][ + addr_type + ].split("/")[0] else: - next_hop_vrf = topo["routers"]["r2"]["links"][ - "r3-link1"][addr_type].split("/")[0] + next_hop_vrf = topo["routers"]["r2"]["links"]["r3-link1"][ + addr_type + ].split("/")[0] static_routes = { "r3": { "static_routes": [ - { - "network": [NETWORK1_1[addr_type]], - "vrf": vrf_name - } + {"network": [NETWORK1_1[addr_type]], "vrf": vrf_name} ] } } - result = verify_bgp_rib(tgen, addr_type, "r3", static_routes, - next_hop=next_hop_vrf) - assert result is True, "Testcase {} : Failed \n Error {}". \ - format(tc_name, result) + result = verify_bgp_rib( + tgen, addr_type, "r3", static_routes, next_hop=next_hop_vrf + ) + assert result is True, "Testcase {} : Failed \n Error {}".format( + tc_name, result + ) - result = verify_rib(tgen, addr_type, "r3", static_routes, - next_hop=next_hop_vrf) - assert result is True, "Testcase {} : Failed \n Error {}". \ - format(tc_name, result) + result = verify_rib( + tgen, addr_type, "r3", static_routes, next_hop=next_hop_vrf + ) + assert result is True, "Testcase {} : Failed \n Error {}".format( + tc_name, result + ) step("Import vrf RED and GREEN into default vrf and Configure ECMP") bgp_val = [] for vrf_name in ["RED", "GREEN"]: temp = {} for addr_type in ADDR_TYPES: - temp.update({ - addr_type: { - "unicast": { - "import": { - "vrf": vrf_name - }, - "maximum_paths": { - "ebgp": 2 + temp.update( + { + addr_type: { + "unicast": { + "import": {"vrf": vrf_name}, + "maximum_paths": {"ebgp": 2}, } } } - }) + ) - bgp_val.append({ - "local_as": 3, "address_family": temp - }) + bgp_val.append({"local_as": 3, "address_family": temp}) import_dict = {"r3": {"bgp": bgp_val}} result = create_router_bgp(tgen, topo, import_dict) - assert result is True, "Testcase {} :Failed \n Error: {}". \ - format(tc_name, result) + assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("Configure bgp bestpath on router r3") r3_raw_config = { - "r3": { - "raw_config": [ - "router bgp 3", - "bgp bestpath as-path multipath-relax" - ] - } + "r3": {"raw_config": ["router bgp 3", "bgp bestpath as-path multipath-relax"]} } result = apply_raw_config(tgen, r3_raw_config) - assert result is True, "Testcase {} :Failed \n Error: {}". \ - format(tc_name, result) + assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) - step("Verify that routes are imported with two different next-hop vrfs " - "and IPs. Additionally R3 must do ECMP for both the routes.") + step( + "Verify that routes are imported with two different next-hop vrfs " + "and IPs. Additionally R3 must do ECMP for both the routes." + ) for addr_type in ADDR_TYPES: next_hop_vrf = [ - topo["routers"]["r2"]["links"]["r3-link1"][addr_type]. \ - split("/")[0], - topo["routers"]["r1"]["links"]["r3-link3"][addr_type]. \ - split("/")[0] - ] + topo["routers"]["r2"]["links"]["r3-link1"][addr_type].split("/")[0], + topo["routers"]["r1"]["links"]["r3-link3"][addr_type].split("/")[0], + ] static_routes = { "r3": { "static_routes": [ @@ -310,54 +303,61 @@ def test_dynamic_import_ecmp_imported_routed_diffrent_vrfs_p0(request): } } - result = verify_bgp_rib(tgen, addr_type, "r3", static_routes, - next_hop=next_hop_vrf) - assert result is True, "Testcase {} : Failed \n Error {}". \ - format(tc_name, result) + result = verify_bgp_rib( + tgen, addr_type, "r3", static_routes, next_hop=next_hop_vrf + ) + assert result is True, "Testcase {} : Failed \n Error {}".format( + tc_name, result + ) - result = verify_rib(tgen, addr_type, "r3", static_routes, - next_hop=next_hop_vrf) - assert result is True, "Testcase {} : Failed \n Error {}". \ - format(tc_name, result) + result = verify_rib(tgen, addr_type, "r3", static_routes, next_hop=next_hop_vrf) + assert result is True, "Testcase {} : Failed \n Error {}".format( + tc_name, result + ) - step("Now change the next-hop of static routes in vrf RED and GREEN to " - "same IP address") + step( + "Now change the next-hop of static routes in vrf RED and GREEN to " + "same IP address" + ) for addr_type in ADDR_TYPES: - next_hop_vrf = topo["routers"]["r1"]["links"][ - "r3-link3"][addr_type].split("/")[0] + next_hop_vrf = topo["routers"]["r1"]["links"]["r3-link3"][addr_type].split("/")[ + 0 + ] static_routes = { "r3": { "static_routes": [ { "network": [NETWORK1_1[addr_type]], "next_hop": next_hop_vrf, - "vrf": "RED" + "vrf": "RED", }, { "network": [NETWORK1_1[addr_type]], - "next_hop": topo["routers"]["r2"]["links"][ - "r3-link1"][addr_type].split("/")[0], + "next_hop": topo["routers"]["r2"]["links"]["r3-link1"][ + addr_type + ].split("/")[0], "vrf": "RED", - "delete": True - } + "delete": True, + }, ] } } result = create_static_routes(tgen, static_routes) - assert result is True, "Testcase {} :Failed \n Error: {}". \ - format(tc_name, result) + assert result is True, "Testcase {} :Failed \n Error: {}".format( + tc_name, result + ) - step("Verify that now routes are imported with two different next-hop " - "vrfs but same IPs. Additionally R3 must do ECMP for both the routes") + step( + "Verify that now routes are imported with two different next-hop " + "vrfs but same IPs. Additionally R3 must do ECMP for both the routes" + ) for addr_type in ADDR_TYPES: next_hop_vrf = [ - topo["routers"]["r1"]["links"]["r3-link3"][addr_type].\ - split("/")[0], - topo["routers"]["r1"]["links"]["r3-link3"][addr_type]. \ - split("/")[0] - ] + topo["routers"]["r1"]["links"]["r3-link3"][addr_type].split("/")[0], + topo["routers"]["r1"]["links"]["r3-link3"][addr_type].split("/")[0], + ] static_routes = { "r3": { "static_routes": [ @@ -368,20 +368,24 @@ def test_dynamic_import_ecmp_imported_routed_diffrent_vrfs_p0(request): } } - result = verify_bgp_rib(tgen, addr_type, "r3", static_routes, - next_hop=next_hop_vrf) - assert result is True, "Testcase {} : Failed \n Error {}". \ - format(tc_name, result) + result = verify_bgp_rib( + tgen, addr_type, "r3", static_routes, next_hop=next_hop_vrf + ) + assert result is True, "Testcase {} : Failed \n Error {}".format( + tc_name, result + ) - result = verify_rib(tgen, addr_type, "r3", static_routes, - next_hop=next_hop_vrf) - assert result is True, "Testcase {} : Failed \n Error {}". \ - format(tc_name, result) + result = verify_rib(tgen, addr_type, "r3", static_routes, next_hop=next_hop_vrf) + assert result is True, "Testcase {} : Failed \n Error {}".format( + tc_name, result + ) write_test_footer(tc_name) -def test_locally_imported_routes_selected_as_bestpath_over_ebgp_imported_routes_p0(request): +def test_locally_imported_routes_selected_as_bestpath_over_ebgp_imported_routes_p0( + request, +): """ Verify ECMP for imported routes from different VRFs. """ @@ -393,13 +397,15 @@ def test_locally_imported_routes_selected_as_bestpath_over_ebgp_imported_routes_ check_router_status(tgen) reset_config_on_routers(tgen) - step("Configure same static routes on R2 and R3 vrfs and redistribute in BGP " - "for GREEN and RED vrf instances") - for dut, network in zip(["r2", "r3"], [ - [NETWORK1_1, NETWORK1_2], [NETWORK1_1, NETWORK1_2]]): + step( + "Configure same static routes on R2 and R3 vrfs and redistribute in BGP " + "for GREEN and RED vrf instances" + ) + for dut, network in zip( + ["r2", "r3"], [[NETWORK1_1, NETWORK1_2], [NETWORK1_1, NETWORK1_2]] + ): for vrf_name, network_vrf in zip(["RED", "GREEN"], network): - step("Configure static route for VRF : {} on {}".format(vrf_name, - dut)) + step("Configure static route for VRF : {} on {}".format(vrf_name, dut)) for addr_type in ADDR_TYPES: static_routes = { dut: { @@ -407,44 +413,50 @@ def test_locally_imported_routes_selected_as_bestpath_over_ebgp_imported_routes_ { "network": [network_vrf[addr_type]], "next_hop": "blackhole", - "vrf": vrf_name + "vrf": vrf_name, } ] } } result = create_static_routes(tgen, static_routes) - assert result is True, "Testcase {} :Failed \n Error: {}". \ - format(tc_name, result) + assert result is True, "Testcase {} :Failed \n Error: {}".format( + tc_name, result + ) for dut, as_num in zip(["r2", "r3"], ["2", "3"]): for vrf_name in ["RED", "GREEN"]: step("Redistribute static route on BGP VRF : {}".format(vrf_name)) temp = {} for addr_type in ADDR_TYPES: - temp.update({ - addr_type: { - "unicast": { - "redistribute": [{ - "redist_type": "static" - }] + temp.update( + { + addr_type: { + "unicast": {"redistribute": [{"redist_type": "static"}]} } } - }) + ) - redist_dict = {dut: {"bgp": [{ - "vrf": vrf_name, "local_as": as_num, "address_family": temp - }]}} + redist_dict = { + dut: { + "bgp": [ + {"vrf": vrf_name, "local_as": as_num, "address_family": temp} + ] + } + } result = create_router_bgp(tgen, topo, redist_dict) - assert result is True, "Testcase {} :Failed \n Error: {}". \ - format(tc_name, result) - - step("Verify that R2 and R3 has installed redistributed routes in default " - "and RED vrfs and GREEN respectively:") - for dut, network in zip(["r2", "r3"], - [[NETWORK1_1, NETWORK1_2], - [NETWORK1_1, NETWORK1_2]]): + assert result is True, "Testcase {} :Failed \n Error: {}".format( + tc_name, result + ) + + step( + "Verify that R2 and R3 has installed redistributed routes in default " + "and RED vrfs and GREEN respectively:" + ) + for dut, network in zip( + ["r2", "r3"], [[NETWORK1_1, NETWORK1_2], [NETWORK1_1, NETWORK1_2]] + ): for vrf_name, network_vrf in zip(["RED", "GREEN"], network): for addr_type in ADDR_TYPES: static_routes = { @@ -453,38 +465,32 @@ def test_locally_imported_routes_selected_as_bestpath_over_ebgp_imported_routes_ { "network": [network_vrf[addr_type]], "next_hop": "blackhole", - "vrf": vrf_name + "vrf": vrf_name, } ] } } result = verify_bgp_rib(tgen, addr_type, dut, static_routes) - assert result is True, "Testcase {} : Failed \n Error {}". \ - format(tc_name, result) + assert result is True, "Testcase {} : Failed \n Error {}".format( + tc_name, result + ) step("Import vrf RED's route in vrf GREEN on R3") temp = {} for addr_type in ADDR_TYPES: - temp.update({ - addr_type: { - "unicast": { - "import": { - "vrf": "RED" - } - } - } - }) + temp.update({addr_type: {"unicast": {"import": {"vrf": "RED"}}}}) - import_dict = {"r3": {"bgp": [{ - "vrf": "GREEN", "local_as": 3, "address_family": temp - }]}} + import_dict = { + "r3": {"bgp": [{"vrf": "GREEN", "local_as": 3, "address_family": temp}]} + } result = create_router_bgp(tgen, topo, import_dict) - assert result is True, "Testcase {} :Failed \n Error: {}". \ - format(tc_name, result) + assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) - step("Verify that locally imported routes are installed over eBGP imported" - " routes from VRF RED into VRF GREEN") + step( + "Verify that locally imported routes are installed over eBGP imported" + " routes from VRF RED into VRF GREEN" + ) for addr_type in ADDR_TYPES: static_routes = { "r3": { @@ -492,7 +498,7 @@ def test_locally_imported_routes_selected_as_bestpath_over_ebgp_imported_routes_ { "network": [NETWORK1_2[addr_type]], "next_hop": "blackhole", - "vrf": "GREEN" + "vrf": "GREEN", } ] } @@ -504,19 +510,21 @@ def test_locally_imported_routes_selected_as_bestpath_over_ebgp_imported_routes_ { "network": NETWORK1_2[addr_type], "bestpath": BESTPATH[addr_type], - "vrf": "GREEN" + "vrf": "GREEN", } ] } } result = verify_bgp_bestpath(tgen, addr_type, input_routes) - assert result is True, "Testcase {} : Failed \n Error {}". \ - format(tc_name, result) + assert result is True, "Testcase {} : Failed \n Error {}".format( + tc_name, result + ) result = verify_rib(tgen, addr_type, "r3", static_routes) - assert result is True, "Testcase {} : Failed \n Error {}". \ - format(tc_name, result) + assert result is True, "Testcase {} : Failed \n Error {}".format( + tc_name, result + ) write_test_footer(tc_name) diff --git a/tests/topotests/config_timing/test_config_timing.py b/tests/topotests/config_timing/test_config_timing.py index 5c1b97262..52d196f12 100644 --- a/tests/topotests/config_timing/test_config_timing.py +++ b/tests/topotests/config_timing/test_config_timing.py @@ -97,8 +97,8 @@ def test_static_timing(): optype = "adding" if add else "removing" iptype = "IPv6" if do_ipv6 else "IPv4" if super_prefix is None: - super_prefix = u"2001::/48" if do_ipv6 else u"10.0.0.0/8" - via = u"lo" + super_prefix = "2001::/48" if do_ipv6 else "10.0.0.0/8" + via = "lo" optyped = "added" if add else "removed" for rname, router in router_list.items(): @@ -161,8 +161,8 @@ def test_static_timing(): prefix_count = 50 prefix_base = [ - [u"10.0.0.0/8", u"11.0.0.0/8"], - [u"2100:1111:2220::/44", u"2100:3333:4440::/44"], + ["10.0.0.0/8", "11.0.0.0/8"], + ["2100:1111:2220::/44", "2100:3333:4440::/44"], ] # This apparently needed to allow for various mgmtd/staticd/zebra connections to form diff --git a/tests/topotests/eigrp_topo1/test_eigrp_topo1.py b/tests/topotests/eigrp_topo1/test_eigrp_topo1.py index 3c9392c3f..b3152f43b 100644 --- a/tests/topotests/eigrp_topo1/test_eigrp_topo1.py +++ b/tests/topotests/eigrp_topo1/test_eigrp_topo1.py @@ -193,6 +193,7 @@ if __name__ == "__main__": args = ["-s"] + sys.argv[1:] sys.exit(pytest.main(args)) + # # Auxiliary Functions # diff --git a/tests/topotests/example_test/test_template.py b/tests/topotests/example_test/test_template.py index 27975483a..5728ebaea 100644 --- a/tests/topotests/example_test/test_template.py +++ b/tests/topotests/example_test/test_template.py @@ -41,6 +41,7 @@ pytestmark = [ # pytest.mark.vrrpd, ] + # Function we pass to Topogen to create the topology def build_topo(tgen): "Build function" diff --git a/tests/topotests/fpm_testing_topo1/test_fpm_topo1.py b/tests/topotests/fpm_testing_topo1/test_fpm_topo1.py index bb4d02d34..22fc50b91 100644 --- a/tests/topotests/fpm_testing_topo1/test_fpm_topo1.py +++ b/tests/topotests/fpm_testing_topo1/test_fpm_topo1.py @@ -65,7 +65,8 @@ def setup_module(module): TopoRouter.RD_SHARP, os.path.join(CWD, "{}/sharpd.conf".format(rname)) ) router.load_config( - TopoRouter.RD_FPM_LISTENER, os.path.join(CWD, "{}/fpm_stub.conf".format(rname)) + TopoRouter.RD_FPM_LISTENER, + os.path.join(CWD, "{}/fpm_stub.conf".format(rname)), ) tgen.start_router() diff --git a/tests/topotests/isis_sr_flex_algo_topo2/test_isis_sr_flex_algo_topo2.py b/tests/topotests/isis_sr_flex_algo_topo2/test_isis_sr_flex_algo_topo2.py index 6a5f81def..6689cf4c5 100755 --- a/tests/topotests/isis_sr_flex_algo_topo2/test_isis_sr_flex_algo_topo2.py +++ b/tests/topotests/isis_sr_flex_algo_topo2/test_isis_sr_flex_algo_topo2.py @@ -118,11 +118,19 @@ def setup_module(mod): # For all registered routers, load the zebra configuration file for rname, router in router_list.items(): - router.load_config( TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))) - router.load_config( TopoRouter.RD_ISIS, os.path.join(CWD, "{}/isisd.conf".format(rname))) + router.load_config( + TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname)) + ) + router.load_config( + TopoRouter.RD_ISIS, os.path.join(CWD, "{}/isisd.conf".format(rname)) + ) if rname in ["rt0", "rt9"]: - router.load_config( TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname))) - router.load_config( TopoRouter.RD_PATH, os.path.join(CWD, "{}/pathd.conf".format(rname))) + router.load_config( + TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname)) + ) + router.load_config( + TopoRouter.RD_PATH, os.path.join(CWD, "{}/pathd.conf".format(rname)) + ) router.run("ip link add dum0 type dummy") router.run("ip link set dum0 up") if rname == "rt0": @@ -145,6 +153,7 @@ def setup_testcase(msg): pytest.skip(tgen.errors) return tgen + def open_json_file(filename): try: with open(filename, "r") as f: @@ -162,7 +171,7 @@ def check_rib(name, cmd, expected_file): expected = open_json_file("{}/{}".format(CWD, expected_file)) return topotest.json_cmp(output, expected) - logger.info("[+] check {} \"{}\" {}".format(name, cmd, expected_file)) + logger.info('[+] check {} "{}" {}'.format(name, cmd, expected_file)) tgen = get_topogen() func = partial(_check, name, cmd, expected_file) success, result = topotest.run_and_expect(func, None, count=120, wait=0.5) diff --git a/tests/topotests/isis_srv6_topo1/test_isis_srv6_topo1.py b/tests/topotests/isis_srv6_topo1/test_isis_srv6_topo1.py index 892f6e1d0..1a7505dd1 100644 --- a/tests/topotests/isis_srv6_topo1/test_isis_srv6_topo1.py +++ b/tests/topotests/isis_srv6_topo1/test_isis_srv6_topo1.py @@ -197,13 +197,16 @@ def setup_module(mod): # For all registered routers, load the zebra and isis configuration files for rname, router in tgen.routers().items(): - router.load_config(TopoRouter.RD_ZEBRA, - os.path.join(CWD, '{}/zebra.conf'.format(rname))) - router.load_config(TopoRouter.RD_ISIS, - os.path.join(CWD, '{}/isisd.conf'.format(rname))) - if (os.path.exists('{}/sharpd.conf'.format(rname))): - router.load_config(TopoRouter.RD_SHARP, - os.path.join(CWD, '{}/sharpd.conf'.format(rname))) + router.load_config( + TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname)) + ) + router.load_config( + TopoRouter.RD_ISIS, os.path.join(CWD, "{}/isisd.conf".format(rname)) + ) + if os.path.exists("{}/sharpd.conf".format(rname)): + router.load_config( + TopoRouter.RD_SHARP, os.path.join(CWD, "{}/sharpd.conf".format(rname)) + ) # Start routers tgen.start_router() @@ -227,7 +230,9 @@ def router_compare_json_output(rname, command, reference): expected = json.loads(open(filename).read()) # Run test function until we get an result. Wait at most 60 seconds. - test_func = functools.partial(topotest.router_json_cmp, tgen.gears[rname], command, expected) + test_func = functools.partial( + topotest.router_json_cmp, tgen.gears[rname], command, expected + ) _, diff = topotest.run_and_expect(test_func, None, count=120, wait=0.5) assertmsg = '"{}" JSON output mismatches the expected result'.format(rname) assert diff is None, assertmsg @@ -308,8 +313,10 @@ def test_srv6_locator_step1(): for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: router_compare_json_output( - rname, "show segment-routing srv6 locator json", "step1/show_srv6_locator_table.ref" - ) + rname, + "show segment-routing srv6 locator json", + "step1/show_srv6_locator_table.ref", + ) def test_ping_step1(): @@ -326,10 +333,16 @@ def test_ping_step1(): pytest.skip(tgen.errors) # Setup encap route on rt1, decap route on rt2 - tgen.gears["rt1"].vtysh_cmd("sharp install seg6-routes fc00:0:9::1 nexthop-seg6 2001:db8:1::2 encap fc00:0:1:2:6:f00d:: 1") - tgen.gears["rt6"].vtysh_cmd("sharp install seg6local-routes fc00:0:f00d:: nexthop-seg6local eth-dst End_DT6 254 1") - tgen.gears["dst"].vtysh_cmd("sharp install route 2001:db8:1::1 nexthop 2001:db8:10::1 1") - + tgen.gears["rt1"].vtysh_cmd( + "sharp install seg6-routes fc00:0:9::1 nexthop-seg6 2001:db8:1::2 encap fc00:0:1:2:6:f00d:: 1" + ) + tgen.gears["rt6"].vtysh_cmd( + "sharp install seg6local-routes fc00:0:f00d:: nexthop-seg6local eth-dst End_DT6 254 1" + ) + tgen.gears["dst"].vtysh_cmd( + "sharp install route 2001:db8:1::1 nexthop 2001:db8:10::1 1" + ) + # Try to ping dst from rt1 check_ping6("rt1", "fc00:0:9::1", True) @@ -412,8 +425,10 @@ def test_srv6_locator_step2(): for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: router_compare_json_output( - rname, "show segment-routing srv6 locator json", "step2/show_srv6_locator_table.ref" - ) + rname, + "show segment-routing srv6 locator json", + "step2/show_srv6_locator_table.ref", + ) def test_ping_step2(): @@ -428,7 +443,7 @@ def test_ping_step2(): # Skip if previous fatal error condition is raised if tgen.routers_have_failure(): pytest.skip(tgen.errors) - + check_ping6("rt1", "fc00:0:9::1", False) @@ -512,8 +527,10 @@ def test_srv6_locator_step3(): for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: router_compare_json_output( - rname, "show segment-routing srv6 locator json", "step3/show_srv6_locator_table.ref" - ) + rname, + "show segment-routing srv6 locator json", + "step3/show_srv6_locator_table.ref", + ) def test_ping_step3(): @@ -528,7 +545,7 @@ def test_ping_step3(): # Skip if previous fatal error condition is raised if tgen.routers_have_failure(): pytest.skip(tgen.errors) - + check_ping6("rt1", "fc00:0:9::1", True) @@ -608,8 +625,10 @@ def test_srv6_locator_step4(): for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: router_compare_json_output( - rname, "show segment-routing srv6 locator json", "step4/show_srv6_locator_table.ref" - ) + rname, + "show segment-routing srv6 locator json", + "step4/show_srv6_locator_table.ref", + ) def test_ping_step4(): @@ -624,7 +643,7 @@ def test_ping_step4(): # Skip if previous fatal error condition is raised if tgen.routers_have_failure(): pytest.skip(tgen.errors) - + check_ping6("rt1", "fc00:0:9::1", False) @@ -704,8 +723,10 @@ def test_srv6_locator_step5(): for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: router_compare_json_output( - rname, "show segment-routing srv6 locator json", "step5/show_srv6_locator_table.ref" - ) + rname, + "show segment-routing srv6 locator json", + "step5/show_srv6_locator_table.ref", + ) def test_ping_step5(): @@ -720,7 +741,7 @@ def test_ping_step5(): # Skip if previous fatal error condition is raised if tgen.routers_have_failure(): pytest.skip(tgen.errors) - + check_ping6("rt1", "fc00:0:9::1", True) @@ -799,8 +820,10 @@ def test_srv6_locator_step6(): for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: router_compare_json_output( - rname, "show segment-routing srv6 locator json", "step6/show_srv6_locator_table.ref" - ) + rname, + "show segment-routing srv6 locator json", + "step6/show_srv6_locator_table.ref", + ) def test_ping_step6(): @@ -815,7 +838,7 @@ def test_ping_step6(): # Skip if previous fatal error condition is raised if tgen.routers_have_failure(): pytest.skip(tgen.errors) - + check_ping6("rt1", "fc00:0:9::1", False) @@ -895,8 +918,10 @@ def test_srv6_locator_step7(): for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: router_compare_json_output( - rname, "show segment-routing srv6 locator json", "step7/show_srv6_locator_table.ref" - ) + rname, + "show segment-routing srv6 locator json", + "step7/show_srv6_locator_table.ref", + ) def test_ping_step7(): @@ -911,7 +936,7 @@ def test_ping_step7(): # Skip if previous fatal error condition is raised if tgen.routers_have_failure(): pytest.skip(tgen.errors) - + check_ping6("rt1", "fc00:0:9::1", True) @@ -990,8 +1015,10 @@ def test_srv6_locator_step8(): for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: router_compare_json_output( - rname, "show segment-routing srv6 locator json", "step8/show_srv6_locator_table.ref" - ) + rname, + "show segment-routing srv6 locator json", + "step8/show_srv6_locator_table.ref", + ) def test_ping_step8(): @@ -1006,7 +1033,7 @@ def test_ping_step8(): # Skip if previous fatal error condition is raised if tgen.routers_have_failure(): pytest.skip(tgen.errors) - + check_ping6("rt1", "fc00:0:9::1", False) @@ -1089,8 +1116,10 @@ def test_srv6_locator_step9(): for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]: router_compare_json_output( - rname, "show segment-routing srv6 locator json", "step9/show_srv6_locator_table.ref" - ) + rname, + "show segment-routing srv6 locator json", + "step9/show_srv6_locator_table.ref", + ) def test_ping_step9(): @@ -1105,7 +1134,7 @@ def test_ping_step9(): # Skip if previous fatal error condition is raised if tgen.routers_have_failure(): pytest.skip(tgen.errors) - + check_ping6("rt1", "fc00:0:9::1", True) diff --git a/tests/topotests/isis_te_topo1/test_isis_te_topo1.py b/tests/topotests/isis_te_topo1/test_isis_te_topo1.py index 9c70e0578..eb4f31012 100644 --- a/tests/topotests/isis_te_topo1/test_isis_te_topo1.py +++ b/tests/topotests/isis_te_topo1/test_isis_te_topo1.py @@ -189,10 +189,18 @@ def test_step3(): tgen = setup_testcase("Step3: Add IPv6 on r1 and r2 interfaces") - tgen.net["r1"].cmd('vtysh -c "conf t" -c "interface r1-eth0" -c "ipv6 address 2001:db8:0::1/64"') - tgen.net["r1"].cmd('vtysh -c "conf t" -c "interface r1-eth0" -c "ipv6 router isis TE"') - tgen.net["r2"].cmd('vtysh -c "conf t" -c "interface r2-eth0" -c "ipv6 address 2001:db8:0::2/64"') - tgen.net["r2"].cmd('vtysh -c "conf t" -c "interface r2-eth0" -c "ipv6 router isis TE"') + tgen.net["r1"].cmd( + 'vtysh -c "conf t" -c "interface r1-eth0" -c "ipv6 address 2001:db8:0::1/64"' + ) + tgen.net["r1"].cmd( + 'vtysh -c "conf t" -c "interface r1-eth0" -c "ipv6 router isis TE"' + ) + tgen.net["r2"].cmd( + 'vtysh -c "conf t" -c "interface r2-eth0" -c "ipv6 address 2001:db8:0::2/64"' + ) + tgen.net["r2"].cmd( + 'vtysh -c "conf t" -c "interface r2-eth0" -c "ipv6 router isis TE"' + ) for rname in ["r1", "r2", "r3", "r4"]: compare_ted_json_output(tgen, rname, "ted_step3.json") @@ -202,8 +210,12 @@ def test_step4(): tgen = setup_testcase("Step4: Modify Prefix SID on router r4") - tgen.net["r4"].cmd('vtysh -c "conf t" -c "router isis TE" -c "segment-routing prefix 10.0.255.4/32 index 40"') - tgen.net["r4"].cmd('vtysh -c "conf t" -c "router isis TE" -c "segment-routing prefix 2001:db8:ffff::4/128 index 1040"') + tgen.net["r4"].cmd( + 'vtysh -c "conf t" -c "router isis TE" -c "segment-routing prefix 10.0.255.4/32 index 40"' + ) + tgen.net["r4"].cmd( + 'vtysh -c "conf t" -c "router isis TE" -c "segment-routing prefix 2001:db8:ffff::4/128 index 1040"' + ) for rname in ["r1", "r2", "r3", "r4"]: compare_ted_json_output(tgen, rname, "ted_step4.json") @@ -229,9 +241,15 @@ def test_step6(): tgen = setup_testcase("Step6: Modify link parameters on r2 & r4") - tgen.net["r2"].cmd('vtysh -c "conf t" -c "interface r2-eth3" -c "link-params" -c "no use-bw"') - tgen.net["r4"].cmd('vtysh -c "conf t" -c "interface r4-eth0" -c "link-params" -c "delay 20000"') - tgen.net["r4"].cmd('vtysh -c "conf t" -c "interface r4-eth0" -c "link-params" -c "delay-variation 10000"') + tgen.net["r2"].cmd( + 'vtysh -c "conf t" -c "interface r2-eth3" -c "link-params" -c "no use-bw"' + ) + tgen.net["r4"].cmd( + 'vtysh -c "conf t" -c "interface r4-eth0" -c "link-params" -c "delay 20000"' + ) + tgen.net["r4"].cmd( + 'vtysh -c "conf t" -c "interface r4-eth0" -c "link-params" -c "delay-variation 10000"' + ) for rname in ["r1", "r2", "r3", "r4"]: compare_ted_json_output(tgen, rname, "ted_step6.json") diff --git a/tests/topotests/lib/bmp_collector/bgp/open/__init__.py b/tests/topotests/lib/bmp_collector/bgp/open/__init__.py index 6c814ee9a..e1e6b51f6 100644 --- a/tests/topotests/lib/bmp_collector/bgp/open/__init__.py +++ b/tests/topotests/lib/bmp_collector/bgp/open/__init__.py @@ -8,27 +8,29 @@ import struct class BGPOpen: - UNPACK_STR = '!16sHBBHH4sB' + UNPACK_STR = "!16sHBBHH4sB" @classmethod def dissect(cls, data): - (marker, - length, - open_type, - version, - my_as, - hold_time, - bgp_id, - optional_params_len) = struct.unpack_from(cls.UNPACK_STR, data) + ( + marker, + length, + open_type, + version, + my_as, + hold_time, + bgp_id, + optional_params_len, + ) = struct.unpack_from(cls.UNPACK_STR, data) - data = data[struct.calcsize(cls.UNPACK_STR) + optional_params_len:] + data = data[struct.calcsize(cls.UNPACK_STR) + optional_params_len :] # XXX: parse optional parameters return data, { - 'version': version, - 'my_as': my_as, - 'hold_time': hold_time, - 'bgp_id': ipaddress.ip_address(bgp_id), - 'optional_params_len': optional_params_len, + "version": version, + "my_as": my_as, + "hold_time": hold_time, + "bgp_id": ipaddress.ip_address(bgp_id), + "optional_params_len": optional_params_len, } diff --git a/tests/topotests/lib/bmp_collector/bgp/update/__init__.py b/tests/topotests/lib/bmp_collector/bgp/update/__init__.py index d079b3511..629e17536 100644 --- a/tests/topotests/lib/bmp_collector/bgp/update/__init__.py +++ b/tests/topotests/lib/bmp_collector/bgp/update/__init__.py @@ -10,45 +10,47 @@ from .nlri import NlriIPv4Unicast from .path_attributes import PathAttribute -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class BGPUpdate: - UNPACK_STR = '!16sHBH' + UNPACK_STR = "!16sHBH" STATIC_SIZE = 23 @classmethod def dissect(cls, data): - msg = {'bmp_log_type': 'update'} + msg = {"bmp_log_type": "update"} common_size = struct.calcsize(cls.UNPACK_STR) - (marker, - length, - update_type, - withdrawn_routes_len) = struct.unpack_from(cls.UNPACK_STR, data) + (marker, length, update_type, withdrawn_routes_len) = struct.unpack_from( + cls.UNPACK_STR, data + ) # get withdrawn routes - withdrawn_routes = '' + withdrawn_routes = "" if withdrawn_routes_len: withdrawn_routes = NlriIPv4Unicast.parse( - data[common_size:common_size + withdrawn_routes_len] + data[common_size : common_size + withdrawn_routes_len] ) - msg['bmp_log_type'] = 'withdraw' + msg["bmp_log_type"] = "withdraw" msg.update(withdrawn_routes) # get path attributes (total_path_attrs_len,) = struct.unpack_from( - '!H', data[common_size+withdrawn_routes_len:]) + "!H", data[common_size + withdrawn_routes_len :] + ) if total_path_attrs_len: offset = cls.STATIC_SIZE + withdrawn_routes_len - path_attrs_data = data[offset:offset + total_path_attrs_len] + path_attrs_data = data[offset : offset + total_path_attrs_len] while path_attrs_data: path_attrs_data, pattr = PathAttribute.dissect(path_attrs_data) if pattr: msg = {**msg, **pattr} # get nlri - nlri_len = length - cls.STATIC_SIZE - withdrawn_routes_len - total_path_attrs_len + nlri_len = ( + length - cls.STATIC_SIZE - withdrawn_routes_len - total_path_attrs_len + ) if nlri_len > 0: - nlri = NlriIPv4Unicast.parse(data[length - nlri_len:length]) + nlri = NlriIPv4Unicast.parse(data[length - nlri_len : length]) msg.update(nlri) return data[length:], msg diff --git a/tests/topotests/lib/bmp_collector/bgp/update/af.py b/tests/topotests/lib/bmp_collector/bgp/update/af.py index 01af1ae2b..200b15a05 100644 --- a/tests/topotests/lib/bmp_collector/bgp/update/af.py +++ b/tests/topotests/lib/bmp_collector/bgp/update/af.py @@ -19,7 +19,7 @@ SAFI_IP_FLOWSPEC = 133 SAFI_VPN_FLOWSPEC = 134 -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class AddressFamily: def __init__(self, afi, safi): self.afi = afi @@ -31,13 +31,13 @@ class AddressFamily: return (self.afi, self.safi) == (other.afi, other.safi) def __str__(self): - return f'afi: {self.afi}, safi: {self.safi}' + return f"afi: {self.afi}, safi: {self.safi}" def __hash__(self): return hash((self.afi, self.safi)) -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class AF: IPv4_UNICAST = AddressFamily(AFI_IP, SAFI_UNICAST) IPv6_UNICAST = AddressFamily(AFI_IP6, SAFI_UNICAST) diff --git a/tests/topotests/lib/bmp_collector/bgp/update/nlri.py b/tests/topotests/lib/bmp_collector/bgp/update/nlri.py index c1720f126..219a13427 100644 --- a/tests/topotests/lib/bmp_collector/bgp/update/nlri.py +++ b/tests/topotests/lib/bmp_collector/bgp/update/nlri.py @@ -13,7 +13,8 @@ from .rd import RouteDistinguisher def decode_label(label): # from frr # frr encode just one label - return (label[0] << 12) | (label[1] << 4) | (label[2] & 0xf0) >> 4 + return (label[0] << 12) | (label[1] << 4) | (label[2] & 0xF0) >> 4 + def padding(databin, len_): """ @@ -23,7 +24,8 @@ def padding(databin, len_): """ if len(databin) >= len_: return databin - return databin + b'\0' * (len_ - len(databin)) + return databin + b"\0" * (len_ - len(databin)) + def dissect_nlri(nlri_data, afi, safi): """ @@ -37,35 +39,35 @@ def dissect_nlri(nlri_data, afi, safi): elif addr_family == AF.IPv6_UNICAST: return NlriIPv6Unicast.parse(nlri_data) - return {'ip_prefix': 'Unknown'} + return {"ip_prefix": "Unknown"} -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriIPv4Unicast: @staticmethod def parse(data): """parses prefixes from withdrawn_routes or nrli data""" - (prefix_len,) = struct.unpack_from('!B', data) + (prefix_len,) = struct.unpack_from("!B", data) prefix = padding(data[1:], 4) - return {'ip_prefix': f'{ipaddress.IPv4Address(prefix)}/{prefix_len}'} + return {"ip_prefix": f"{ipaddress.IPv4Address(prefix)}/{prefix_len}"} -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriIPv6Unicast: @staticmethod def parse(data): """parses prefixes from withdrawn_routes or nrli data""" - (prefix_len,) = struct.unpack_from('!B', data) + (prefix_len,) = struct.unpack_from("!B", data) prefix = padding(data[1:], 16) - return {'ip_prefix': f'{ipaddress.IPv6Address(prefix)}/{prefix_len}'} + return {"ip_prefix": f"{ipaddress.IPv6Address(prefix)}/{prefix_len}"} -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriIPv4Vpn: - UNPACK_STR = '!B3s8s' + UNPACK_STR = "!B3s8s" @classmethod def parse(cls, data): @@ -74,17 +76,17 @@ class NlriIPv4Vpn: ipv4 = padding(data[offset:], 4) # prefix_len = total_bits_len - label_bits_len - rd_bits_len - prefix_len = bit_len - 3*8 - 8*8 + prefix_len = bit_len - 3 * 8 - 8 * 8 return { - 'label': decode_label(label), - 'rd': str(RouteDistinguisher(rd)), - 'ip_prefix': f'{ipaddress.IPv4Address(ipv4)}/{prefix_len}', + "label": decode_label(label), + "rd": str(RouteDistinguisher(rd)), + "ip_prefix": f"{ipaddress.IPv4Address(ipv4)}/{prefix_len}", } -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriIPv6Vpn: - UNPACK_STR = '!B3s8s' + UNPACK_STR = "!B3s8s" @classmethod def parse(cls, data): @@ -93,48 +95,49 @@ class NlriIPv6Vpn: offset = struct.calcsize(cls.UNPACK_STR) ipv6 = padding(data[offset:], 16) - prefix_len = bit_len - 3*8 - 8*8 + prefix_len = bit_len - 3 * 8 - 8 * 8 return { - 'label': decode_label(label), - 'rd': str(RouteDistinguisher(rd)), - 'ip_prefix': f'{ipaddress.IPv6Address(ipv6)}/{prefix_len}', + "label": decode_label(label), + "rd": str(RouteDistinguisher(rd)), + "ip_prefix": f"{ipaddress.IPv6Address(ipv6)}/{prefix_len}", } -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriIPv4Mpls: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriIPv6Mpls: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriIPv4FlowSpec: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriIPv6FlowSpec: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriVpn4FlowSpec: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriVpn6FlowSpec: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class NlriL2EVPN: pass -#------------------------------------------------------------------------------ + +# ------------------------------------------------------------------------------ class NlriL2VPNFlowSpec: pass diff --git a/tests/topotests/lib/bmp_collector/bgp/update/path_attributes.py b/tests/topotests/lib/bmp_collector/bgp/update/path_attributes.py index 6e82e9c17..3694cb4fe 100644 --- a/tests/topotests/lib/bmp_collector/bgp/update/path_attributes.py +++ b/tests/topotests/lib/bmp_collector/bgp/update/path_attributes.py @@ -38,17 +38,18 @@ ORIGIN_EGP = 0x01 ORIGIN_INCOMPLETE = 0x02 -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttribute: PATH_ATTRS = {} UNKNOWN_ATTR = None - UNPACK_STR = '!BB' + UNPACK_STR = "!BB" @classmethod def register_path_attr(cls, path_attr): def _register_path_attr(subcls): cls.PATH_ATTRS[path_attr] = subcls return subcls + return _register_path_attr @classmethod @@ -61,7 +62,7 @@ class PathAttribute: offset = struct.calcsize(cls.UNPACK_STR) # get attribute length - attr_len_str = '!H' if (flags & PATH_ATTR_FLAG_EXTENDED_LENGTH) else '!B' + attr_len_str = "!H" if (flags & PATH_ATTR_FLAG_EXTENDED_LENGTH) else "!B" (attr_len,) = struct.unpack_from(attr_len_str, data[offset:]) @@ -69,32 +70,34 @@ class PathAttribute: path_attr_cls = cls.lookup_path_attr(type_code) if path_attr_cls == cls.UNKNOWN_ATTR: - return data[offset + attr_len:], None + return data[offset + attr_len :], None - return data[offset+attr_len:], path_attr_cls.dissect(data[offset:offset+attr_len]) + return data[offset + attr_len :], path_attr_cls.dissect( + data[offset : offset + attr_len] + ) -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ @PathAttribute.register_path_attr(PATH_ATTR_TYPE_ORIGIN) class PathAttrOrigin: ORIGIN_STR = { - ORIGIN_IGP: 'IGP', - ORIGIN_EGP: 'EGP', - ORIGIN_INCOMPLETE: 'INCOMPLETE', + ORIGIN_IGP: "IGP", + ORIGIN_EGP: "EGP", + ORIGIN_INCOMPLETE: "INCOMPLETE", } @classmethod def dissect(cls, data): - (origin,) = struct.unpack_from('!B', data) + (origin,) = struct.unpack_from("!B", data) - return {'origin': cls.ORIGIN_STR.get(origin, 'UNKNOWN')} + return {"origin": cls.ORIGIN_STR.get(origin, "UNKNOWN")} -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ @PathAttribute.register_path_attr(PATH_ATTR_TYPE_AS_PATH) class PathAttrAsPath: AS_PATH_TYPE_SET = 0x01 - AS_PATH_TYPE_SEQUENCE= 0x02 + AS_PATH_TYPE_SEQUENCE = 0x02 @staticmethod def get_asn_len(asns): @@ -103,34 +106,34 @@ class PathAttrAsPath: @classmethod def dissect(cls, data): - (_type, _len) = struct.unpack_from('!BB', data) + (_type, _len) = struct.unpack_from("!BB", data) data = data[2:] - _type_str = 'Ordred' if _type == cls.AS_PATH_TYPE_SEQUENCE else 'Raw' + _type_str = "Ordred" if _type == cls.AS_PATH_TYPE_SEQUENCE else "Raw" segment = [] while data: - (asn,) = struct.unpack_from('!I', data) + (asn,) = struct.unpack_from("!I", data) segment.append(asn) data = data[4:] - return {'as_path': ' '.join(str(a) for a in segment)} + return {"as_path": " ".join(str(a) for a in segment)} -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ @PathAttribute.register_path_attr(PATH_ATTR_TYPE_NEXT_HOP) class PathAttrNextHop: @classmethod def dissect(cls, data): - (nexthop,) = struct.unpack_from('!4s', data) - return {'bgp_nexthop': str(ipaddress.IPv4Address(nexthop))} + (nexthop,) = struct.unpack_from("!4s", data) + return {"bgp_nexthop": str(ipaddress.IPv4Address(nexthop))} -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrMultiExitDisc: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ @PathAttribute.register_path_attr(PATH_ATTR_TYPE_MP_REACH_NLRI) class PathAttrMpReachNLRI: """ @@ -162,7 +165,8 @@ class PathAttrMpReachNLRI: | Network Layer Reachability Information (variable) | +---------------------------------------------------------+ """ - UNPACK_STR = '!HBB' + + UNPACK_STR = "!HBB" NLRI_RESERVED_LEN = 1 @staticmethod @@ -170,35 +174,35 @@ class PathAttrMpReachNLRI: msg = {} if nexthop_len == 4: # IPv4 - (ipv4,) = struct.unpack_from('!4s', nexthop_data) - msg['nxhp_ip'] = str(ipaddress.IPv4Address(ipv4)) + (ipv4,) = struct.unpack_from("!4s", nexthop_data) + msg["nxhp_ip"] = str(ipaddress.IPv4Address(ipv4)) elif nexthop_len == 12: # RD + IPv4 - (rd, ipv4) = struct.unpack_from('!8s4s', nexthop_data) - msg['nxhp_ip'] = str(ipaddress.IPv4Address(ipv4)) - msg['nxhp_rd'] = str(RouteDistinguisher(rd)) + (rd, ipv4) = struct.unpack_from("!8s4s", nexthop_data) + msg["nxhp_ip"] = str(ipaddress.IPv4Address(ipv4)) + msg["nxhp_rd"] = str(RouteDistinguisher(rd)) elif nexthop_len == 16: # IPv6 - (ipv6,) = struct.unpack_from('!16s', nexthop_data) - msg['nxhp_ip'] = str(ipaddress.IPv6Address(ipv6)) + (ipv6,) = struct.unpack_from("!16s", nexthop_data) + msg["nxhp_ip"] = str(ipaddress.IPv6Address(ipv6)) elif nexthop_len == 24: # RD + IPv6 - (rd, ipv6) = struct.unpack_from('!8s16s', nexthop_data) - msg['nxhp_ip'] = str(ipaddress.IPv6Address(ipv6)) - msg['nxhp_rd'] = str(RouteDistinguisher(rd)) + (rd, ipv6) = struct.unpack_from("!8s16s", nexthop_data) + msg["nxhp_ip"] = str(ipaddress.IPv6Address(ipv6)) + msg["nxhp_rd"] = str(RouteDistinguisher(rd)) elif nexthop_len == 32: # IPv6 + IPv6 link-local - (ipv6, link_local)= struct.unpack_from('!16s16s', nexthop_data) - msg['nxhp_ip'] = str(ipaddress.IPv6Address(ipv6)) - msg['nxhp_link-local'] = str(ipaddress.IPv6Address(link_local)) + (ipv6, link_local) = struct.unpack_from("!16s16s", nexthop_data) + msg["nxhp_ip"] = str(ipaddress.IPv6Address(ipv6)) + msg["nxhp_link-local"] = str(ipaddress.IPv6Address(link_local)) elif nexthop_len == 48: # RD + IPv6 + RD + IPv6 link-local - u_str = '!8s16s8s16s' - (rd1, ipv6, rd2, link_local)= struct.unpack_from(u_str, nexthop_data) - msg['nxhp_rd1'] = str(RouteDistinguisher(rd1)) - msg['nxhp_ip'] = str(ipaddress.IPv6Address(ipv6)) - msg['nxhp_rd2'] = str(RouteDistinguisher(rd2)) - msg['nxhp_link-local'] = str(ipaddress.IPv6Address(link_local)) + u_str = "!8s16s8s16s" + (rd1, ipv6, rd2, link_local) = struct.unpack_from(u_str, nexthop_data) + msg["nxhp_rd1"] = str(RouteDistinguisher(rd1)) + msg["nxhp_ip"] = str(ipaddress.IPv6Address(ipv6)) + msg["nxhp_rd2"] = str(RouteDistinguisher(rd2)) + msg["nxhp_link-local"] = str(ipaddress.IPv6Address(link_local)) return msg @@ -210,10 +214,10 @@ class PathAttrMpReachNLRI: def dissect(cls, data): (afi, safi, nexthop_len) = struct.unpack_from(cls.UNPACK_STR, data) offset = struct.calcsize(cls.UNPACK_STR) - msg = {'afi': afi, 'safi': safi} + msg = {"afi": afi, "safi": safi} # dissect nexthop - nexthop_data = data[offset: offset + nexthop_len] + nexthop_data = data[offset : offset + nexthop_len] nexthop = cls.dissect_nexthop(nexthop_data, nexthop_len) msg.update(nexthop) @@ -227,7 +231,7 @@ class PathAttrMpReachNLRI: return msg -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ @PathAttribute.register_path_attr(PATH_ATTR_TYPE_MP_UNREACH_NLRI) class PathAttrMpUnReachNLRI: """ @@ -239,13 +243,14 @@ class PathAttrMpUnReachNLRI: | Withdrawn Routes (variable) | +---------------------------------------------------------+ """ - UNPACK_STR = '!HB' + + UNPACK_STR = "!HB" @classmethod def dissect(cls, data): (afi, safi) = struct.unpack_from(cls.UNPACK_STR, data) offset = struct.calcsize(cls.UNPACK_STR) - msg = {'bmp_log_type': 'withdraw','afi': afi, 'safi': safi} + msg = {"bmp_log_type": "withdraw", "afi": afi, "safi": safi} if data[offset:]: # dissect withdrawn_routes @@ -254,51 +259,51 @@ class PathAttrMpUnReachNLRI: return msg -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrLocalPref: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrAtomicAgregate: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrAggregator: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrCommunities: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrOriginatorID: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrClusterList: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrExtendedCommunities: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrPMSITunnel: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrLinkState: pass -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class PathAttrLargeCommunities: pass diff --git a/tests/topotests/lib/bmp_collector/bgp/update/rd.py b/tests/topotests/lib/bmp_collector/bgp/update/rd.py index c382fa834..3f08de5ae 100644 --- a/tests/topotests/lib/bmp_collector/bgp/update/rd.py +++ b/tests/topotests/lib/bmp_collector/bgp/update/rd.py @@ -7,7 +7,7 @@ import ipaddress import struct -#------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ class RouteDistinguisher: """ type 0: @@ -28,32 +28,32 @@ class RouteDistinguisher: + | 4-bytes AS number (4 bytes)| Service Provider 2 bytes)| +-------------------------------------------------------------------------+ """ + def __init__(self, rd): self.rd = rd self.as_number = None self.admin_ipv4 = None self.four_bytes_as = None self.assigned_sp = None - self.repr_str = '' + self.repr_str = "" self.dissect() def dissect(self): - (rd_type,) = struct.unpack_from('!H', self.rd) + (rd_type,) = struct.unpack_from("!H", self.rd) if rd_type == 0: - (self.as_number, - self.assigned_sp) = struct.unpack_from('!HI', self.rd[2:]) - self.repr_str = f'{self.as_number}:{self.assigned_sp}' + (self.as_number, self.assigned_sp) = struct.unpack_from("!HI", self.rd[2:]) + self.repr_str = f"{self.as_number}:{self.assigned_sp}" elif rd_type == 1: - (self.admin_ipv4, - self.assigned_sp) = struct.unpack_from('!IH', self.rd[2:]) + (self.admin_ipv4, self.assigned_sp) = struct.unpack_from("!IH", self.rd[2:]) ipv4 = str(ipaddress.IPv4Address(self.admin_ipv4)) - self.repr_str = f'{self.as_number}:{self.assigned_sp}' + self.repr_str = f"{self.as_number}:{self.assigned_sp}" elif rd_type == 2: - (self.four_bytes_as, - self.assigned_sp) = struct.unpack_from('!IH', self.rd[2:]) - self.repr_str = f'{self.four_bytes_as}:{self.assigned_sp}' + (self.four_bytes_as, self.assigned_sp) = struct.unpack_from( + "!IH", self.rd[2:] + ) + self.repr_str = f"{self.four_bytes_as}:{self.assigned_sp}" def __str__(self): return self.repr_str diff --git a/tests/topotests/lib/pim.py b/tests/topotests/lib/pim.py index f7440efd6..ded32742a 100644 --- a/tests/topotests/lib/pim.py +++ b/tests/topotests/lib/pim.py @@ -3764,12 +3764,12 @@ def verify_multicast_traffic(tgen, input_dict, return_traffic=False, expected=Tr elif ( interface_json["pktsIn"] != 0 and interface_json["bytesIn"] != 0 ): - traffic_dict[traffic_type][interface][ - "pktsIn" - ] = interface_json["pktsIn"] - traffic_dict[traffic_type][interface][ - "bytesIn" - ] = interface_json["bytesIn"] + traffic_dict[traffic_type][interface]["pktsIn"] = ( + interface_json["pktsIn"] + ) + traffic_dict[traffic_type][interface]["bytesIn"] = ( + interface_json["bytesIn"] + ) logger.info( "[DUT %s]: Multicast traffic is " @@ -3827,12 +3827,12 @@ def verify_multicast_traffic(tgen, input_dict, return_traffic=False, expected=Tr interface_json["pktsOut"] != 0 and interface_json["bytesOut"] != 0 ): - traffic_dict[traffic_type][interface][ - "pktsOut" - ] = interface_json["pktsOut"] - traffic_dict[traffic_type][interface][ - "bytesOut" - ] = interface_json["bytesOut"] + traffic_dict[traffic_type][interface]["pktsOut"] = ( + interface_json["pktsOut"] + ) + traffic_dict[traffic_type][interface]["bytesOut"] = ( + interface_json["bytesOut"] + ) logger.info( "[DUT %s]: Multicast traffic is " diff --git a/tests/topotests/lib/topojson.py b/tests/topotests/lib/topojson.py index 901e4f623..77ea0b4ce 100644 --- a/tests/topotests/lib/topojson.py +++ b/tests/topotests/lib/topojson.py @@ -224,16 +224,20 @@ def build_topo_from_json(tgen, topo=None): ) # Assigning name to interfaces - topo["routers"][destRouter]["links"][curSwitch][ - "interface" - ] = "{}-{}-eth{}".format( - destRouter, curSwitch, topo["routers"][destRouter]["nextIfname"] + topo["routers"][destRouter]["links"][curSwitch]["interface"] = ( + "{}-{}-eth{}".format( + destRouter, + curSwitch, + topo["routers"][destRouter]["nextIfname"], + ) ) - topo["switches"][curSwitch]["links"][destRouter][ - "interface" - ] = "{}-{}-eth{}".format( - curSwitch, destRouter, topo["routers"][destRouter]["nextIfname"] + topo["switches"][curSwitch]["links"][destRouter]["interface"] = ( + "{}-{}-eth{}".format( + curSwitch, + destRouter, + topo["routers"][destRouter]["nextIfname"], + ) ) topo["routers"][destRouter]["nextIfname"] += 1 @@ -251,10 +255,10 @@ def build_topo_from_json(tgen, topo=None): topo["routers"][destRouter]["links"][curSwitch]["ipv4"] == "auto" ): - topo["routers"][destRouter]["links"][curSwitch][ - "ipv4" - ] = "{}/{}".format( - ipv4Next, topo["link_ip_start"]["v4mask"] + topo["routers"][destRouter]["links"][curSwitch]["ipv4"] = ( + "{}/{}".format( + ipv4Next, topo["link_ip_start"]["v4mask"] + ) ) ipv4Next += 1 # IPv6 @@ -263,10 +267,10 @@ def build_topo_from_json(tgen, topo=None): topo["routers"][destRouter]["links"][curSwitch]["ipv6"] == "auto" ): - topo["routers"][destRouter]["links"][curSwitch][ - "ipv6" - ] = "{}/{}".format( - ipv6Next, topo["link_ip_start"]["v6mask"] + topo["routers"][destRouter]["links"][curSwitch]["ipv6"] = ( + "{}/{}".format( + ipv6Next, topo["link_ip_start"]["v6mask"] + ) ) ipv6Next = ipaddress.IPv6Address(int(ipv6Next) + ipv6Step) diff --git a/tests/topotests/lib/topotest.py b/tests/topotests/lib/topotest.py index 985ba536d..087d8454f 100644 --- a/tests/topotests/lib/topotest.py +++ b/tests/topotests/lib/topotest.py @@ -2183,12 +2183,16 @@ class Router(Node): daemon, error.returncode, error.cmd, - '\n:stdout: "{}"'.format(error.stdout.strip()) - if error.stdout - else "", - '\n:stderr: "{}"'.format(error.stderr.strip()) - if error.stderr - else "", + ( + '\n:stdout: "{}"'.format(error.stdout.strip()) + if error.stdout + else "" + ), + ( + '\n:stderr: "{}"'.format(error.stderr.strip()) + if error.stderr + else "" + ), ) else: logger.debug("%s: %s %s started", self, self.routertype, daemon) diff --git a/tests/topotests/mgmt_fe_client/mgmt_pb2.py b/tests/topotests/mgmt_fe_client/mgmt_pb2.py index 0aa8803f7..b44b5aee4 100644 --- a/tests/topotests/mgmt_fe_client/mgmt_pb2.py +++ b/tests/topotests/mgmt_fe_client/mgmt_pb2.py @@ -7,90 +7,113 @@ from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database + # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() - - DESCRIPTOR = _descriptor.FileDescriptor( - name='mgmt.proto', - package='mgmtd', - syntax='proto2', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\nmgmt.proto\x12\x05mgmtd\"\x1e\n\rYangDataXPath\x12\r\n\x05xpath\x18\x01 \x02(\t\"3\n\rYangDataValue\x12\x19\n\x0f\x65ncoded_str_val\x18\x64 \x01(\tH\x00\x42\x07\n\x05value\">\n\x08YangData\x12\r\n\x05xpath\x18\x01 \x02(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.mgmtd.YangDataValue\"X\n\x0eYangCfgDataReq\x12\x1d\n\x04\x64\x61ta\x18\x01 \x02(\x0b\x32\x0f.mgmtd.YangData\x12\'\n\x08req_type\x18\x02 \x02(\x0e\x32\x15.mgmtd.CfgDataReqType\"B\n\x0eYangGetDataReq\x12\x1d\n\x04\x64\x61ta\x18\x01 \x02(\x0b\x32\x0f.mgmtd.YangData\x12\x11\n\tnext_indx\x18\x02 \x02(\x03\"R\n\x0e\x42\x65SubscribeReq\x12\x13\n\x0b\x63lient_name\x18\x01 \x02(\t\x12\x18\n\x10subscribe_xpaths\x18\x02 \x02(\x08\x12\x11\n\txpath_reg\x18\x03 \x03(\t\"#\n\x10\x42\x65SubscribeReply\x12\x0f\n\x07success\x18\x01 \x02(\x08\"*\n\x08\x42\x65TxnReq\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\x12\x0e\n\x06\x63reate\x18\x02 \x02(\x08\"=\n\nBeTxnReply\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\x12\x0e\n\x06\x63reate\x18\x02 \x02(\x08\x12\x0f\n\x07success\x18\x03 \x02(\x08\"b\n\x12\x42\x65\x43\x66gDataCreateReq\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\x12\'\n\x08\x64\x61ta_req\x18\x02 \x03(\x0b\x32\x15.mgmtd.YangCfgDataReq\x12\x13\n\x0b\x65nd_of_data\x18\x03 \x02(\x08\"M\n\x14\x42\x65\x43\x66gDataCreateReply\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\x12\x0f\n\x07success\x18\x02 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x03 \x01(\t\"#\n\x11\x42\x65\x43\x66gDataApplyReq\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\"L\n\x13\x42\x65\x43\x66gDataApplyReply\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\x12\x0f\n\x07success\x18\x02 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x03 \x01(\t\"A\n\rYangDataReply\x12\x1d\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\x0f.mgmtd.YangData\x12\x11\n\tnext_indx\x18\x02 \x02(\x03\"\x94\x03\n\tBeMessage\x12+\n\nsubscr_req\x18\x02 \x01(\x0b\x32\x15.mgmtd.BeSubscribeReqH\x00\x12/\n\x0csubscr_reply\x18\x03 \x01(\x0b\x32\x17.mgmtd.BeSubscribeReplyH\x00\x12\"\n\x07txn_req\x18\x04 \x01(\x0b\x32\x0f.mgmtd.BeTxnReqH\x00\x12&\n\ttxn_reply\x18\x05 \x01(\x0b\x32\x11.mgmtd.BeTxnReplyH\x00\x12\x31\n\x0c\x63\x66g_data_req\x18\x06 \x01(\x0b\x32\x19.mgmtd.BeCfgDataCreateReqH\x00\x12\x35\n\x0e\x63\x66g_data_reply\x18\x07 \x01(\x0b\x32\x1b.mgmtd.BeCfgDataCreateReplyH\x00\x12\x31\n\rcfg_apply_req\x18\x08 \x01(\x0b\x32\x18.mgmtd.BeCfgDataApplyReqH\x00\x12\x35\n\x0f\x63\x66g_apply_reply\x18\t \x01(\x0b\x32\x1a.mgmtd.BeCfgDataApplyReplyH\x00\x42\t\n\x07message\"$\n\rFeRegisterReq\x12\x13\n\x0b\x63lient_name\x18\x01 \x02(\t\"T\n\x0c\x46\x65SessionReq\x12\x0e\n\x06\x63reate\x18\x01 \x02(\x08\x12\x18\n\x0e\x63lient_conn_id\x18\x02 \x01(\x04H\x00\x12\x14\n\nsession_id\x18\x03 \x01(\x04H\x00\x42\x04\n\x02id\"]\n\x0e\x46\x65SessionReply\x12\x0e\n\x06\x63reate\x18\x01 \x02(\x08\x12\x0f\n\x07success\x18\x02 \x02(\x08\x12\x16\n\x0e\x63lient_conn_id\x18\x03 \x01(\x04\x12\x12\n\nsession_id\x18\x04 \x02(\x04\"b\n\x0b\x46\x65LockDsReq\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12\x0e\n\x06req_id\x18\x02 \x02(\x04\x12!\n\x05\x64s_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0c\n\x04lock\x18\x04 \x02(\x08\"\x8b\x01\n\rFeLockDsReply\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12\x0e\n\x06req_id\x18\x02 \x02(\x04\x12!\n\x05\x64s_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0c\n\x04lock\x18\x04 \x02(\x08\x12\x0f\n\x07success\x18\x05 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x06 \x01(\t\"\xbf\x01\n\x0e\x46\x65SetConfigReq\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12!\n\x05\x64s_id\x18\x02 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x03 \x02(\x04\x12#\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x15.mgmtd.YangCfgDataReq\x12\x17\n\x0fimplicit_commit\x18\x05 \x02(\x08\x12(\n\x0c\x63ommit_ds_id\x18\x06 \x02(\x0e\x32\x12.mgmtd.DatastoreId\"\x99\x01\n\x10\x46\x65SetConfigReply\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12!\n\x05\x64s_id\x18\x02 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x03 \x02(\x04\x12\x0f\n\x07success\x18\x04 \x02(\x08\x12\x17\n\x0fimplicit_commit\x18\x05 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x06 \x01(\t\"\xab\x01\n\x11\x46\x65\x43ommitConfigReq\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12%\n\tsrc_ds_id\x18\x02 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12%\n\tdst_ds_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x04 \x02(\x04\x12\x15\n\rvalidate_only\x18\x05 \x02(\x08\x12\r\n\x05\x61\x62ort\x18\x06 \x02(\x08\"\xd4\x01\n\x13\x46\x65\x43ommitConfigReply\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12%\n\tsrc_ds_id\x18\x02 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12%\n\tdst_ds_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x04 \x02(\x04\x12\x15\n\rvalidate_only\x18\x05 \x02(\x08\x12\x0f\n\x07success\x18\x06 \x02(\x08\x12\r\n\x05\x61\x62ort\x18\x07 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x08 \x01(\t\"\x86\x01\n\x08\x46\x65GetReq\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12\x0e\n\x06\x63onfig\x18\x02 \x02(\x08\x12!\n\x05\x64s_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x04 \x02(\x04\x12#\n\x04\x64\x61ta\x18\x05 \x03(\x0b\x32\x15.mgmtd.YangGetDataReq\"\xae\x01\n\nFeGetReply\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12\x0e\n\x06\x63onfig\x18\x02 \x02(\x08\x12!\n\x05\x64s_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x04 \x02(\x04\x12\x0f\n\x07success\x18\x05 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x06 \x01(\t\x12\"\n\x04\x64\x61ta\x18\x07 \x01(\x0b\x32\x14.mgmtd.YangDataReply\"0\n\x0f\x46\x65NotifyDataReq\x12\x1d\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\x0f.mgmtd.YangData\"\x9c\x01\n\x13\x46\x65RegisterNotifyReq\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12!\n\x05\x64s_id\x18\x02 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x14\n\x0cregister_req\x18\x03 \x02(\x08\x12\x0e\n\x06req_id\x18\x04 \x02(\x04\x12(\n\ndata_xpath\x18\x05 \x03(\x0b\x32\x14.mgmtd.YangDataXPath\"\xf0\x04\n\tFeMessage\x12,\n\x0cregister_req\x18\x02 \x01(\x0b\x32\x14.mgmtd.FeRegisterReqH\x00\x12*\n\x0bsession_req\x18\x03 \x01(\x0b\x32\x13.mgmtd.FeSessionReqH\x00\x12.\n\rsession_reply\x18\x04 \x01(\x0b\x32\x15.mgmtd.FeSessionReplyH\x00\x12(\n\nlockds_req\x18\x05 \x01(\x0b\x32\x12.mgmtd.FeLockDsReqH\x00\x12,\n\x0clockds_reply\x18\x06 \x01(\x0b\x32\x14.mgmtd.FeLockDsReplyH\x00\x12+\n\nsetcfg_req\x18\x07 \x01(\x0b\x32\x15.mgmtd.FeSetConfigReqH\x00\x12/\n\x0csetcfg_reply\x18\x08 \x01(\x0b\x32\x17.mgmtd.FeSetConfigReplyH\x00\x12/\n\x0b\x63ommcfg_req\x18\t \x01(\x0b\x32\x18.mgmtd.FeCommitConfigReqH\x00\x12\x33\n\rcommcfg_reply\x18\n \x01(\x0b\x32\x1a.mgmtd.FeCommitConfigReplyH\x00\x12\"\n\x07get_req\x18\x0b \x01(\x0b\x32\x0f.mgmtd.FeGetReqH\x00\x12&\n\tget_reply\x18\x0c \x01(\x0b\x32\x11.mgmtd.FeGetReplyH\x00\x12\x31\n\x0fnotify_data_req\x18\x0f \x01(\x0b\x32\x16.mgmtd.FeNotifyDataReqH\x00\x12\x33\n\rregnotify_req\x18\x10 \x01(\x0b\x32\x1a.mgmtd.FeRegisterNotifyReqH\x00\x42\t\n\x07message*B\n\x0e\x43\x66gDataReqType\x12\x11\n\rREQ_TYPE_NONE\x10\x00\x12\x0c\n\x08SET_DATA\x10\x01\x12\x0f\n\x0b\x44\x45LETE_DATA\x10\x02*`\n\x0b\x44\x61tastoreId\x12\x0b\n\x07\x44S_NONE\x10\x00\x12\x0e\n\nRUNNING_DS\x10\x01\x12\x10\n\x0c\x43\x41NDIDATE_DS\x10\x02\x12\x12\n\x0eOPERATIONAL_DS\x10\x03\x12\x0e\n\nSTARTUP_DS\x10\x04' + name="mgmt.proto", + package="mgmtd", + syntax="proto2", + serialized_options=None, + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\nmgmt.proto\x12\x05mgmtd"\x1e\n\rYangDataXPath\x12\r\n\x05xpath\x18\x01 \x02(\t"3\n\rYangDataValue\x12\x19\n\x0f\x65ncoded_str_val\x18\x64 \x01(\tH\x00\x42\x07\n\x05value">\n\x08YangData\x12\r\n\x05xpath\x18\x01 \x02(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.mgmtd.YangDataValue"X\n\x0eYangCfgDataReq\x12\x1d\n\x04\x64\x61ta\x18\x01 \x02(\x0b\x32\x0f.mgmtd.YangData\x12\'\n\x08req_type\x18\x02 \x02(\x0e\x32\x15.mgmtd.CfgDataReqType"B\n\x0eYangGetDataReq\x12\x1d\n\x04\x64\x61ta\x18\x01 \x02(\x0b\x32\x0f.mgmtd.YangData\x12\x11\n\tnext_indx\x18\x02 \x02(\x03"R\n\x0e\x42\x65SubscribeReq\x12\x13\n\x0b\x63lient_name\x18\x01 \x02(\t\x12\x18\n\x10subscribe_xpaths\x18\x02 \x02(\x08\x12\x11\n\txpath_reg\x18\x03 \x03(\t"#\n\x10\x42\x65SubscribeReply\x12\x0f\n\x07success\x18\x01 \x02(\x08"*\n\x08\x42\x65TxnReq\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\x12\x0e\n\x06\x63reate\x18\x02 \x02(\x08"=\n\nBeTxnReply\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\x12\x0e\n\x06\x63reate\x18\x02 \x02(\x08\x12\x0f\n\x07success\x18\x03 \x02(\x08"b\n\x12\x42\x65\x43\x66gDataCreateReq\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\x12\'\n\x08\x64\x61ta_req\x18\x02 \x03(\x0b\x32\x15.mgmtd.YangCfgDataReq\x12\x13\n\x0b\x65nd_of_data\x18\x03 \x02(\x08"M\n\x14\x42\x65\x43\x66gDataCreateReply\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\x12\x0f\n\x07success\x18\x02 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x03 \x01(\t"#\n\x11\x42\x65\x43\x66gDataApplyReq\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04"L\n\x13\x42\x65\x43\x66gDataApplyReply\x12\x0e\n\x06txn_id\x18\x01 \x02(\x04\x12\x0f\n\x07success\x18\x02 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x03 \x01(\t"A\n\rYangDataReply\x12\x1d\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\x0f.mgmtd.YangData\x12\x11\n\tnext_indx\x18\x02 \x02(\x03"\x94\x03\n\tBeMessage\x12+\n\nsubscr_req\x18\x02 \x01(\x0b\x32\x15.mgmtd.BeSubscribeReqH\x00\x12/\n\x0csubscr_reply\x18\x03 \x01(\x0b\x32\x17.mgmtd.BeSubscribeReplyH\x00\x12"\n\x07txn_req\x18\x04 \x01(\x0b\x32\x0f.mgmtd.BeTxnReqH\x00\x12&\n\ttxn_reply\x18\x05 \x01(\x0b\x32\x11.mgmtd.BeTxnReplyH\x00\x12\x31\n\x0c\x63\x66g_data_req\x18\x06 \x01(\x0b\x32\x19.mgmtd.BeCfgDataCreateReqH\x00\x12\x35\n\x0e\x63\x66g_data_reply\x18\x07 \x01(\x0b\x32\x1b.mgmtd.BeCfgDataCreateReplyH\x00\x12\x31\n\rcfg_apply_req\x18\x08 \x01(\x0b\x32\x18.mgmtd.BeCfgDataApplyReqH\x00\x12\x35\n\x0f\x63\x66g_apply_reply\x18\t \x01(\x0b\x32\x1a.mgmtd.BeCfgDataApplyReplyH\x00\x42\t\n\x07message"$\n\rFeRegisterReq\x12\x13\n\x0b\x63lient_name\x18\x01 \x02(\t"T\n\x0c\x46\x65SessionReq\x12\x0e\n\x06\x63reate\x18\x01 \x02(\x08\x12\x18\n\x0e\x63lient_conn_id\x18\x02 \x01(\x04H\x00\x12\x14\n\nsession_id\x18\x03 \x01(\x04H\x00\x42\x04\n\x02id"]\n\x0e\x46\x65SessionReply\x12\x0e\n\x06\x63reate\x18\x01 \x02(\x08\x12\x0f\n\x07success\x18\x02 \x02(\x08\x12\x16\n\x0e\x63lient_conn_id\x18\x03 \x01(\x04\x12\x12\n\nsession_id\x18\x04 \x02(\x04"b\n\x0b\x46\x65LockDsReq\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12\x0e\n\x06req_id\x18\x02 \x02(\x04\x12!\n\x05\x64s_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0c\n\x04lock\x18\x04 \x02(\x08"\x8b\x01\n\rFeLockDsReply\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12\x0e\n\x06req_id\x18\x02 \x02(\x04\x12!\n\x05\x64s_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0c\n\x04lock\x18\x04 \x02(\x08\x12\x0f\n\x07success\x18\x05 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x06 \x01(\t"\xbf\x01\n\x0e\x46\x65SetConfigReq\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12!\n\x05\x64s_id\x18\x02 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x03 \x02(\x04\x12#\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x15.mgmtd.YangCfgDataReq\x12\x17\n\x0fimplicit_commit\x18\x05 \x02(\x08\x12(\n\x0c\x63ommit_ds_id\x18\x06 \x02(\x0e\x32\x12.mgmtd.DatastoreId"\x99\x01\n\x10\x46\x65SetConfigReply\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12!\n\x05\x64s_id\x18\x02 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x03 \x02(\x04\x12\x0f\n\x07success\x18\x04 \x02(\x08\x12\x17\n\x0fimplicit_commit\x18\x05 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x06 \x01(\t"\xab\x01\n\x11\x46\x65\x43ommitConfigReq\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12%\n\tsrc_ds_id\x18\x02 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12%\n\tdst_ds_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x04 \x02(\x04\x12\x15\n\rvalidate_only\x18\x05 \x02(\x08\x12\r\n\x05\x61\x62ort\x18\x06 \x02(\x08"\xd4\x01\n\x13\x46\x65\x43ommitConfigReply\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12%\n\tsrc_ds_id\x18\x02 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12%\n\tdst_ds_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x04 \x02(\x04\x12\x15\n\rvalidate_only\x18\x05 \x02(\x08\x12\x0f\n\x07success\x18\x06 \x02(\x08\x12\r\n\x05\x61\x62ort\x18\x07 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x08 \x01(\t"\x86\x01\n\x08\x46\x65GetReq\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12\x0e\n\x06\x63onfig\x18\x02 \x02(\x08\x12!\n\x05\x64s_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x04 \x02(\x04\x12#\n\x04\x64\x61ta\x18\x05 \x03(\x0b\x32\x15.mgmtd.YangGetDataReq"\xae\x01\n\nFeGetReply\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12\x0e\n\x06\x63onfig\x18\x02 \x02(\x08\x12!\n\x05\x64s_id\x18\x03 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x0e\n\x06req_id\x18\x04 \x02(\x04\x12\x0f\n\x07success\x18\x05 \x02(\x08\x12\x14\n\x0c\x65rror_if_any\x18\x06 \x01(\t\x12"\n\x04\x64\x61ta\x18\x07 \x01(\x0b\x32\x14.mgmtd.YangDataReply"0\n\x0f\x46\x65NotifyDataReq\x12\x1d\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\x0f.mgmtd.YangData"\x9c\x01\n\x13\x46\x65RegisterNotifyReq\x12\x12\n\nsession_id\x18\x01 \x02(\x04\x12!\n\x05\x64s_id\x18\x02 \x02(\x0e\x32\x12.mgmtd.DatastoreId\x12\x14\n\x0cregister_req\x18\x03 \x02(\x08\x12\x0e\n\x06req_id\x18\x04 \x02(\x04\x12(\n\ndata_xpath\x18\x05 \x03(\x0b\x32\x14.mgmtd.YangDataXPath"\xf0\x04\n\tFeMessage\x12,\n\x0cregister_req\x18\x02 \x01(\x0b\x32\x14.mgmtd.FeRegisterReqH\x00\x12*\n\x0bsession_req\x18\x03 \x01(\x0b\x32\x13.mgmtd.FeSessionReqH\x00\x12.\n\rsession_reply\x18\x04 \x01(\x0b\x32\x15.mgmtd.FeSessionReplyH\x00\x12(\n\nlockds_req\x18\x05 \x01(\x0b\x32\x12.mgmtd.FeLockDsReqH\x00\x12,\n\x0clockds_reply\x18\x06 \x01(\x0b\x32\x14.mgmtd.FeLockDsReplyH\x00\x12+\n\nsetcfg_req\x18\x07 \x01(\x0b\x32\x15.mgmtd.FeSetConfigReqH\x00\x12/\n\x0csetcfg_reply\x18\x08 \x01(\x0b\x32\x17.mgmtd.FeSetConfigReplyH\x00\x12/\n\x0b\x63ommcfg_req\x18\t \x01(\x0b\x32\x18.mgmtd.FeCommitConfigReqH\x00\x12\x33\n\rcommcfg_reply\x18\n \x01(\x0b\x32\x1a.mgmtd.FeCommitConfigReplyH\x00\x12"\n\x07get_req\x18\x0b \x01(\x0b\x32\x0f.mgmtd.FeGetReqH\x00\x12&\n\tget_reply\x18\x0c \x01(\x0b\x32\x11.mgmtd.FeGetReplyH\x00\x12\x31\n\x0fnotify_data_req\x18\x0f \x01(\x0b\x32\x16.mgmtd.FeNotifyDataReqH\x00\x12\x33\n\rregnotify_req\x18\x10 \x01(\x0b\x32\x1a.mgmtd.FeRegisterNotifyReqH\x00\x42\t\n\x07message*B\n\x0e\x43\x66gDataReqType\x12\x11\n\rREQ_TYPE_NONE\x10\x00\x12\x0c\n\x08SET_DATA\x10\x01\x12\x0f\n\x0b\x44\x45LETE_DATA\x10\x02*`\n\x0b\x44\x61tastoreId\x12\x0b\n\x07\x44S_NONE\x10\x00\x12\x0e\n\nRUNNING_DS\x10\x01\x12\x10\n\x0c\x43\x41NDIDATE_DS\x10\x02\x12\x12\n\x0eOPERATIONAL_DS\x10\x03\x12\x0e\n\nSTARTUP_DS\x10\x04', ) _CFGDATAREQTYPE = _descriptor.EnumDescriptor( - name='CfgDataReqType', - full_name='mgmtd.CfgDataReqType', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='REQ_TYPE_NONE', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SET_DATA', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DELETE_DATA', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=3674, - serialized_end=3740, + name="CfgDataReqType", + full_name="mgmtd.CfgDataReqType", + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name="REQ_TYPE_NONE", + index=0, + number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="SET_DATA", + index=1, + number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="DELETE_DATA", + index=2, + number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + ], + containing_type=None, + serialized_options=None, + serialized_start=3674, + serialized_end=3740, ) _sym_db.RegisterEnumDescriptor(_CFGDATAREQTYPE) CfgDataReqType = enum_type_wrapper.EnumTypeWrapper(_CFGDATAREQTYPE) _DATASTOREID = _descriptor.EnumDescriptor( - name='DatastoreId', - full_name='mgmtd.DatastoreId', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='DS_NONE', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='RUNNING_DS', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='CANDIDATE_DS', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='OPERATIONAL_DS', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='STARTUP_DS', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=3742, - serialized_end=3838, + name="DatastoreId", + full_name="mgmtd.DatastoreId", + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name="DS_NONE", + index=0, + number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="RUNNING_DS", + index=1, + number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="CANDIDATE_DS", + index=2, + number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="OPERATIONAL_DS", + index=3, + number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="STARTUP_DS", + index=4, + number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + ], + containing_type=None, + serialized_options=None, + serialized_start=3742, + serialized_end=3838, ) _sym_db.RegisterEnumDescriptor(_DATASTOREID) @@ -105,1885 +128,3341 @@ OPERATIONAL_DS = 3 STARTUP_DS = 4 - _YANGDATAXPATH = _descriptor.Descriptor( - name='YangDataXPath', - full_name='mgmtd.YangDataXPath', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='xpath', full_name='mgmtd.YangDataXPath.xpath', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=21, - serialized_end=51, + name="YangDataXPath", + full_name="mgmtd.YangDataXPath", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="xpath", + full_name="mgmtd.YangDataXPath.xpath", + index=0, + number=1, + type=9, + cpp_type=9, + label=2, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=21, + serialized_end=51, ) _YANGDATAVALUE = _descriptor.Descriptor( - name='YangDataValue', - full_name='mgmtd.YangDataValue', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='encoded_str_val', full_name='mgmtd.YangDataValue.encoded_str_val', index=0, - number=100, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='value', full_name='mgmtd.YangDataValue.value', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=53, - serialized_end=104, + name="YangDataValue", + full_name="mgmtd.YangDataValue", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="encoded_str_val", + full_name="mgmtd.YangDataValue.encoded_str_val", + index=0, + number=100, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name="value", + full_name="mgmtd.YangDataValue.value", + index=0, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[], + ), + ], + serialized_start=53, + serialized_end=104, ) _YANGDATA = _descriptor.Descriptor( - name='YangData', - full_name='mgmtd.YangData', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='xpath', full_name='mgmtd.YangData.xpath', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='mgmtd.YangData.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=106, - serialized_end=168, + name="YangData", + full_name="mgmtd.YangData", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="xpath", + full_name="mgmtd.YangData.xpath", + index=0, + number=1, + type=9, + cpp_type=9, + label=2, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="value", + full_name="mgmtd.YangData.value", + index=1, + number=2, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=106, + serialized_end=168, ) _YANGCFGDATAREQ = _descriptor.Descriptor( - name='YangCfgDataReq', - full_name='mgmtd.YangCfgDataReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='data', full_name='mgmtd.YangCfgDataReq.data', index=0, - number=1, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_type', full_name='mgmtd.YangCfgDataReq.req_type', index=1, - number=2, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=170, - serialized_end=258, + name="YangCfgDataReq", + full_name="mgmtd.YangCfgDataReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="data", + full_name="mgmtd.YangCfgDataReq.data", + index=0, + number=1, + type=11, + cpp_type=10, + label=2, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="req_type", + full_name="mgmtd.YangCfgDataReq.req_type", + index=1, + number=2, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=170, + serialized_end=258, ) _YANGGETDATAREQ = _descriptor.Descriptor( - name='YangGetDataReq', - full_name='mgmtd.YangGetDataReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='data', full_name='mgmtd.YangGetDataReq.data', index=0, - number=1, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='next_indx', full_name='mgmtd.YangGetDataReq.next_indx', index=1, - number=2, type=3, cpp_type=2, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=260, - serialized_end=326, + name="YangGetDataReq", + full_name="mgmtd.YangGetDataReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="data", + full_name="mgmtd.YangGetDataReq.data", + index=0, + number=1, + type=11, + cpp_type=10, + label=2, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="next_indx", + full_name="mgmtd.YangGetDataReq.next_indx", + index=1, + number=2, + type=3, + cpp_type=2, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=260, + serialized_end=326, ) _BESUBSCRIBEREQ = _descriptor.Descriptor( - name='BeSubscribeReq', - full_name='mgmtd.BeSubscribeReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='client_name', full_name='mgmtd.BeSubscribeReq.client_name', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='subscribe_xpaths', full_name='mgmtd.BeSubscribeReq.subscribe_xpaths', index=1, - number=2, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='xpath_reg', full_name='mgmtd.BeSubscribeReq.xpath_reg', index=2, - number=3, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=328, - serialized_end=410, + name="BeSubscribeReq", + full_name="mgmtd.BeSubscribeReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="client_name", + full_name="mgmtd.BeSubscribeReq.client_name", + index=0, + number=1, + type=9, + cpp_type=9, + label=2, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="subscribe_xpaths", + full_name="mgmtd.BeSubscribeReq.subscribe_xpaths", + index=1, + number=2, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="xpath_reg", + full_name="mgmtd.BeSubscribeReq.xpath_reg", + index=2, + number=3, + type=9, + cpp_type=9, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=328, + serialized_end=410, ) _BESUBSCRIBEREPLY = _descriptor.Descriptor( - name='BeSubscribeReply', - full_name='mgmtd.BeSubscribeReply', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='success', full_name='mgmtd.BeSubscribeReply.success', index=0, - number=1, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=412, - serialized_end=447, + name="BeSubscribeReply", + full_name="mgmtd.BeSubscribeReply", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="success", + full_name="mgmtd.BeSubscribeReply.success", + index=0, + number=1, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=412, + serialized_end=447, ) _BETXNREQ = _descriptor.Descriptor( - name='BeTxnReq', - full_name='mgmtd.BeTxnReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='txn_id', full_name='mgmtd.BeTxnReq.txn_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='create', full_name='mgmtd.BeTxnReq.create', index=1, - number=2, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=449, - serialized_end=491, + name="BeTxnReq", + full_name="mgmtd.BeTxnReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="txn_id", + full_name="mgmtd.BeTxnReq.txn_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="create", + full_name="mgmtd.BeTxnReq.create", + index=1, + number=2, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=449, + serialized_end=491, ) _BETXNREPLY = _descriptor.Descriptor( - name='BeTxnReply', - full_name='mgmtd.BeTxnReply', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='txn_id', full_name='mgmtd.BeTxnReply.txn_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='create', full_name='mgmtd.BeTxnReply.create', index=1, - number=2, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='success', full_name='mgmtd.BeTxnReply.success', index=2, - number=3, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=493, - serialized_end=554, + name="BeTxnReply", + full_name="mgmtd.BeTxnReply", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="txn_id", + full_name="mgmtd.BeTxnReply.txn_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="create", + full_name="mgmtd.BeTxnReply.create", + index=1, + number=2, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="success", + full_name="mgmtd.BeTxnReply.success", + index=2, + number=3, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=493, + serialized_end=554, ) _BECFGDATACREATEREQ = _descriptor.Descriptor( - name='BeCfgDataCreateReq', - full_name='mgmtd.BeCfgDataCreateReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='txn_id', full_name='mgmtd.BeCfgDataCreateReq.txn_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='data_req', full_name='mgmtd.BeCfgDataCreateReq.data_req', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='end_of_data', full_name='mgmtd.BeCfgDataCreateReq.end_of_data', index=2, - number=3, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=556, - serialized_end=654, + name="BeCfgDataCreateReq", + full_name="mgmtd.BeCfgDataCreateReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="txn_id", + full_name="mgmtd.BeCfgDataCreateReq.txn_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="data_req", + full_name="mgmtd.BeCfgDataCreateReq.data_req", + index=1, + number=2, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="end_of_data", + full_name="mgmtd.BeCfgDataCreateReq.end_of_data", + index=2, + number=3, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=556, + serialized_end=654, ) _BECFGDATACREATEREPLY = _descriptor.Descriptor( - name='BeCfgDataCreateReply', - full_name='mgmtd.BeCfgDataCreateReply', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='txn_id', full_name='mgmtd.BeCfgDataCreateReply.txn_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='success', full_name='mgmtd.BeCfgDataCreateReply.success', index=1, - number=2, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='error_if_any', full_name='mgmtd.BeCfgDataCreateReply.error_if_any', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=656, - serialized_end=733, + name="BeCfgDataCreateReply", + full_name="mgmtd.BeCfgDataCreateReply", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="txn_id", + full_name="mgmtd.BeCfgDataCreateReply.txn_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="success", + full_name="mgmtd.BeCfgDataCreateReply.success", + index=1, + number=2, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="error_if_any", + full_name="mgmtd.BeCfgDataCreateReply.error_if_any", + index=2, + number=3, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=656, + serialized_end=733, ) _BECFGDATAAPPLYREQ = _descriptor.Descriptor( - name='BeCfgDataApplyReq', - full_name='mgmtd.BeCfgDataApplyReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='txn_id', full_name='mgmtd.BeCfgDataApplyReq.txn_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=735, - serialized_end=770, + name="BeCfgDataApplyReq", + full_name="mgmtd.BeCfgDataApplyReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="txn_id", + full_name="mgmtd.BeCfgDataApplyReq.txn_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=735, + serialized_end=770, ) _BECFGDATAAPPLYREPLY = _descriptor.Descriptor( - name='BeCfgDataApplyReply', - full_name='mgmtd.BeCfgDataApplyReply', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='txn_id', full_name='mgmtd.BeCfgDataApplyReply.txn_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='success', full_name='mgmtd.BeCfgDataApplyReply.success', index=1, - number=2, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='error_if_any', full_name='mgmtd.BeCfgDataApplyReply.error_if_any', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=772, - serialized_end=848, + name="BeCfgDataApplyReply", + full_name="mgmtd.BeCfgDataApplyReply", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="txn_id", + full_name="mgmtd.BeCfgDataApplyReply.txn_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="success", + full_name="mgmtd.BeCfgDataApplyReply.success", + index=1, + number=2, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="error_if_any", + full_name="mgmtd.BeCfgDataApplyReply.error_if_any", + index=2, + number=3, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=772, + serialized_end=848, ) _YANGDATAREPLY = _descriptor.Descriptor( - name='YangDataReply', - full_name='mgmtd.YangDataReply', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='data', full_name='mgmtd.YangDataReply.data', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='next_indx', full_name='mgmtd.YangDataReply.next_indx', index=1, - number=2, type=3, cpp_type=2, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=850, - serialized_end=915, + name="YangDataReply", + full_name="mgmtd.YangDataReply", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="data", + full_name="mgmtd.YangDataReply.data", + index=0, + number=1, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="next_indx", + full_name="mgmtd.YangDataReply.next_indx", + index=1, + number=2, + type=3, + cpp_type=2, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=850, + serialized_end=915, ) _BEMESSAGE = _descriptor.Descriptor( - name='BeMessage', - full_name='mgmtd.BeMessage', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='subscr_req', full_name='mgmtd.BeMessage.subscr_req', index=0, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='subscr_reply', full_name='mgmtd.BeMessage.subscr_reply', index=1, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='txn_req', full_name='mgmtd.BeMessage.txn_req', index=2, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='txn_reply', full_name='mgmtd.BeMessage.txn_reply', index=3, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='cfg_data_req', full_name='mgmtd.BeMessage.cfg_data_req', index=4, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='cfg_data_reply', full_name='mgmtd.BeMessage.cfg_data_reply', index=5, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='cfg_apply_req', full_name='mgmtd.BeMessage.cfg_apply_req', index=6, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='cfg_apply_reply', full_name='mgmtd.BeMessage.cfg_apply_reply', index=7, - number=9, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='message', full_name='mgmtd.BeMessage.message', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=918, - serialized_end=1322, + name="BeMessage", + full_name="mgmtd.BeMessage", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="subscr_req", + full_name="mgmtd.BeMessage.subscr_req", + index=0, + number=2, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="subscr_reply", + full_name="mgmtd.BeMessage.subscr_reply", + index=1, + number=3, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="txn_req", + full_name="mgmtd.BeMessage.txn_req", + index=2, + number=4, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="txn_reply", + full_name="mgmtd.BeMessage.txn_reply", + index=3, + number=5, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="cfg_data_req", + full_name="mgmtd.BeMessage.cfg_data_req", + index=4, + number=6, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="cfg_data_reply", + full_name="mgmtd.BeMessage.cfg_data_reply", + index=5, + number=7, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="cfg_apply_req", + full_name="mgmtd.BeMessage.cfg_apply_req", + index=6, + number=8, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="cfg_apply_reply", + full_name="mgmtd.BeMessage.cfg_apply_reply", + index=7, + number=9, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name="message", + full_name="mgmtd.BeMessage.message", + index=0, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[], + ), + ], + serialized_start=918, + serialized_end=1322, ) _FEREGISTERREQ = _descriptor.Descriptor( - name='FeRegisterReq', - full_name='mgmtd.FeRegisterReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='client_name', full_name='mgmtd.FeRegisterReq.client_name', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1324, - serialized_end=1360, + name="FeRegisterReq", + full_name="mgmtd.FeRegisterReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="client_name", + full_name="mgmtd.FeRegisterReq.client_name", + index=0, + number=1, + type=9, + cpp_type=9, + label=2, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=1324, + serialized_end=1360, ) _FESESSIONREQ = _descriptor.Descriptor( - name='FeSessionReq', - full_name='mgmtd.FeSessionReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='create', full_name='mgmtd.FeSessionReq.create', index=0, - number=1, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='client_conn_id', full_name='mgmtd.FeSessionReq.client_conn_id', index=1, - number=2, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeSessionReq.session_id', index=2, - number=3, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='id', full_name='mgmtd.FeSessionReq.id', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=1362, - serialized_end=1446, + name="FeSessionReq", + full_name="mgmtd.FeSessionReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="create", + full_name="mgmtd.FeSessionReq.create", + index=0, + number=1, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="client_conn_id", + full_name="mgmtd.FeSessionReq.client_conn_id", + index=1, + number=2, + type=4, + cpp_type=4, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeSessionReq.session_id", + index=2, + number=3, + type=4, + cpp_type=4, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name="id", + full_name="mgmtd.FeSessionReq.id", + index=0, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[], + ), + ], + serialized_start=1362, + serialized_end=1446, ) _FESESSIONREPLY = _descriptor.Descriptor( - name='FeSessionReply', - full_name='mgmtd.FeSessionReply', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='create', full_name='mgmtd.FeSessionReply.create', index=0, - number=1, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='success', full_name='mgmtd.FeSessionReply.success', index=1, - number=2, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='client_conn_id', full_name='mgmtd.FeSessionReply.client_conn_id', index=2, - number=3, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeSessionReply.session_id', index=3, - number=4, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1448, - serialized_end=1541, + name="FeSessionReply", + full_name="mgmtd.FeSessionReply", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="create", + full_name="mgmtd.FeSessionReply.create", + index=0, + number=1, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="success", + full_name="mgmtd.FeSessionReply.success", + index=1, + number=2, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="client_conn_id", + full_name="mgmtd.FeSessionReply.client_conn_id", + index=2, + number=3, + type=4, + cpp_type=4, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeSessionReply.session_id", + index=3, + number=4, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=1448, + serialized_end=1541, ) _FELOCKDSREQ = _descriptor.Descriptor( - name='FeLockDsReq', - full_name='mgmtd.FeLockDsReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeLockDsReq.session_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_id', full_name='mgmtd.FeLockDsReq.req_id', index=1, - number=2, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ds_id', full_name='mgmtd.FeLockDsReq.ds_id', index=2, - number=3, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='lock', full_name='mgmtd.FeLockDsReq.lock', index=3, - number=4, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1543, - serialized_end=1641, + name="FeLockDsReq", + full_name="mgmtd.FeLockDsReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeLockDsReq.session_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="req_id", + full_name="mgmtd.FeLockDsReq.req_id", + index=1, + number=2, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="ds_id", + full_name="mgmtd.FeLockDsReq.ds_id", + index=2, + number=3, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="lock", + full_name="mgmtd.FeLockDsReq.lock", + index=3, + number=4, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=1543, + serialized_end=1641, ) _FELOCKDSREPLY = _descriptor.Descriptor( - name='FeLockDsReply', - full_name='mgmtd.FeLockDsReply', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeLockDsReply.session_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_id', full_name='mgmtd.FeLockDsReply.req_id', index=1, - number=2, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ds_id', full_name='mgmtd.FeLockDsReply.ds_id', index=2, - number=3, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='lock', full_name='mgmtd.FeLockDsReply.lock', index=3, - number=4, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='success', full_name='mgmtd.FeLockDsReply.success', index=4, - number=5, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='error_if_any', full_name='mgmtd.FeLockDsReply.error_if_any', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1644, - serialized_end=1783, + name="FeLockDsReply", + full_name="mgmtd.FeLockDsReply", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeLockDsReply.session_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="req_id", + full_name="mgmtd.FeLockDsReply.req_id", + index=1, + number=2, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="ds_id", + full_name="mgmtd.FeLockDsReply.ds_id", + index=2, + number=3, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="lock", + full_name="mgmtd.FeLockDsReply.lock", + index=3, + number=4, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="success", + full_name="mgmtd.FeLockDsReply.success", + index=4, + number=5, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="error_if_any", + full_name="mgmtd.FeLockDsReply.error_if_any", + index=5, + number=6, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=1644, + serialized_end=1783, ) _FESETCONFIGREQ = _descriptor.Descriptor( - name='FeSetConfigReq', - full_name='mgmtd.FeSetConfigReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeSetConfigReq.session_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ds_id', full_name='mgmtd.FeSetConfigReq.ds_id', index=1, - number=2, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_id', full_name='mgmtd.FeSetConfigReq.req_id', index=2, - number=3, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='data', full_name='mgmtd.FeSetConfigReq.data', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='implicit_commit', full_name='mgmtd.FeSetConfigReq.implicit_commit', index=4, - number=5, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='commit_ds_id', full_name='mgmtd.FeSetConfigReq.commit_ds_id', index=5, - number=6, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1786, - serialized_end=1977, + name="FeSetConfigReq", + full_name="mgmtd.FeSetConfigReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeSetConfigReq.session_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="ds_id", + full_name="mgmtd.FeSetConfigReq.ds_id", + index=1, + number=2, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="req_id", + full_name="mgmtd.FeSetConfigReq.req_id", + index=2, + number=3, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="data", + full_name="mgmtd.FeSetConfigReq.data", + index=3, + number=4, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="implicit_commit", + full_name="mgmtd.FeSetConfigReq.implicit_commit", + index=4, + number=5, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="commit_ds_id", + full_name="mgmtd.FeSetConfigReq.commit_ds_id", + index=5, + number=6, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=1786, + serialized_end=1977, ) _FESETCONFIGREPLY = _descriptor.Descriptor( - name='FeSetConfigReply', - full_name='mgmtd.FeSetConfigReply', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeSetConfigReply.session_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ds_id', full_name='mgmtd.FeSetConfigReply.ds_id', index=1, - number=2, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_id', full_name='mgmtd.FeSetConfigReply.req_id', index=2, - number=3, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='success', full_name='mgmtd.FeSetConfigReply.success', index=3, - number=4, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='implicit_commit', full_name='mgmtd.FeSetConfigReply.implicit_commit', index=4, - number=5, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='error_if_any', full_name='mgmtd.FeSetConfigReply.error_if_any', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1980, - serialized_end=2133, + name="FeSetConfigReply", + full_name="mgmtd.FeSetConfigReply", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeSetConfigReply.session_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="ds_id", + full_name="mgmtd.FeSetConfigReply.ds_id", + index=1, + number=2, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="req_id", + full_name="mgmtd.FeSetConfigReply.req_id", + index=2, + number=3, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="success", + full_name="mgmtd.FeSetConfigReply.success", + index=3, + number=4, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="implicit_commit", + full_name="mgmtd.FeSetConfigReply.implicit_commit", + index=4, + number=5, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="error_if_any", + full_name="mgmtd.FeSetConfigReply.error_if_any", + index=5, + number=6, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=1980, + serialized_end=2133, ) _FECOMMITCONFIGREQ = _descriptor.Descriptor( - name='FeCommitConfigReq', - full_name='mgmtd.FeCommitConfigReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeCommitConfigReq.session_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='src_ds_id', full_name='mgmtd.FeCommitConfigReq.src_ds_id', index=1, - number=2, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='dst_ds_id', full_name='mgmtd.FeCommitConfigReq.dst_ds_id', index=2, - number=3, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_id', full_name='mgmtd.FeCommitConfigReq.req_id', index=3, - number=4, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='validate_only', full_name='mgmtd.FeCommitConfigReq.validate_only', index=4, - number=5, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='abort', full_name='mgmtd.FeCommitConfigReq.abort', index=5, - number=6, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2136, - serialized_end=2307, + name="FeCommitConfigReq", + full_name="mgmtd.FeCommitConfigReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeCommitConfigReq.session_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="src_ds_id", + full_name="mgmtd.FeCommitConfigReq.src_ds_id", + index=1, + number=2, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="dst_ds_id", + full_name="mgmtd.FeCommitConfigReq.dst_ds_id", + index=2, + number=3, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="req_id", + full_name="mgmtd.FeCommitConfigReq.req_id", + index=3, + number=4, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="validate_only", + full_name="mgmtd.FeCommitConfigReq.validate_only", + index=4, + number=5, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="abort", + full_name="mgmtd.FeCommitConfigReq.abort", + index=5, + number=6, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=2136, + serialized_end=2307, ) _FECOMMITCONFIGREPLY = _descriptor.Descriptor( - name='FeCommitConfigReply', - full_name='mgmtd.FeCommitConfigReply', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeCommitConfigReply.session_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='src_ds_id', full_name='mgmtd.FeCommitConfigReply.src_ds_id', index=1, - number=2, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='dst_ds_id', full_name='mgmtd.FeCommitConfigReply.dst_ds_id', index=2, - number=3, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_id', full_name='mgmtd.FeCommitConfigReply.req_id', index=3, - number=4, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='validate_only', full_name='mgmtd.FeCommitConfigReply.validate_only', index=4, - number=5, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='success', full_name='mgmtd.FeCommitConfigReply.success', index=5, - number=6, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='abort', full_name='mgmtd.FeCommitConfigReply.abort', index=6, - number=7, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='error_if_any', full_name='mgmtd.FeCommitConfigReply.error_if_any', index=7, - number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2310, - serialized_end=2522, + name="FeCommitConfigReply", + full_name="mgmtd.FeCommitConfigReply", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeCommitConfigReply.session_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="src_ds_id", + full_name="mgmtd.FeCommitConfigReply.src_ds_id", + index=1, + number=2, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="dst_ds_id", + full_name="mgmtd.FeCommitConfigReply.dst_ds_id", + index=2, + number=3, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="req_id", + full_name="mgmtd.FeCommitConfigReply.req_id", + index=3, + number=4, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="validate_only", + full_name="mgmtd.FeCommitConfigReply.validate_only", + index=4, + number=5, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="success", + full_name="mgmtd.FeCommitConfigReply.success", + index=5, + number=6, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="abort", + full_name="mgmtd.FeCommitConfigReply.abort", + index=6, + number=7, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="error_if_any", + full_name="mgmtd.FeCommitConfigReply.error_if_any", + index=7, + number=8, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=2310, + serialized_end=2522, ) _FEGETREQ = _descriptor.Descriptor( - name='FeGetReq', - full_name='mgmtd.FeGetReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeGetReq.session_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='config', full_name='mgmtd.FeGetReq.config', index=1, - number=2, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ds_id', full_name='mgmtd.FeGetReq.ds_id', index=2, - number=3, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_id', full_name='mgmtd.FeGetReq.req_id', index=3, - number=4, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='data', full_name='mgmtd.FeGetReq.data', index=4, - number=5, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2525, - serialized_end=2659, + name="FeGetReq", + full_name="mgmtd.FeGetReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeGetReq.session_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="config", + full_name="mgmtd.FeGetReq.config", + index=1, + number=2, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="ds_id", + full_name="mgmtd.FeGetReq.ds_id", + index=2, + number=3, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="req_id", + full_name="mgmtd.FeGetReq.req_id", + index=3, + number=4, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="data", + full_name="mgmtd.FeGetReq.data", + index=4, + number=5, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=2525, + serialized_end=2659, ) _FEGETREPLY = _descriptor.Descriptor( - name='FeGetReply', - full_name='mgmtd.FeGetReply', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeGetReply.session_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='config', full_name='mgmtd.FeGetReply.config', index=1, - number=2, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ds_id', full_name='mgmtd.FeGetReply.ds_id', index=2, - number=3, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_id', full_name='mgmtd.FeGetReply.req_id', index=3, - number=4, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='success', full_name='mgmtd.FeGetReply.success', index=4, - number=5, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='error_if_any', full_name='mgmtd.FeGetReply.error_if_any', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='data', full_name='mgmtd.FeGetReply.data', index=6, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2662, - serialized_end=2836, + name="FeGetReply", + full_name="mgmtd.FeGetReply", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeGetReply.session_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="config", + full_name="mgmtd.FeGetReply.config", + index=1, + number=2, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="ds_id", + full_name="mgmtd.FeGetReply.ds_id", + index=2, + number=3, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="req_id", + full_name="mgmtd.FeGetReply.req_id", + index=3, + number=4, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="success", + full_name="mgmtd.FeGetReply.success", + index=4, + number=5, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="error_if_any", + full_name="mgmtd.FeGetReply.error_if_any", + index=5, + number=6, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="data", + full_name="mgmtd.FeGetReply.data", + index=6, + number=7, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=2662, + serialized_end=2836, ) _FENOTIFYDATAREQ = _descriptor.Descriptor( - name='FeNotifyDataReq', - full_name='mgmtd.FeNotifyDataReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='data', full_name='mgmtd.FeNotifyDataReq.data', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2838, - serialized_end=2886, + name="FeNotifyDataReq", + full_name="mgmtd.FeNotifyDataReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="data", + full_name="mgmtd.FeNotifyDataReq.data", + index=0, + number=1, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=2838, + serialized_end=2886, ) _FEREGISTERNOTIFYREQ = _descriptor.Descriptor( - name='FeRegisterNotifyReq', - full_name='mgmtd.FeRegisterNotifyReq', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='session_id', full_name='mgmtd.FeRegisterNotifyReq.session_id', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ds_id', full_name='mgmtd.FeRegisterNotifyReq.ds_id', index=1, - number=2, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='register_req', full_name='mgmtd.FeRegisterNotifyReq.register_req', index=2, - number=3, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='req_id', full_name='mgmtd.FeRegisterNotifyReq.req_id', index=3, - number=4, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='data_xpath', full_name='mgmtd.FeRegisterNotifyReq.data_xpath', index=4, - number=5, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2889, - serialized_end=3045, + name="FeRegisterNotifyReq", + full_name="mgmtd.FeRegisterNotifyReq", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="session_id", + full_name="mgmtd.FeRegisterNotifyReq.session_id", + index=0, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="ds_id", + full_name="mgmtd.FeRegisterNotifyReq.ds_id", + index=1, + number=2, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="register_req", + full_name="mgmtd.FeRegisterNotifyReq.register_req", + index=2, + number=3, + type=8, + cpp_type=7, + label=2, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="req_id", + full_name="mgmtd.FeRegisterNotifyReq.req_id", + index=3, + number=4, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="data_xpath", + full_name="mgmtd.FeRegisterNotifyReq.data_xpath", + index=4, + number=5, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=2889, + serialized_end=3045, ) _FEMESSAGE = _descriptor.Descriptor( - name='FeMessage', - full_name='mgmtd.FeMessage', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='register_req', full_name='mgmtd.FeMessage.register_req', index=0, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='session_req', full_name='mgmtd.FeMessage.session_req', index=1, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='session_reply', full_name='mgmtd.FeMessage.session_reply', index=2, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='lockds_req', full_name='mgmtd.FeMessage.lockds_req', index=3, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='lockds_reply', full_name='mgmtd.FeMessage.lockds_reply', index=4, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='setcfg_req', full_name='mgmtd.FeMessage.setcfg_req', index=5, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='setcfg_reply', full_name='mgmtd.FeMessage.setcfg_reply', index=6, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='commcfg_req', full_name='mgmtd.FeMessage.commcfg_req', index=7, - number=9, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='commcfg_reply', full_name='mgmtd.FeMessage.commcfg_reply', index=8, - number=10, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='get_req', full_name='mgmtd.FeMessage.get_req', index=9, - number=11, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='get_reply', full_name='mgmtd.FeMessage.get_reply', index=10, - number=12, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='notify_data_req', full_name='mgmtd.FeMessage.notify_data_req', index=11, - number=15, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='regnotify_req', full_name='mgmtd.FeMessage.regnotify_req', index=12, - number=16, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='message', full_name='mgmtd.FeMessage.message', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=3048, - serialized_end=3672, -) - -_YANGDATAVALUE.oneofs_by_name['value'].fields.append( - _YANGDATAVALUE.fields_by_name['encoded_str_val']) -_YANGDATAVALUE.fields_by_name['encoded_str_val'].containing_oneof = _YANGDATAVALUE.oneofs_by_name['value'] -_YANGDATA.fields_by_name['value'].message_type = _YANGDATAVALUE -_YANGCFGDATAREQ.fields_by_name['data'].message_type = _YANGDATA -_YANGCFGDATAREQ.fields_by_name['req_type'].enum_type = _CFGDATAREQTYPE -_YANGGETDATAREQ.fields_by_name['data'].message_type = _YANGDATA -_BECFGDATACREATEREQ.fields_by_name['data_req'].message_type = _YANGCFGDATAREQ -_YANGDATAREPLY.fields_by_name['data'].message_type = _YANGDATA -_BEMESSAGE.fields_by_name['subscr_req'].message_type = _BESUBSCRIBEREQ -_BEMESSAGE.fields_by_name['subscr_reply'].message_type = _BESUBSCRIBEREPLY -_BEMESSAGE.fields_by_name['txn_req'].message_type = _BETXNREQ -_BEMESSAGE.fields_by_name['txn_reply'].message_type = _BETXNREPLY -_BEMESSAGE.fields_by_name['cfg_data_req'].message_type = _BECFGDATACREATEREQ -_BEMESSAGE.fields_by_name['cfg_data_reply'].message_type = _BECFGDATACREATEREPLY -_BEMESSAGE.fields_by_name['cfg_apply_req'].message_type = _BECFGDATAAPPLYREQ -_BEMESSAGE.fields_by_name['cfg_apply_reply'].message_type = _BECFGDATAAPPLYREPLY -_BEMESSAGE.oneofs_by_name['message'].fields.append( - _BEMESSAGE.fields_by_name['subscr_req']) -_BEMESSAGE.fields_by_name['subscr_req'].containing_oneof = _BEMESSAGE.oneofs_by_name['message'] -_BEMESSAGE.oneofs_by_name['message'].fields.append( - _BEMESSAGE.fields_by_name['subscr_reply']) -_BEMESSAGE.fields_by_name['subscr_reply'].containing_oneof = _BEMESSAGE.oneofs_by_name['message'] -_BEMESSAGE.oneofs_by_name['message'].fields.append( - _BEMESSAGE.fields_by_name['txn_req']) -_BEMESSAGE.fields_by_name['txn_req'].containing_oneof = _BEMESSAGE.oneofs_by_name['message'] -_BEMESSAGE.oneofs_by_name['message'].fields.append( - _BEMESSAGE.fields_by_name['txn_reply']) -_BEMESSAGE.fields_by_name['txn_reply'].containing_oneof = _BEMESSAGE.oneofs_by_name['message'] -_BEMESSAGE.oneofs_by_name['message'].fields.append( - _BEMESSAGE.fields_by_name['cfg_data_req']) -_BEMESSAGE.fields_by_name['cfg_data_req'].containing_oneof = _BEMESSAGE.oneofs_by_name['message'] -_BEMESSAGE.oneofs_by_name['message'].fields.append( - _BEMESSAGE.fields_by_name['cfg_data_reply']) -_BEMESSAGE.fields_by_name['cfg_data_reply'].containing_oneof = _BEMESSAGE.oneofs_by_name['message'] -_BEMESSAGE.oneofs_by_name['message'].fields.append( - _BEMESSAGE.fields_by_name['cfg_apply_req']) -_BEMESSAGE.fields_by_name['cfg_apply_req'].containing_oneof = _BEMESSAGE.oneofs_by_name['message'] -_BEMESSAGE.oneofs_by_name['message'].fields.append( - _BEMESSAGE.fields_by_name['cfg_apply_reply']) -_BEMESSAGE.fields_by_name['cfg_apply_reply'].containing_oneof = _BEMESSAGE.oneofs_by_name['message'] -_FESESSIONREQ.oneofs_by_name['id'].fields.append( - _FESESSIONREQ.fields_by_name['client_conn_id']) -_FESESSIONREQ.fields_by_name['client_conn_id'].containing_oneof = _FESESSIONREQ.oneofs_by_name['id'] -_FESESSIONREQ.oneofs_by_name['id'].fields.append( - _FESESSIONREQ.fields_by_name['session_id']) -_FESESSIONREQ.fields_by_name['session_id'].containing_oneof = _FESESSIONREQ.oneofs_by_name['id'] -_FELOCKDSREQ.fields_by_name['ds_id'].enum_type = _DATASTOREID -_FELOCKDSREPLY.fields_by_name['ds_id'].enum_type = _DATASTOREID -_FESETCONFIGREQ.fields_by_name['ds_id'].enum_type = _DATASTOREID -_FESETCONFIGREQ.fields_by_name['data'].message_type = _YANGCFGDATAREQ -_FESETCONFIGREQ.fields_by_name['commit_ds_id'].enum_type = _DATASTOREID -_FESETCONFIGREPLY.fields_by_name['ds_id'].enum_type = _DATASTOREID -_FECOMMITCONFIGREQ.fields_by_name['src_ds_id'].enum_type = _DATASTOREID -_FECOMMITCONFIGREQ.fields_by_name['dst_ds_id'].enum_type = _DATASTOREID -_FECOMMITCONFIGREPLY.fields_by_name['src_ds_id'].enum_type = _DATASTOREID -_FECOMMITCONFIGREPLY.fields_by_name['dst_ds_id'].enum_type = _DATASTOREID -_FEGETREQ.fields_by_name['ds_id'].enum_type = _DATASTOREID -_FEGETREQ.fields_by_name['data'].message_type = _YANGGETDATAREQ -_FEGETREPLY.fields_by_name['ds_id'].enum_type = _DATASTOREID -_FEGETREPLY.fields_by_name['data'].message_type = _YANGDATAREPLY -_FENOTIFYDATAREQ.fields_by_name['data'].message_type = _YANGDATA -_FEREGISTERNOTIFYREQ.fields_by_name['ds_id'].enum_type = _DATASTOREID -_FEREGISTERNOTIFYREQ.fields_by_name['data_xpath'].message_type = _YANGDATAXPATH -_FEMESSAGE.fields_by_name['register_req'].message_type = _FEREGISTERREQ -_FEMESSAGE.fields_by_name['session_req'].message_type = _FESESSIONREQ -_FEMESSAGE.fields_by_name['session_reply'].message_type = _FESESSIONREPLY -_FEMESSAGE.fields_by_name['lockds_req'].message_type = _FELOCKDSREQ -_FEMESSAGE.fields_by_name['lockds_reply'].message_type = _FELOCKDSREPLY -_FEMESSAGE.fields_by_name['setcfg_req'].message_type = _FESETCONFIGREQ -_FEMESSAGE.fields_by_name['setcfg_reply'].message_type = _FESETCONFIGREPLY -_FEMESSAGE.fields_by_name['commcfg_req'].message_type = _FECOMMITCONFIGREQ -_FEMESSAGE.fields_by_name['commcfg_reply'].message_type = _FECOMMITCONFIGREPLY -_FEMESSAGE.fields_by_name['get_req'].message_type = _FEGETREQ -_FEMESSAGE.fields_by_name['get_reply'].message_type = _FEGETREPLY -_FEMESSAGE.fields_by_name['notify_data_req'].message_type = _FENOTIFYDATAREQ -_FEMESSAGE.fields_by_name['regnotify_req'].message_type = _FEREGISTERNOTIFYREQ -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['register_req']) -_FEMESSAGE.fields_by_name['register_req'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['session_req']) -_FEMESSAGE.fields_by_name['session_req'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['session_reply']) -_FEMESSAGE.fields_by_name['session_reply'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['lockds_req']) -_FEMESSAGE.fields_by_name['lockds_req'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['lockds_reply']) -_FEMESSAGE.fields_by_name['lockds_reply'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['setcfg_req']) -_FEMESSAGE.fields_by_name['setcfg_req'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['setcfg_reply']) -_FEMESSAGE.fields_by_name['setcfg_reply'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['commcfg_req']) -_FEMESSAGE.fields_by_name['commcfg_req'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['commcfg_reply']) -_FEMESSAGE.fields_by_name['commcfg_reply'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['get_req']) -_FEMESSAGE.fields_by_name['get_req'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['get_reply']) -_FEMESSAGE.fields_by_name['get_reply'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['notify_data_req']) -_FEMESSAGE.fields_by_name['notify_data_req'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -_FEMESSAGE.oneofs_by_name['message'].fields.append( - _FEMESSAGE.fields_by_name['regnotify_req']) -_FEMESSAGE.fields_by_name['regnotify_req'].containing_oneof = _FEMESSAGE.oneofs_by_name['message'] -DESCRIPTOR.message_types_by_name['YangDataXPath'] = _YANGDATAXPATH -DESCRIPTOR.message_types_by_name['YangDataValue'] = _YANGDATAVALUE -DESCRIPTOR.message_types_by_name['YangData'] = _YANGDATA -DESCRIPTOR.message_types_by_name['YangCfgDataReq'] = _YANGCFGDATAREQ -DESCRIPTOR.message_types_by_name['YangGetDataReq'] = _YANGGETDATAREQ -DESCRIPTOR.message_types_by_name['BeSubscribeReq'] = _BESUBSCRIBEREQ -DESCRIPTOR.message_types_by_name['BeSubscribeReply'] = _BESUBSCRIBEREPLY -DESCRIPTOR.message_types_by_name['BeTxnReq'] = _BETXNREQ -DESCRIPTOR.message_types_by_name['BeTxnReply'] = _BETXNREPLY -DESCRIPTOR.message_types_by_name['BeCfgDataCreateReq'] = _BECFGDATACREATEREQ -DESCRIPTOR.message_types_by_name['BeCfgDataCreateReply'] = _BECFGDATACREATEREPLY -DESCRIPTOR.message_types_by_name['BeCfgDataApplyReq'] = _BECFGDATAAPPLYREQ -DESCRIPTOR.message_types_by_name['BeCfgDataApplyReply'] = _BECFGDATAAPPLYREPLY -DESCRIPTOR.message_types_by_name['YangDataReply'] = _YANGDATAREPLY -DESCRIPTOR.message_types_by_name['BeMessage'] = _BEMESSAGE -DESCRIPTOR.message_types_by_name['FeRegisterReq'] = _FEREGISTERREQ -DESCRIPTOR.message_types_by_name['FeSessionReq'] = _FESESSIONREQ -DESCRIPTOR.message_types_by_name['FeSessionReply'] = _FESESSIONREPLY -DESCRIPTOR.message_types_by_name['FeLockDsReq'] = _FELOCKDSREQ -DESCRIPTOR.message_types_by_name['FeLockDsReply'] = _FELOCKDSREPLY -DESCRIPTOR.message_types_by_name['FeSetConfigReq'] = _FESETCONFIGREQ -DESCRIPTOR.message_types_by_name['FeSetConfigReply'] = _FESETCONFIGREPLY -DESCRIPTOR.message_types_by_name['FeCommitConfigReq'] = _FECOMMITCONFIGREQ -DESCRIPTOR.message_types_by_name['FeCommitConfigReply'] = _FECOMMITCONFIGREPLY -DESCRIPTOR.message_types_by_name['FeGetReq'] = _FEGETREQ -DESCRIPTOR.message_types_by_name['FeGetReply'] = _FEGETREPLY -DESCRIPTOR.message_types_by_name['FeNotifyDataReq'] = _FENOTIFYDATAREQ -DESCRIPTOR.message_types_by_name['FeRegisterNotifyReq'] = _FEREGISTERNOTIFYREQ -DESCRIPTOR.message_types_by_name['FeMessage'] = _FEMESSAGE -DESCRIPTOR.enum_types_by_name['CfgDataReqType'] = _CFGDATAREQTYPE -DESCRIPTOR.enum_types_by_name['DatastoreId'] = _DATASTOREID + name="FeMessage", + full_name="mgmtd.FeMessage", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="register_req", + full_name="mgmtd.FeMessage.register_req", + index=0, + number=2, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="session_req", + full_name="mgmtd.FeMessage.session_req", + index=1, + number=3, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="session_reply", + full_name="mgmtd.FeMessage.session_reply", + index=2, + number=4, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="lockds_req", + full_name="mgmtd.FeMessage.lockds_req", + index=3, + number=5, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="lockds_reply", + full_name="mgmtd.FeMessage.lockds_reply", + index=4, + number=6, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="setcfg_req", + full_name="mgmtd.FeMessage.setcfg_req", + index=5, + number=7, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="setcfg_reply", + full_name="mgmtd.FeMessage.setcfg_reply", + index=6, + number=8, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="commcfg_req", + full_name="mgmtd.FeMessage.commcfg_req", + index=7, + number=9, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="commcfg_reply", + full_name="mgmtd.FeMessage.commcfg_reply", + index=8, + number=10, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="get_req", + full_name="mgmtd.FeMessage.get_req", + index=9, + number=11, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="get_reply", + full_name="mgmtd.FeMessage.get_reply", + index=10, + number=12, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="notify_data_req", + full_name="mgmtd.FeMessage.notify_data_req", + index=11, + number=15, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="regnotify_req", + full_name="mgmtd.FeMessage.regnotify_req", + index=12, + number=16, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name="message", + full_name="mgmtd.FeMessage.message", + index=0, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[], + ), + ], + serialized_start=3048, + serialized_end=3672, +) + +_YANGDATAVALUE.oneofs_by_name["value"].fields.append( + _YANGDATAVALUE.fields_by_name["encoded_str_val"] +) +_YANGDATAVALUE.fields_by_name["encoded_str_val"].containing_oneof = ( + _YANGDATAVALUE.oneofs_by_name["value"] +) +_YANGDATA.fields_by_name["value"].message_type = _YANGDATAVALUE +_YANGCFGDATAREQ.fields_by_name["data"].message_type = _YANGDATA +_YANGCFGDATAREQ.fields_by_name["req_type"].enum_type = _CFGDATAREQTYPE +_YANGGETDATAREQ.fields_by_name["data"].message_type = _YANGDATA +_BECFGDATACREATEREQ.fields_by_name["data_req"].message_type = _YANGCFGDATAREQ +_YANGDATAREPLY.fields_by_name["data"].message_type = _YANGDATA +_BEMESSAGE.fields_by_name["subscr_req"].message_type = _BESUBSCRIBEREQ +_BEMESSAGE.fields_by_name["subscr_reply"].message_type = _BESUBSCRIBEREPLY +_BEMESSAGE.fields_by_name["txn_req"].message_type = _BETXNREQ +_BEMESSAGE.fields_by_name["txn_reply"].message_type = _BETXNREPLY +_BEMESSAGE.fields_by_name["cfg_data_req"].message_type = _BECFGDATACREATEREQ +_BEMESSAGE.fields_by_name["cfg_data_reply"].message_type = _BECFGDATACREATEREPLY +_BEMESSAGE.fields_by_name["cfg_apply_req"].message_type = _BECFGDATAAPPLYREQ +_BEMESSAGE.fields_by_name["cfg_apply_reply"].message_type = _BECFGDATAAPPLYREPLY +_BEMESSAGE.oneofs_by_name["message"].fields.append( + _BEMESSAGE.fields_by_name["subscr_req"] +) +_BEMESSAGE.fields_by_name["subscr_req"].containing_oneof = _BEMESSAGE.oneofs_by_name[ + "message" +] +_BEMESSAGE.oneofs_by_name["message"].fields.append( + _BEMESSAGE.fields_by_name["subscr_reply"] +) +_BEMESSAGE.fields_by_name["subscr_reply"].containing_oneof = _BEMESSAGE.oneofs_by_name[ + "message" +] +_BEMESSAGE.oneofs_by_name["message"].fields.append(_BEMESSAGE.fields_by_name["txn_req"]) +_BEMESSAGE.fields_by_name["txn_req"].containing_oneof = _BEMESSAGE.oneofs_by_name[ + "message" +] +_BEMESSAGE.oneofs_by_name["message"].fields.append( + _BEMESSAGE.fields_by_name["txn_reply"] +) +_BEMESSAGE.fields_by_name["txn_reply"].containing_oneof = _BEMESSAGE.oneofs_by_name[ + "message" +] +_BEMESSAGE.oneofs_by_name["message"].fields.append( + _BEMESSAGE.fields_by_name["cfg_data_req"] +) +_BEMESSAGE.fields_by_name["cfg_data_req"].containing_oneof = _BEMESSAGE.oneofs_by_name[ + "message" +] +_BEMESSAGE.oneofs_by_name["message"].fields.append( + _BEMESSAGE.fields_by_name["cfg_data_reply"] +) +_BEMESSAGE.fields_by_name["cfg_data_reply"].containing_oneof = ( + _BEMESSAGE.oneofs_by_name["message"] +) +_BEMESSAGE.oneofs_by_name["message"].fields.append( + _BEMESSAGE.fields_by_name["cfg_apply_req"] +) +_BEMESSAGE.fields_by_name["cfg_apply_req"].containing_oneof = _BEMESSAGE.oneofs_by_name[ + "message" +] +_BEMESSAGE.oneofs_by_name["message"].fields.append( + _BEMESSAGE.fields_by_name["cfg_apply_reply"] +) +_BEMESSAGE.fields_by_name["cfg_apply_reply"].containing_oneof = ( + _BEMESSAGE.oneofs_by_name["message"] +) +_FESESSIONREQ.oneofs_by_name["id"].fields.append( + _FESESSIONREQ.fields_by_name["client_conn_id"] +) +_FESESSIONREQ.fields_by_name["client_conn_id"].containing_oneof = ( + _FESESSIONREQ.oneofs_by_name["id"] +) +_FESESSIONREQ.oneofs_by_name["id"].fields.append( + _FESESSIONREQ.fields_by_name["session_id"] +) +_FESESSIONREQ.fields_by_name["session_id"].containing_oneof = ( + _FESESSIONREQ.oneofs_by_name["id"] +) +_FELOCKDSREQ.fields_by_name["ds_id"].enum_type = _DATASTOREID +_FELOCKDSREPLY.fields_by_name["ds_id"].enum_type = _DATASTOREID +_FESETCONFIGREQ.fields_by_name["ds_id"].enum_type = _DATASTOREID +_FESETCONFIGREQ.fields_by_name["data"].message_type = _YANGCFGDATAREQ +_FESETCONFIGREQ.fields_by_name["commit_ds_id"].enum_type = _DATASTOREID +_FESETCONFIGREPLY.fields_by_name["ds_id"].enum_type = _DATASTOREID +_FECOMMITCONFIGREQ.fields_by_name["src_ds_id"].enum_type = _DATASTOREID +_FECOMMITCONFIGREQ.fields_by_name["dst_ds_id"].enum_type = _DATASTOREID +_FECOMMITCONFIGREPLY.fields_by_name["src_ds_id"].enum_type = _DATASTOREID +_FECOMMITCONFIGREPLY.fields_by_name["dst_ds_id"].enum_type = _DATASTOREID +_FEGETREQ.fields_by_name["ds_id"].enum_type = _DATASTOREID +_FEGETREQ.fields_by_name["data"].message_type = _YANGGETDATAREQ +_FEGETREPLY.fields_by_name["ds_id"].enum_type = _DATASTOREID +_FEGETREPLY.fields_by_name["data"].message_type = _YANGDATAREPLY +_FENOTIFYDATAREQ.fields_by_name["data"].message_type = _YANGDATA +_FEREGISTERNOTIFYREQ.fields_by_name["ds_id"].enum_type = _DATASTOREID +_FEREGISTERNOTIFYREQ.fields_by_name["data_xpath"].message_type = _YANGDATAXPATH +_FEMESSAGE.fields_by_name["register_req"].message_type = _FEREGISTERREQ +_FEMESSAGE.fields_by_name["session_req"].message_type = _FESESSIONREQ +_FEMESSAGE.fields_by_name["session_reply"].message_type = _FESESSIONREPLY +_FEMESSAGE.fields_by_name["lockds_req"].message_type = _FELOCKDSREQ +_FEMESSAGE.fields_by_name["lockds_reply"].message_type = _FELOCKDSREPLY +_FEMESSAGE.fields_by_name["setcfg_req"].message_type = _FESETCONFIGREQ +_FEMESSAGE.fields_by_name["setcfg_reply"].message_type = _FESETCONFIGREPLY +_FEMESSAGE.fields_by_name["commcfg_req"].message_type = _FECOMMITCONFIGREQ +_FEMESSAGE.fields_by_name["commcfg_reply"].message_type = _FECOMMITCONFIGREPLY +_FEMESSAGE.fields_by_name["get_req"].message_type = _FEGETREQ +_FEMESSAGE.fields_by_name["get_reply"].message_type = _FEGETREPLY +_FEMESSAGE.fields_by_name["notify_data_req"].message_type = _FENOTIFYDATAREQ +_FEMESSAGE.fields_by_name["regnotify_req"].message_type = _FEREGISTERNOTIFYREQ +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["register_req"] +) +_FEMESSAGE.fields_by_name["register_req"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["session_req"] +) +_FEMESSAGE.fields_by_name["session_req"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["session_reply"] +) +_FEMESSAGE.fields_by_name["session_reply"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["lockds_req"] +) +_FEMESSAGE.fields_by_name["lockds_req"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["lockds_reply"] +) +_FEMESSAGE.fields_by_name["lockds_reply"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["setcfg_req"] +) +_FEMESSAGE.fields_by_name["setcfg_req"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["setcfg_reply"] +) +_FEMESSAGE.fields_by_name["setcfg_reply"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["commcfg_req"] +) +_FEMESSAGE.fields_by_name["commcfg_req"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["commcfg_reply"] +) +_FEMESSAGE.fields_by_name["commcfg_reply"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append(_FEMESSAGE.fields_by_name["get_req"]) +_FEMESSAGE.fields_by_name["get_req"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["get_reply"] +) +_FEMESSAGE.fields_by_name["get_reply"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["notify_data_req"] +) +_FEMESSAGE.fields_by_name["notify_data_req"].containing_oneof = ( + _FEMESSAGE.oneofs_by_name["message"] +) +_FEMESSAGE.oneofs_by_name["message"].fields.append( + _FEMESSAGE.fields_by_name["regnotify_req"] +) +_FEMESSAGE.fields_by_name["regnotify_req"].containing_oneof = _FEMESSAGE.oneofs_by_name[ + "message" +] +DESCRIPTOR.message_types_by_name["YangDataXPath"] = _YANGDATAXPATH +DESCRIPTOR.message_types_by_name["YangDataValue"] = _YANGDATAVALUE +DESCRIPTOR.message_types_by_name["YangData"] = _YANGDATA +DESCRIPTOR.message_types_by_name["YangCfgDataReq"] = _YANGCFGDATAREQ +DESCRIPTOR.message_types_by_name["YangGetDataReq"] = _YANGGETDATAREQ +DESCRIPTOR.message_types_by_name["BeSubscribeReq"] = _BESUBSCRIBEREQ +DESCRIPTOR.message_types_by_name["BeSubscribeReply"] = _BESUBSCRIBEREPLY +DESCRIPTOR.message_types_by_name["BeTxnReq"] = _BETXNREQ +DESCRIPTOR.message_types_by_name["BeTxnReply"] = _BETXNREPLY +DESCRIPTOR.message_types_by_name["BeCfgDataCreateReq"] = _BECFGDATACREATEREQ +DESCRIPTOR.message_types_by_name["BeCfgDataCreateReply"] = _BECFGDATACREATEREPLY +DESCRIPTOR.message_types_by_name["BeCfgDataApplyReq"] = _BECFGDATAAPPLYREQ +DESCRIPTOR.message_types_by_name["BeCfgDataApplyReply"] = _BECFGDATAAPPLYREPLY +DESCRIPTOR.message_types_by_name["YangDataReply"] = _YANGDATAREPLY +DESCRIPTOR.message_types_by_name["BeMessage"] = _BEMESSAGE +DESCRIPTOR.message_types_by_name["FeRegisterReq"] = _FEREGISTERREQ +DESCRIPTOR.message_types_by_name["FeSessionReq"] = _FESESSIONREQ +DESCRIPTOR.message_types_by_name["FeSessionReply"] = _FESESSIONREPLY +DESCRIPTOR.message_types_by_name["FeLockDsReq"] = _FELOCKDSREQ +DESCRIPTOR.message_types_by_name["FeLockDsReply"] = _FELOCKDSREPLY +DESCRIPTOR.message_types_by_name["FeSetConfigReq"] = _FESETCONFIGREQ +DESCRIPTOR.message_types_by_name["FeSetConfigReply"] = _FESETCONFIGREPLY +DESCRIPTOR.message_types_by_name["FeCommitConfigReq"] = _FECOMMITCONFIGREQ +DESCRIPTOR.message_types_by_name["FeCommitConfigReply"] = _FECOMMITCONFIGREPLY +DESCRIPTOR.message_types_by_name["FeGetReq"] = _FEGETREQ +DESCRIPTOR.message_types_by_name["FeGetReply"] = _FEGETREPLY +DESCRIPTOR.message_types_by_name["FeNotifyDataReq"] = _FENOTIFYDATAREQ +DESCRIPTOR.message_types_by_name["FeRegisterNotifyReq"] = _FEREGISTERNOTIFYREQ +DESCRIPTOR.message_types_by_name["FeMessage"] = _FEMESSAGE +DESCRIPTOR.enum_types_by_name["CfgDataReqType"] = _CFGDATAREQTYPE +DESCRIPTOR.enum_types_by_name["DatastoreId"] = _DATASTOREID _sym_db.RegisterFileDescriptor(DESCRIPTOR) -YangDataXPath = _reflection.GeneratedProtocolMessageType('YangDataXPath', (_message.Message,), { - 'DESCRIPTOR' : _YANGDATAXPATH, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.YangDataXPath) - }) +YangDataXPath = _reflection.GeneratedProtocolMessageType( + "YangDataXPath", + (_message.Message,), + { + "DESCRIPTOR": _YANGDATAXPATH, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.YangDataXPath) + }, +) _sym_db.RegisterMessage(YangDataXPath) -YangDataValue = _reflection.GeneratedProtocolMessageType('YangDataValue', (_message.Message,), { - 'DESCRIPTOR' : _YANGDATAVALUE, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.YangDataValue) - }) +YangDataValue = _reflection.GeneratedProtocolMessageType( + "YangDataValue", + (_message.Message,), + { + "DESCRIPTOR": _YANGDATAVALUE, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.YangDataValue) + }, +) _sym_db.RegisterMessage(YangDataValue) -YangData = _reflection.GeneratedProtocolMessageType('YangData', (_message.Message,), { - 'DESCRIPTOR' : _YANGDATA, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.YangData) - }) +YangData = _reflection.GeneratedProtocolMessageType( + "YangData", + (_message.Message,), + { + "DESCRIPTOR": _YANGDATA, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.YangData) + }, +) _sym_db.RegisterMessage(YangData) -YangCfgDataReq = _reflection.GeneratedProtocolMessageType('YangCfgDataReq', (_message.Message,), { - 'DESCRIPTOR' : _YANGCFGDATAREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.YangCfgDataReq) - }) +YangCfgDataReq = _reflection.GeneratedProtocolMessageType( + "YangCfgDataReq", + (_message.Message,), + { + "DESCRIPTOR": _YANGCFGDATAREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.YangCfgDataReq) + }, +) _sym_db.RegisterMessage(YangCfgDataReq) -YangGetDataReq = _reflection.GeneratedProtocolMessageType('YangGetDataReq', (_message.Message,), { - 'DESCRIPTOR' : _YANGGETDATAREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.YangGetDataReq) - }) +YangGetDataReq = _reflection.GeneratedProtocolMessageType( + "YangGetDataReq", + (_message.Message,), + { + "DESCRIPTOR": _YANGGETDATAREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.YangGetDataReq) + }, +) _sym_db.RegisterMessage(YangGetDataReq) -BeSubscribeReq = _reflection.GeneratedProtocolMessageType('BeSubscribeReq', (_message.Message,), { - 'DESCRIPTOR' : _BESUBSCRIBEREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.BeSubscribeReq) - }) +BeSubscribeReq = _reflection.GeneratedProtocolMessageType( + "BeSubscribeReq", + (_message.Message,), + { + "DESCRIPTOR": _BESUBSCRIBEREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.BeSubscribeReq) + }, +) _sym_db.RegisterMessage(BeSubscribeReq) -BeSubscribeReply = _reflection.GeneratedProtocolMessageType('BeSubscribeReply', (_message.Message,), { - 'DESCRIPTOR' : _BESUBSCRIBEREPLY, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.BeSubscribeReply) - }) +BeSubscribeReply = _reflection.GeneratedProtocolMessageType( + "BeSubscribeReply", + (_message.Message,), + { + "DESCRIPTOR": _BESUBSCRIBEREPLY, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.BeSubscribeReply) + }, +) _sym_db.RegisterMessage(BeSubscribeReply) -BeTxnReq = _reflection.GeneratedProtocolMessageType('BeTxnReq', (_message.Message,), { - 'DESCRIPTOR' : _BETXNREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.BeTxnReq) - }) +BeTxnReq = _reflection.GeneratedProtocolMessageType( + "BeTxnReq", + (_message.Message,), + { + "DESCRIPTOR": _BETXNREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.BeTxnReq) + }, +) _sym_db.RegisterMessage(BeTxnReq) -BeTxnReply = _reflection.GeneratedProtocolMessageType('BeTxnReply', (_message.Message,), { - 'DESCRIPTOR' : _BETXNREPLY, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.BeTxnReply) - }) +BeTxnReply = _reflection.GeneratedProtocolMessageType( + "BeTxnReply", + (_message.Message,), + { + "DESCRIPTOR": _BETXNREPLY, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.BeTxnReply) + }, +) _sym_db.RegisterMessage(BeTxnReply) -BeCfgDataCreateReq = _reflection.GeneratedProtocolMessageType('BeCfgDataCreateReq', (_message.Message,), { - 'DESCRIPTOR' : _BECFGDATACREATEREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.BeCfgDataCreateReq) - }) +BeCfgDataCreateReq = _reflection.GeneratedProtocolMessageType( + "BeCfgDataCreateReq", + (_message.Message,), + { + "DESCRIPTOR": _BECFGDATACREATEREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.BeCfgDataCreateReq) + }, +) _sym_db.RegisterMessage(BeCfgDataCreateReq) -BeCfgDataCreateReply = _reflection.GeneratedProtocolMessageType('BeCfgDataCreateReply', (_message.Message,), { - 'DESCRIPTOR' : _BECFGDATACREATEREPLY, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.BeCfgDataCreateReply) - }) +BeCfgDataCreateReply = _reflection.GeneratedProtocolMessageType( + "BeCfgDataCreateReply", + (_message.Message,), + { + "DESCRIPTOR": _BECFGDATACREATEREPLY, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.BeCfgDataCreateReply) + }, +) _sym_db.RegisterMessage(BeCfgDataCreateReply) -BeCfgDataApplyReq = _reflection.GeneratedProtocolMessageType('BeCfgDataApplyReq', (_message.Message,), { - 'DESCRIPTOR' : _BECFGDATAAPPLYREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.BeCfgDataApplyReq) - }) +BeCfgDataApplyReq = _reflection.GeneratedProtocolMessageType( + "BeCfgDataApplyReq", + (_message.Message,), + { + "DESCRIPTOR": _BECFGDATAAPPLYREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.BeCfgDataApplyReq) + }, +) _sym_db.RegisterMessage(BeCfgDataApplyReq) -BeCfgDataApplyReply = _reflection.GeneratedProtocolMessageType('BeCfgDataApplyReply', (_message.Message,), { - 'DESCRIPTOR' : _BECFGDATAAPPLYREPLY, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.BeCfgDataApplyReply) - }) +BeCfgDataApplyReply = _reflection.GeneratedProtocolMessageType( + "BeCfgDataApplyReply", + (_message.Message,), + { + "DESCRIPTOR": _BECFGDATAAPPLYREPLY, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.BeCfgDataApplyReply) + }, +) _sym_db.RegisterMessage(BeCfgDataApplyReply) -YangDataReply = _reflection.GeneratedProtocolMessageType('YangDataReply', (_message.Message,), { - 'DESCRIPTOR' : _YANGDATAREPLY, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.YangDataReply) - }) +YangDataReply = _reflection.GeneratedProtocolMessageType( + "YangDataReply", + (_message.Message,), + { + "DESCRIPTOR": _YANGDATAREPLY, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.YangDataReply) + }, +) _sym_db.RegisterMessage(YangDataReply) -BeMessage = _reflection.GeneratedProtocolMessageType('BeMessage', (_message.Message,), { - 'DESCRIPTOR' : _BEMESSAGE, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.BeMessage) - }) +BeMessage = _reflection.GeneratedProtocolMessageType( + "BeMessage", + (_message.Message,), + { + "DESCRIPTOR": _BEMESSAGE, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.BeMessage) + }, +) _sym_db.RegisterMessage(BeMessage) -FeRegisterReq = _reflection.GeneratedProtocolMessageType('FeRegisterReq', (_message.Message,), { - 'DESCRIPTOR' : _FEREGISTERREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeRegisterReq) - }) +FeRegisterReq = _reflection.GeneratedProtocolMessageType( + "FeRegisterReq", + (_message.Message,), + { + "DESCRIPTOR": _FEREGISTERREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeRegisterReq) + }, +) _sym_db.RegisterMessage(FeRegisterReq) -FeSessionReq = _reflection.GeneratedProtocolMessageType('FeSessionReq', (_message.Message,), { - 'DESCRIPTOR' : _FESESSIONREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeSessionReq) - }) +FeSessionReq = _reflection.GeneratedProtocolMessageType( + "FeSessionReq", + (_message.Message,), + { + "DESCRIPTOR": _FESESSIONREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeSessionReq) + }, +) _sym_db.RegisterMessage(FeSessionReq) -FeSessionReply = _reflection.GeneratedProtocolMessageType('FeSessionReply', (_message.Message,), { - 'DESCRIPTOR' : _FESESSIONREPLY, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeSessionReply) - }) +FeSessionReply = _reflection.GeneratedProtocolMessageType( + "FeSessionReply", + (_message.Message,), + { + "DESCRIPTOR": _FESESSIONREPLY, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeSessionReply) + }, +) _sym_db.RegisterMessage(FeSessionReply) -FeLockDsReq = _reflection.GeneratedProtocolMessageType('FeLockDsReq', (_message.Message,), { - 'DESCRIPTOR' : _FELOCKDSREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeLockDsReq) - }) +FeLockDsReq = _reflection.GeneratedProtocolMessageType( + "FeLockDsReq", + (_message.Message,), + { + "DESCRIPTOR": _FELOCKDSREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeLockDsReq) + }, +) _sym_db.RegisterMessage(FeLockDsReq) -FeLockDsReply = _reflection.GeneratedProtocolMessageType('FeLockDsReply', (_message.Message,), { - 'DESCRIPTOR' : _FELOCKDSREPLY, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeLockDsReply) - }) +FeLockDsReply = _reflection.GeneratedProtocolMessageType( + "FeLockDsReply", + (_message.Message,), + { + "DESCRIPTOR": _FELOCKDSREPLY, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeLockDsReply) + }, +) _sym_db.RegisterMessage(FeLockDsReply) -FeSetConfigReq = _reflection.GeneratedProtocolMessageType('FeSetConfigReq', (_message.Message,), { - 'DESCRIPTOR' : _FESETCONFIGREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeSetConfigReq) - }) +FeSetConfigReq = _reflection.GeneratedProtocolMessageType( + "FeSetConfigReq", + (_message.Message,), + { + "DESCRIPTOR": _FESETCONFIGREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeSetConfigReq) + }, +) _sym_db.RegisterMessage(FeSetConfigReq) -FeSetConfigReply = _reflection.GeneratedProtocolMessageType('FeSetConfigReply', (_message.Message,), { - 'DESCRIPTOR' : _FESETCONFIGREPLY, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeSetConfigReply) - }) +FeSetConfigReply = _reflection.GeneratedProtocolMessageType( + "FeSetConfigReply", + (_message.Message,), + { + "DESCRIPTOR": _FESETCONFIGREPLY, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeSetConfigReply) + }, +) _sym_db.RegisterMessage(FeSetConfigReply) -FeCommitConfigReq = _reflection.GeneratedProtocolMessageType('FeCommitConfigReq', (_message.Message,), { - 'DESCRIPTOR' : _FECOMMITCONFIGREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeCommitConfigReq) - }) +FeCommitConfigReq = _reflection.GeneratedProtocolMessageType( + "FeCommitConfigReq", + (_message.Message,), + { + "DESCRIPTOR": _FECOMMITCONFIGREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeCommitConfigReq) + }, +) _sym_db.RegisterMessage(FeCommitConfigReq) -FeCommitConfigReply = _reflection.GeneratedProtocolMessageType('FeCommitConfigReply', (_message.Message,), { - 'DESCRIPTOR' : _FECOMMITCONFIGREPLY, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeCommitConfigReply) - }) +FeCommitConfigReply = _reflection.GeneratedProtocolMessageType( + "FeCommitConfigReply", + (_message.Message,), + { + "DESCRIPTOR": _FECOMMITCONFIGREPLY, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeCommitConfigReply) + }, +) _sym_db.RegisterMessage(FeCommitConfigReply) -FeGetReq = _reflection.GeneratedProtocolMessageType('FeGetReq', (_message.Message,), { - 'DESCRIPTOR' : _FEGETREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeGetReq) - }) +FeGetReq = _reflection.GeneratedProtocolMessageType( + "FeGetReq", + (_message.Message,), + { + "DESCRIPTOR": _FEGETREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeGetReq) + }, +) _sym_db.RegisterMessage(FeGetReq) -FeGetReply = _reflection.GeneratedProtocolMessageType('FeGetReply', (_message.Message,), { - 'DESCRIPTOR' : _FEGETREPLY, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeGetReply) - }) +FeGetReply = _reflection.GeneratedProtocolMessageType( + "FeGetReply", + (_message.Message,), + { + "DESCRIPTOR": _FEGETREPLY, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeGetReply) + }, +) _sym_db.RegisterMessage(FeGetReply) -FeNotifyDataReq = _reflection.GeneratedProtocolMessageType('FeNotifyDataReq', (_message.Message,), { - 'DESCRIPTOR' : _FENOTIFYDATAREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeNotifyDataReq) - }) +FeNotifyDataReq = _reflection.GeneratedProtocolMessageType( + "FeNotifyDataReq", + (_message.Message,), + { + "DESCRIPTOR": _FENOTIFYDATAREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeNotifyDataReq) + }, +) _sym_db.RegisterMessage(FeNotifyDataReq) -FeRegisterNotifyReq = _reflection.GeneratedProtocolMessageType('FeRegisterNotifyReq', (_message.Message,), { - 'DESCRIPTOR' : _FEREGISTERNOTIFYREQ, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeRegisterNotifyReq) - }) +FeRegisterNotifyReq = _reflection.GeneratedProtocolMessageType( + "FeRegisterNotifyReq", + (_message.Message,), + { + "DESCRIPTOR": _FEREGISTERNOTIFYREQ, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeRegisterNotifyReq) + }, +) _sym_db.RegisterMessage(FeRegisterNotifyReq) -FeMessage = _reflection.GeneratedProtocolMessageType('FeMessage', (_message.Message,), { - 'DESCRIPTOR' : _FEMESSAGE, - '__module__' : 'mgmt_pb2' - # @@protoc_insertion_point(class_scope:mgmtd.FeMessage) - }) +FeMessage = _reflection.GeneratedProtocolMessageType( + "FeMessage", + (_message.Message,), + { + "DESCRIPTOR": _FEMESSAGE, + "__module__": "mgmt_pb2", + # @@protoc_insertion_point(class_scope:mgmtd.FeMessage) + }, +) _sym_db.RegisterMessage(FeMessage) diff --git a/tests/topotests/multicast_pim_bsm_topo1/test_mcast_pim_bsmp_01.py b/tests/topotests/multicast_pim_bsm_topo1/test_mcast_pim_bsmp_01.py index 9ee411206..f3b2f683c 100644 --- a/tests/topotests/multicast_pim_bsm_topo1/test_mcast_pim_bsmp_01.py +++ b/tests/topotests/multicast_pim_bsm_topo1/test_mcast_pim_bsmp_01.py @@ -202,7 +202,6 @@ def teardown_module(): def clear_bsrp_data(tgen, topo): - """ clear bsm databas after test" Parameters diff --git a/tests/topotests/multicast_pim_bsm_topo2/test_mcast_pim_bsmp_02.py b/tests/topotests/multicast_pim_bsm_topo2/test_mcast_pim_bsmp_02.py index 302a77858..53a9d8390 100644 --- a/tests/topotests/multicast_pim_bsm_topo2/test_mcast_pim_bsmp_02.py +++ b/tests/topotests/multicast_pim_bsm_topo2/test_mcast_pim_bsmp_02.py @@ -182,7 +182,6 @@ def teardown_module(): def clear_bsrp_data(tgen, topo): - """ clear bsm databas after test" Parameters diff --git a/tests/topotests/multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py b/tests/topotests/multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py index f5aa41ee6..186b54757 100755 --- a/tests/topotests/multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py +++ b/tests/topotests/multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py @@ -264,11 +264,14 @@ def verify_state_incremented(state_before, state_after): for intf, v2 in v1.items(): for state, value in v2.items(): if value >= state_after[ttype][intf][state]: - errormsg = "[DUT: %s]: state %s value has not incremented, Initial value: %s, Current value: %s [FAILED!!]" % ( - intf, - state, - value, - state_after[ttype][intf][state], + errormsg = ( + "[DUT: %s]: state %s value has not incremented, Initial value: %s, Current value: %s [FAILED!!]" + % ( + intf, + state, + value, + state_after[ttype][intf][state], + ) ) return errormsg diff --git a/tests/topotests/munet/config.py b/tests/topotests/munet/config.py index 2870ae615..f96e9a405 100644 --- a/tests/topotests/munet/config.py +++ b/tests/topotests/munet/config.py @@ -94,13 +94,11 @@ def config_to_dict_with_key(c, ck, k): @overload -def config_subst(config: str, **kwargs) -> str: - ... +def config_subst(config: str, **kwargs) -> str: ... @overload -def config_subst(config: Iterable, **kwargs) -> Iterable: - ... +def config_subst(config: Iterable, **kwargs) -> Iterable: ... def config_subst(config: Iterable, **kwargs) -> Iterable: diff --git a/tests/topotests/munet/mucmd.py b/tests/topotests/munet/mucmd.py index cd356f38a..d6101e1a5 100644 --- a/tests/topotests/munet/mucmd.py +++ b/tests/topotests/munet/mucmd.py @@ -89,14 +89,14 @@ def main(*args): ecmd = "/usr/bin/nsenter" eargs = [ecmd] - #start mucmd same way base process is started + # start mucmd same way base process is started eargs.append(f"--mount=/proc/{pid}/ns/mnt") eargs.append(f"--net=/proc/{pid}/ns/net") eargs.append(f"--pid=/proc/{pid}/ns/pid_for_children") eargs.append(f"--uts=/proc/{pid}/ns/uts") eargs.append(f"--wd={rundir}") eargs += args.shellcmd - #print("Using ", eargs) + # print("Using ", eargs) return os.execvpe(ecmd, eargs, {**env, **envcfg}) diff --git a/tests/topotests/munet/watchlog.py b/tests/topotests/munet/watchlog.py index 27bc3251a..f764f9dac 100644 --- a/tests/topotests/munet/watchlog.py +++ b/tests/topotests/munet/watchlog.py @@ -15,6 +15,7 @@ from pathlib import Path class MatchFoundError(Exception): """An error raised when a match is not found.""" + def __init__(self, watchlog, match): self.watchlog = watchlog self.match = match diff --git a/tests/topotests/nb_config/test_nb_config.py b/tests/topotests/nb_config/test_nb_config.py index f699a4e20..8def19ffd 100644 --- a/tests/topotests/nb_config/test_nb_config.py +++ b/tests/topotests/nb_config/test_nb_config.py @@ -24,9 +24,7 @@ CWD = os.path.dirname(os.path.realpath(__file__)) def tgen(request): "Setup/Teardown the environment and provide tgen argument to tests" - topodef = { - "s1": ("r1",) - } + topodef = {"s1": ("r1",)} tgen = Topogen(topodef, request.module.__name__) tgen.start_topology() @@ -46,12 +44,14 @@ def test_access_list_config_ordering(tgen): r1 = tgen.gears["r1"] - output = r1.vtysh_multicmd([ - "conf t", - "access-list test seq 1 permit host 10.0.0.1"]) + output = r1.vtysh_multicmd( + ["conf t", "access-list test seq 1 permit host 10.0.0.1"] + ) output = r1.vtysh_cmd("show ip access-list test json") got = json.loads(output) - expected = json.loads('{"ZEBRA":{"test":{"type":"Standard", "addressFamily":"IPv4", "rules":[{"sequenceNumber":1, "filterType":"permit", "address":"10.0.0.1", "mask":"0.0.0.0"}]}}}') + expected = json.loads( + '{"ZEBRA":{"test":{"type":"Standard", "addressFamily":"IPv4", "rules":[{"sequenceNumber":1, "filterType":"permit", "address":"10.0.0.1", "mask":"0.0.0.0"}]}}}' + ) result = json_cmp(got, expected) assert result is None @@ -59,11 +59,11 @@ def test_access_list_config_ordering(tgen): # If the northbound mis-orders the create/delete then this test fails. # https://github.com/FRRouting/frr/pull/15423/commits/38b85e0c2bc555b8827dbd2cb6515b6febf548b4 # - output = r1.vtysh_multicmd([ - "conf t", - "access-list test seq 1 permit 10.0.0.0/8"]) + output = r1.vtysh_multicmd(["conf t", "access-list test seq 1 permit 10.0.0.0/8"]) output = r1.vtysh_cmd("show ip access-list test json") got = json.loads(output) - expected = json.loads('{"ZEBRA":{"test":{"type":"Zebra", "addressFamily":"IPv4", "rules":[{"sequenceNumber":1, "filterType":"permit", "prefix":"10.0.0.0/8", "exact-match":false}]}}}') + expected = json.loads( + '{"ZEBRA":{"test":{"type":"Zebra", "addressFamily":"IPv4", "rules":[{"sequenceNumber":1, "filterType":"permit", "prefix":"10.0.0.0/8", "exact-match":false}]}}}' + ) result = json_cmp(got, expected) assert result is None diff --git a/tests/topotests/ospf_basic_functionality/test_ospf_flood_reduction.py b/tests/topotests/ospf_basic_functionality/test_ospf_flood_reduction.py index bd7db644d..62b821220 100644 --- a/tests/topotests/ospf_basic_functionality/test_ospf_flood_reduction.py +++ b/tests/topotests/ospf_basic_functionality/test_ospf_flood_reduction.py @@ -183,7 +183,6 @@ def teardown_module(mod): logger.info("=" * 40) - def red_static(dut, config=True): """Local def for Redstribute static routes inside ospf.""" global topo @@ -367,7 +366,13 @@ def test_ospf_flood_red_tc1_p0(request): }, } result = verify_ospf_database( - tgen, topo, dut, input_dict_db, lsatype="router", rid="100.1.1.0", expected=False + tgen, + topo, + dut, + input_dict_db, + lsatype="router", + rid="100.1.1.0", + expected=False, ) assert result is not True, ( "Testcase {} : Failed \n " @@ -573,7 +578,9 @@ def test_ospf_flood_red_tc2_p0(request): result = verify_ospf_database( tgen, topo, dut, input_dict_db, lsatype="router", rid=lsid ) - assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result) + assert result is True, "Testcase {} : Failed \n Error: {}".format( + tc_name, result + ) step("Wait for 120 secs and verify that LSA's are not refreshed. ") # get LSA age @@ -636,7 +643,13 @@ def test_ospf_flood_red_tc2_p0(request): }, } result = verify_ospf_database( - tgen, topo, dut, input_dict_db, lsatype="router", rid="100.1.1.0", expected=False + tgen, + topo, + dut, + input_dict_db, + lsatype="router", + rid="100.1.1.0", + expected=False, ) assert result is not True, ( "Testcase {} : Failed \n " @@ -815,7 +828,9 @@ def test_ospf_flood_red_tc3_p0(request): result = verify_ospf_database( tgen, topo, dut, input_dict_db, lsatype="router", rid=lsid ) - assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result) + assert result is True, "Testcase {} : Failed \n Error: {}".format( + tc_name, result + ) step("Wait for 120 secs and verify that LSA's are not refreshed. ") # get LSA age @@ -1022,7 +1037,13 @@ def test_ospf_flood_red_tc3_p0(request): }, } result = verify_ospf_database( - tgen, topo, dut, input_dict_db, lsatype="router", rid="100.1.1.0", expected=False + tgen, + topo, + dut, + input_dict_db, + lsatype="router", + rid="100.1.1.0", + expected=False, ) assert result is not True, ( diff --git a/tests/topotests/ospf_basic_functionality/test_ospf_nssa.py b/tests/topotests/ospf_basic_functionality/test_ospf_nssa.py index d669e21d4..4a40b3e9e 100644 --- a/tests/topotests/ospf_basic_functionality/test_ospf_nssa.py +++ b/tests/topotests/ospf_basic_functionality/test_ospf_nssa.py @@ -165,7 +165,7 @@ def test_ospf_learning_tc15_p0(request): step("Verify that Type 3 summary LSA is originated for the same Area 0") ip = topo["routers"]["r1"]["links"]["r3-link0"]["ipv4"] - ip_net = str(ipaddress.ip_interface(u"{}".format(ip)).network) + ip_net = str(ipaddress.ip_interface("{}".format(ip)).network) dut = "r0" input_dict = { diff --git a/tests/topotests/ospf_basic_functionality/test_ospf_rte_calc.py b/tests/topotests/ospf_basic_functionality/test_ospf_rte_calc.py index 45c132591..d169245f4 100644 --- a/tests/topotests/ospf_basic_functionality/test_ospf_rte_calc.py +++ b/tests/topotests/ospf_basic_functionality/test_ospf_rte_calc.py @@ -177,7 +177,7 @@ def test_ospf_redistribution_tc5_p0(request): step("verify intra area route is calculated for r0-r3 interface ip in R1") ip = topo["routers"]["r0"]["links"]["r3"]["ipv4"] - ip_net = str(ipaddress.ip_interface(u"{}".format(ip)).network) + ip_net = str(ipaddress.ip_interface("{}".format(ip)).network) nh = topo["routers"]["r0"]["links"]["r1"]["ipv4"].split("/")[0] input_dict = { "r1": {"static_routes": [{"network": ip_net, "no_of_ip": 1, "routeType": "N"}]} @@ -301,7 +301,7 @@ def test_ospf_redistribution_tc6_p0(request): step("verify intra area route is calculated for r0-r3 interface ip in R1") ip = topo["routers"]["r0"]["links"]["r3"]["ipv4"] - ip_net = str(ipaddress.ip_interface(u"{}".format(ip)).network) + ip_net = str(ipaddress.ip_interface("{}".format(ip)).network) nh = topo["routers"]["r0"]["links"]["r1"]["ipv4"].split("/")[0] input_dict = { "r1": {"static_routes": [{"network": ip_net, "no_of_ip": 1, "routeType": "N"}]} diff --git a/tests/topotests/ospf_basic_functionality/test_ospf_single_area.py b/tests/topotests/ospf_basic_functionality/test_ospf_single_area.py index 757d6fb1d..172f79d45 100644 --- a/tests/topotests/ospf_basic_functionality/test_ospf_single_area.py +++ b/tests/topotests/ospf_basic_functionality/test_ospf_single_area.py @@ -634,7 +634,7 @@ def test_ospf_show_p1(request): # show ip ospf route ip = topo["routers"]["r0"]["links"]["r3"]["ipv4"] - ip_net = str(ipaddress.ip_interface(u"{}".format(ip)).network) + ip_net = str(ipaddress.ip_interface("{}".format(ip)).network) nh = topo["routers"]["r0"]["links"]["r1"]["ipv4"].split("/")[0] input_dict = { "r1": {"static_routes": [{"network": ip_net, "no_of_ip": 1, "routeType": "N"}]} diff --git a/tests/topotests/ospf_gr_helper/test_ospf_gr_helper2.py b/tests/topotests/ospf_gr_helper/test_ospf_gr_helper2.py index 46c0da309..3468a6511 100644 --- a/tests/topotests/ospf_gr_helper/test_ospf_gr_helper2.py +++ b/tests/topotests/ospf_gr_helper/test_ospf_gr_helper2.py @@ -190,8 +190,10 @@ def test_ospf_gr_helper_tc3_p1(request): ospf_covergence is True ), "OSPF is not after reset config \n Error: {}".format(ospf_covergence) - step("Configure DR priority 100 on R0 and clear ospf neighbors " - "on all the routers.") + step( + "Configure DR priority 100 on R0 and clear ospf neighbors " + "on all the routers." + ) input_dict = { "r0": { diff --git a/tests/topotests/ospf_instance_redistribute/test_ospf_instance_redistribute.py b/tests/topotests/ospf_instance_redistribute/test_ospf_instance_redistribute.py index 9dfe5e1b7..590b0d5e6 100644 --- a/tests/topotests/ospf_instance_redistribute/test_ospf_instance_redistribute.py +++ b/tests/topotests/ospf_instance_redistribute/test_ospf_instance_redistribute.py @@ -64,16 +64,9 @@ def setup_module(module): # This is a sample of configuration loading. r1 = tgen.gears["r1"] - r1.load_config( - TopoRouter.RD_ZEBRA, os.path.join(CWD, "r1/zebra.conf") - ) - r1.load_config( - TopoRouter.RD_OSPF, os.path.join(CWD, "r1/ospfd-3.conf"), - "-n 3" - ) - r1.load_config( - TopoRouter.RD_SHARP, os.path.join(CWD, "r1/sharpd.conf") - ) + r1.load_config(TopoRouter.RD_ZEBRA, os.path.join(CWD, "r1/zebra.conf")) + r1.load_config(TopoRouter.RD_OSPF, os.path.join(CWD, "r1/ospfd-3.conf"), "-n 3") + r1.load_config(TopoRouter.RD_SHARP, os.path.join(CWD, "r1/sharpd.conf")) tgen.start_router() @@ -103,13 +96,15 @@ def test_install_sharp_instance_routes(): expected = json.loads(open(json_file).read()) test_func = partial( - topotest.router_json_cmp, r1, "show ip route summ json", expected) + topotest.router_json_cmp, r1, "show ip route summ json", expected + ) logger.info("Ensuring that they exist in the rib/fib") _, result = topotest.run_and_expect(test_func, None, count=10, wait=1) assertmsg = '"r1" sharp routes are not installed' assert result is None, assertmsg + def test_ospf_instance_redistribute(): tgen = get_topogen() @@ -124,7 +119,8 @@ def test_ospf_instance_redistribute(): expected = json.loads(open(json_file).read()) test_func = partial( - topotest.router_json_cmp, r1, "show ip ospf 3 data json", expected) + topotest.router_json_cmp, r1, "show ip ospf 3 data json", expected + ) _, result = topotest.run_and_expect(test_func, None, count=10, wait=1) assertmsg = '"r1" ospf instance 3 does not have the proper redistributed routes' @@ -139,7 +135,8 @@ def test_ospf_instance_redistribute(): expected = json.loads(open(json_file).read()) test_func = partial( - topotest.router_json_cmp, r1, "show ip ospf 3 data json", expected) + topotest.router_json_cmp, r1, "show ip ospf 3 data json", expected + ) _, result = topotest.run_and_expect(test_func, None, count=10, wait=1) assertmsg = '"r1" ospf instance 3 does not have the proper redistributed routes' @@ -161,15 +158,14 @@ def test_ospf_instance_default_information(): expected = json.loads(open(json_file).read()) test_func = partial( - topotest.router_json_cmp, r1, "show ip ospf 3 data json", expected) + topotest.router_json_cmp, r1, "show ip ospf 3 data json", expected + ) _, result = topotest.run_and_expect(test_func, None, count=10, wait=1) assertmsg = '"r1" ospf instance 3 does not properly redistribute the default route' assert result is None, assertmsg - if __name__ == "__main__": args = ["-s"] + sys.argv[1:] sys.exit(pytest.main(args)) - diff --git a/tests/topotests/ospf_multi_vrf_bgp_route_leak/test_ospf_multi_vrf_bgp_route_leak.py b/tests/topotests/ospf_multi_vrf_bgp_route_leak/test_ospf_multi_vrf_bgp_route_leak.py index 792304e19..ee0a0f6c3 100644 --- a/tests/topotests/ospf_multi_vrf_bgp_route_leak/test_ospf_multi_vrf_bgp_route_leak.py +++ b/tests/topotests/ospf_multi_vrf_bgp_route_leak/test_ospf_multi_vrf_bgp_route_leak.py @@ -182,9 +182,7 @@ def test_ospf_convergence(): "show ip ospf vrf {} route".format(vrf), expected, ) - result, diff = topotest.run_and_expect( - test_func, "", count=80, wait=1 - ) + result, diff = topotest.run_and_expect(test_func, "", count=80, wait=1) assertmsg = "OSPF did not converge on {}:\n{}".format(rname, diff) assert result, assertmsg @@ -207,9 +205,7 @@ def test_ospf_kernel_route(): test_func = partial( compare_show_ip_route_vrf, router.name, expected, vrf ) - result, diff = topotest.run_and_expect( - test_func, "", count=80, wait=1 - ) + result, diff = topotest.run_and_expect(test_func, "", count=80, wait=1) assertmsg = 'OSPF IPv4 route mismatch in router "{}": {}'.format( router.name, diff ) diff --git a/tests/topotests/ospf_nssa_topo1/test_ospf_nssa_topo1.py b/tests/topotests/ospf_nssa_topo1/test_ospf_nssa_topo1.py index 432ddf098..d8cd1322b 100644 --- a/tests/topotests/ospf_nssa_topo1/test_ospf_nssa_topo1.py +++ b/tests/topotests/ospf_nssa_topo1/test_ospf_nssa_topo1.py @@ -199,9 +199,7 @@ def test_rib_step3(): pytest.skip(tgen.errors) logger.info("Removing NSSA default on rt4") - tgen.net["rt3"].cmd( - 'vtysh -c "conf t" -c "router ospf" -c "area 1 nssa"' - ) + tgen.net["rt3"].cmd('vtysh -c "conf t" -c "router ospf" -c "area 1 nssa"') for rname in ["rt1", "rt2", "rt3", "rt4"]: router_compare_json_output( diff --git a/tests/topotests/ospf_single_switch/test_ospf_single_switch.py b/tests/topotests/ospf_single_switch/test_ospf_single_switch.py index 65c918283..e53b5f5b1 100644 --- a/tests/topotests/ospf_single_switch/test_ospf_single_switch.py +++ b/tests/topotests/ospf_single_switch/test_ospf_single_switch.py @@ -97,14 +97,18 @@ def is_iproute2_json_supported(): Checks if the command 'ip -j route' is supported. """ try: - output = subprocess.run(['ip', '-j', 'route', 'get', '0.0.0.0'], stdout=subprocess.PIPE).stdout.decode() + output = subprocess.run( + ["ip", "-j", "route", "get", "0.0.0.0"], stdout=subprocess.PIPE + ).stdout.decode() json.loads(output) return True except json.decoder.JSONDecodeError: return False -@pytest.mark.skipif(not is_iproute2_json_supported(), reason="'ip -j route' not supported") +@pytest.mark.skipif( + not is_iproute2_json_supported(), reason="'ip -j route' not supported" +) def test_all_routes_advertised(): tgen = get_topogen() @@ -135,9 +139,13 @@ def test_all_routes_advertised(): ] } } - result = verify_ospf_rib(tgen, router_orig, input_dict, next_hop=network[1]) + result = verify_ospf_rib( + tgen, router_orig, input_dict, next_hop=network[1] + ) assert result is True, "Error: {}".format(result) - result = verify_rib(tgen, "ipv4", router_orig, input_dict, next_hop=network[1]) + result = verify_rib( + tgen, "ipv4", router_orig, input_dict, next_hop=network[1] + ) assert result is True, "Error: {}".format(result) check_route(router_orig, network[0], network[1]) @@ -181,7 +189,9 @@ def check_route(router_name, network, expected_nexthop): output = router.cmd(f"ip -j route get {address}") logger.info(output) routes = json.loads(output) - assert routes[0]["gateway"] == expected_nexthop, f"{router_name} (kernel): no route {address} via {expected_nexthop}" + assert ( + routes[0]["gateway"] == expected_nexthop + ), f"{router_name} (kernel): no route {address} via {expected_nexthop}" if __name__ == "__main__": diff --git a/tests/topotests/ospfapi/test_ospf_clientapi.py b/tests/topotests/ospfapi/test_ospf_clientapi.py index 49dd34d65..626a9d318 100644 --- a/tests/topotests/ospfapi/test_ospf_clientapi.py +++ b/tests/topotests/ospfapi/test_ospf_clientapi.py @@ -277,9 +277,7 @@ def _test_add_data(tgen, apibin): "linkStateId": "230.0.0.2", "advertisingRouter": "1.0.0.0", "lsaSeqNumber": "80000001", - "opaqueValues": { - "opaqueData": "00000202" - } + "opaqueValues": {"opaqueData": "00000202"}, }, ], } @@ -330,8 +328,8 @@ def _test_add_data(tgen, apibin): "advertisingRouter": "1.0.0.0", "lsaSeqNumber": "80000001", "opaqueValues": { - "opaqueData": "00010101", - } + "opaqueData": "00010101", + }, }, ], } @@ -381,8 +379,8 @@ def _test_add_data(tgen, apibin): "advertisingRouter": "1.0.0.0", "lsaSeqNumber": "80000001", "opaqueValues": { - "opaqueData": "deadbeaf01234567", - } + "opaqueData": "deadbeaf01234567", + }, }, ] } @@ -434,8 +432,8 @@ def _test_add_data(tgen, apibin): "advertisingRouter": "1.0.0.0", "lsaSeqNumber": "80000002", "opaqueValues": { - "opaqueData": "ebadf00d", - } + "opaqueData": "ebadf00d", + }, }, ] } @@ -1664,8 +1662,8 @@ def _test_opaque_link_local_lsa_crash(tgen, apibin): "advertisingRouter": "1.0.0.0", "lsaSeqNumber": "80000001", "opaqueValues": { - "opaqueData": "feedaceedeadbeef", - } + "opaqueData": "feedaceedeadbeef", + }, }, ], } @@ -1695,8 +1693,8 @@ def _test_opaque_link_local_lsa_crash(tgen, apibin): "advertisingRouter": "1.0.0.0", "lsaSeqNumber": "80000001", "opaqueValues": { - "opaqueData": "feedaceecafebeef", - } + "opaqueData": "feedaceecafebeef", + }, }, ], } diff --git a/tests/topotests/ospfv3_basic_functionality/test_ospfv3_nssa2.py b/tests/topotests/ospfv3_basic_functionality/test_ospfv3_nssa2.py index 90548fb5c..5a6c377ae 100644 --- a/tests/topotests/ospfv3_basic_functionality/test_ospfv3_nssa2.py +++ b/tests/topotests/ospfv3_basic_functionality/test_ospfv3_nssa2.py @@ -410,7 +410,7 @@ def test_ospfv3_learning_tc15_p0(request): step("Verify that Type 3 summary LSA is originated for the same Area 0") ip = topo["routers"]["r1"]["links"]["r3-link0"]["ipv6"] - ip_net = str(ipaddress.ip_interface(u"{}".format(ip)).network) + ip_net = str(ipaddress.ip_interface("{}".format(ip)).network) input_dict = { "r1": { diff --git a/tests/topotests/ospfv3_basic_functionality/test_ospfv3_rte_calc.py b/tests/topotests/ospfv3_basic_functionality/test_ospfv3_rte_calc.py index 645dea8de..916f65555 100644 --- a/tests/topotests/ospfv3_basic_functionality/test_ospfv3_rte_calc.py +++ b/tests/topotests/ospfv3_basic_functionality/test_ospfv3_rte_calc.py @@ -262,7 +262,7 @@ def test_ospfv3_redistribution_tc5_p0(request): step("verify intra area route is calculated for r0-r3 interface ip in R1") ip = topo["routers"]["r0"]["links"]["r3"]["ipv6"] - ip_net = str(ipaddress.ip_interface(u"{}".format(ip)).network) + ip_net = str(ipaddress.ip_interface("{}".format(ip)).network) llip = get_llip("r0", "r1") assert llip is not None, "Testcase {} : Failed \n Error: {}".format(tc_name, llip) @@ -379,7 +379,7 @@ def test_ospfv3_redistribution_tc6_p0(request): step("verify intra area route is calculated for r0-r3 interface ip in R1") ip = topo["routers"]["r0"]["links"]["r3"]["ipv6"] - ip_net = str(ipaddress.ip_interface(u"{}".format(ip)).network) + ip_net = str(ipaddress.ip_interface("{}".format(ip)).network) llip = get_llip("r0", "r1") assert llip is not None, "Testcase {} : Failed \n Error: {}".format(tc_name, llip) nh = llip diff --git a/tests/topotests/ospfv3_basic_functionality/test_ospfv3_single_area.py b/tests/topotests/ospfv3_basic_functionality/test_ospfv3_single_area.py index 7199f160f..3bafd27f2 100644 --- a/tests/topotests/ospfv3_basic_functionality/test_ospfv3_single_area.py +++ b/tests/topotests/ospfv3_basic_functionality/test_ospfv3_single_area.py @@ -1124,7 +1124,7 @@ def test_ospfv3_show_p1(request): assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result) ip = topo["routers"]["r0"]["links"]["r3"]["ipv6"] - ip_net = str(ipaddress.ip_interface(u"{}".format(ip)).network) + ip_net = str(ipaddress.ip_interface("{}".format(ip)).network) nh = topo["routers"]["r0"]["links"]["r1"]["ipv6"].split("/")[0] input_dict = { "r1": { diff --git a/tests/topotests/rip_bfd_topo1/test_rip_bfd_topo1.py b/tests/topotests/rip_bfd_topo1/test_rip_bfd_topo1.py index 71c90931f..d03d5479f 100644 --- a/tests/topotests/rip_bfd_topo1/test_rip_bfd_topo1.py +++ b/tests/topotests/rip_bfd_topo1/test_rip_bfd_topo1.py @@ -32,10 +32,7 @@ pytestmark = [ def tgen(request): "Setup/Teardown the environment and provide tgen argument to tests" - topodef = { - "s1": ("r1", "r2"), - "s2": ("r1", "r3") - } + topodef = {"s1": ("r1", "r2"), "s2": ("r1", "r3")} tgen = Topogen(topodef, request.module.__name__) tgen.start_topology() @@ -68,16 +65,17 @@ def show_rip_json(router): for route in routes: match = re.match( - r"(.)\((.)\)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)", route) + r"(.)\((.)\)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)", route + ) if match is None: continue route_entry = { - "code": match[1], - "subCode": match[2], - "nextHop": match[4], - "metric": int(match[5]), - "from": match[6], + "code": match[1], + "subCode": match[2], + "nextHop": match[4], + "metric": int(match[5]), + "from": match[6], } if json.get(match[3]) is None: @@ -95,12 +93,8 @@ def expect_routes(router, routes, time_amount): "Internal test function." return topotest.json_cmp(show_rip_json(router), routes) - _, result = topotest.run_and_expect(test_function, - None, - count=time_amount, - wait=1) - assert result is None, "Unexpected routing table in {}".format( - router.name) + _, result = topotest.run_and_expect(test_function, None, count=time_amount, wait=1) + assert result is None, "Unexpected routing table in {}".format(router.name) def expect_bfd_peers(router, peers): @@ -119,91 +113,87 @@ def test_rip_convergence(tgen): "Test that RIP learns the neighbor routes." expect_routes( - tgen.gears["r1"], { - "10.254.254.2/32": [{ - "code": "R", - "subCode": "n", - "from": "192.168.0.2" - }], - "10.254.254.3/32": [{ - "code": "R", - "subCode": "n", - "from": "192.168.1.2" - }], - "10.254.254.100/32": [{ - "code": "R", - "subCode": "n", - "from": "192.168.0.2", - }, { - "code": "R", - "subCode": "n", - "from": "192.168.1.2", - }] - }, 40) - - expect_bfd_peers(tgen.gears["r1"], [{ - "peer": "192.168.0.2", - "status": "up", - "receive-interval": 1000, - "transmit-interval": 1000, - }, { - "peer": "192.168.1.2", - "status": "up", - "receive-interval": 1000, - "transmit-interval": 1000, - }]) + tgen.gears["r1"], + { + "10.254.254.2/32": [{"code": "R", "subCode": "n", "from": "192.168.0.2"}], + "10.254.254.3/32": [{"code": "R", "subCode": "n", "from": "192.168.1.2"}], + "10.254.254.100/32": [ + { + "code": "R", + "subCode": "n", + "from": "192.168.0.2", + }, + { + "code": "R", + "subCode": "n", + "from": "192.168.1.2", + }, + ], + }, + 40, + ) + + expect_bfd_peers( + tgen.gears["r1"], + [ + { + "peer": "192.168.0.2", + "status": "up", + "receive-interval": 1000, + "transmit-interval": 1000, + }, + { + "peer": "192.168.1.2", + "status": "up", + "receive-interval": 1000, + "transmit-interval": 1000, + }, + ], + ) expect_routes( - tgen.gears["r2"], { - "10.254.254.1/32": [{ - "code": "R", - "subCode": "n", - "from": "192.168.0.1" - }], - "10.254.254.3/32": [{ - "code": "R", - "subCode": "n", - "from": "192.168.0.1" - }], - "10.254.254.100/32": [{ - "code": "S", - "subCode": "r", - "from": "self" - }] - }, 40) - - expect_bfd_peers(tgen.gears["r2"], [{ - "peer": "192.168.0.1", - "status": "up", - "receive-interval": 1000, - "transmit-interval": 1000, - }]) + tgen.gears["r2"], + { + "10.254.254.1/32": [{"code": "R", "subCode": "n", "from": "192.168.0.1"}], + "10.254.254.3/32": [{"code": "R", "subCode": "n", "from": "192.168.0.1"}], + "10.254.254.100/32": [{"code": "S", "subCode": "r", "from": "self"}], + }, + 40, + ) + + expect_bfd_peers( + tgen.gears["r2"], + [ + { + "peer": "192.168.0.1", + "status": "up", + "receive-interval": 1000, + "transmit-interval": 1000, + } + ], + ) expect_routes( - tgen.gears["r3"], { - "10.254.254.1/32": [{ - "code": "R", - "subCode": "n", - "from": "192.168.1.1" - }], - "10.254.254.2/32": [{ - "code": "R", - "subCode": "n", - "from": "192.168.1.1" - }], - "10.254.254.100/32": [{ - "code": "S", - "subCode": "r", - "from": "self" - }] - }, 40) - - expect_bfd_peers(tgen.gears["r3"], [{ - "peer": "192.168.1.1", - "status": "up", - "receive-interval": 1000, - "transmit-interval": 1000, - }]) + tgen.gears["r3"], + { + "10.254.254.1/32": [{"code": "R", "subCode": "n", "from": "192.168.1.1"}], + "10.254.254.2/32": [{"code": "R", "subCode": "n", "from": "192.168.1.1"}], + "10.254.254.100/32": [{"code": "S", "subCode": "r", "from": "self"}], + }, + 40, + ) + + expect_bfd_peers( + tgen.gears["r3"], + [ + { + "peer": "192.168.1.1", + "status": "up", + "receive-interval": 1000, + "transmit-interval": 1000, + } + ], + ) def test_rip_bfd_convergence(tgen): @@ -212,30 +202,30 @@ def test_rip_bfd_convergence(tgen): tgen.gears["r3"].link_enable("r3-eth0", False) expect_routes( - tgen.gears["r1"], { - "10.254.254.2/32": [{ - "code": "R", - "subCode": "n", - "from": "192.168.0.2" - }], + tgen.gears["r1"], + { + "10.254.254.2/32": [{"code": "R", "subCode": "n", "from": "192.168.0.2"}], "10.254.254.3/32": None, - "10.254.254.100/32": [{ - "code": "R", - "subCode": "n", - "from": "192.168.0.2", - }] - }, 6) + "10.254.254.100/32": [ + { + "code": "R", + "subCode": "n", + "from": "192.168.0.2", + } + ], + }, + 6, + ) expect_routes( - tgen.gears["r3"], { + tgen.gears["r3"], + { "10.254.254.1/32": None, "10.254.254.2/32": None, - "10.254.254.100/32": [{ - "code": "S", - "subCode": "r", - "from": "self" - }] - }, 6) + "10.254.254.100/32": [{"code": "S", "subCode": "r", "from": "self"}], + }, + 6, + ) def test_memory_leak(tgen): diff --git a/tests/topotests/route_scale/scale_test_common.py b/tests/topotests/route_scale/scale_test_common.py index 6227e81b9..b3cba1cb4 100644 --- a/tests/topotests/route_scale/scale_test_common.py +++ b/tests/topotests/route_scale/scale_test_common.py @@ -151,7 +151,7 @@ def route_install_helper(iter): logger.info( "Limited memory available: {}, skipping x32 testcase".format(total_mem) ) - return; + return installed_file = "{}/r1/installed.routes.json".format(CWD) expected_installed = json.loads(open(installed_file).read()) diff --git a/tests/topotests/route_scale/test_route_scale1.py b/tests/topotests/route_scale/test_route_scale1.py index 0f25b28c7..ccbdd5159 100644 --- a/tests/topotests/route_scale/test_route_scale1.py +++ b/tests/topotests/route_scale/test_route_scale1.py @@ -30,35 +30,51 @@ from lib import topotest from lib.topogen import Topogen, TopoRouter, get_topogen from lib.topolog import logger -from scale_test_common import scale_build_common, scale_setup_module, route_install_helper, scale_test_memory_leak, scale_converge_protocols, scale_teardown_module +from scale_test_common import ( + scale_build_common, + scale_setup_module, + route_install_helper, + scale_test_memory_leak, + scale_converge_protocols, + scale_teardown_module, +) pytestmark = [pytest.mark.sharpd] + def build(tgen): scale_build_common(tgen) + def setup_module(module): scale_setup_module(module) + def teardown_module(_mod): scale_teardown_module(_mod) + def test_converge_protocols(): scale_converge_protocols() + def test_route_install_2nh(): route_install_helper(1) + def test_route_install_4nh(): route_install_helper(2) + def test_route_install_16nh(): route_install_helper(4) + def test_memory_leak(): scale_test_memory_leak() + if __name__ == "__main__": args = ["-s"] + sys.argv[1:] sys.exit(pytest.main(args)) diff --git a/tests/topotests/route_scale/test_route_scale2.py b/tests/topotests/route_scale/test_route_scale2.py index 3b55fcd8f..e244d4fbb 100644 --- a/tests/topotests/route_scale/test_route_scale2.py +++ b/tests/topotests/route_scale/test_route_scale2.py @@ -30,35 +30,51 @@ from lib import topotest from lib.topogen import Topogen, TopoRouter, get_topogen from lib.topolog import logger -from scale_test_common import scale_build_common, scale_setup_module, route_install_helper, scale_test_memory_leak, scale_converge_protocols, scale_teardown_module +from scale_test_common import ( + scale_build_common, + scale_setup_module, + route_install_helper, + scale_test_memory_leak, + scale_converge_protocols, + scale_teardown_module, +) pytestmark = [pytest.mark.sharpd] + def build(tgen): scale_build_common(tgen) + def setup_module(module): scale_setup_module(module) + def teardown_module(_mod): scale_teardown_module(_mod) + def test_converge_protocols(): scale_converge_protocols() + def test_route_install_1nh(): route_install_helper(0) + def test_route_install_8nh(): route_install_helper(3) + def test_route_install_32nh(): route_install_helper(5) + def test_memory_leak(): scale_test_memory_leak() + if __name__ == "__main__": args = ["-s"] + sys.argv[1:] sys.exit(pytest.main(args)) diff --git a/tests/topotests/srv6_encap_src_addr/test_srv6_encap_src_addr.py b/tests/topotests/srv6_encap_src_addr/test_srv6_encap_src_addr.py index 423919331..b8bcab8d9 100755 --- a/tests/topotests/srv6_encap_src_addr/test_srv6_encap_src_addr.py +++ b/tests/topotests/srv6_encap_src_addr/test_srv6_encap_src_addr.py @@ -63,16 +63,16 @@ def teardown_module(mod): def test_zebra_srv6_encap_src_addr(tgen): "Test SRv6 encapsulation source address." - logger.info( - "Test SRv6 encapsulation source address." - ) + logger.info("Test SRv6 encapsulation source address.") r1 = tgen.gears["r1"] # Generate expected results json_file = "{}/r1/expected_srv6_encap_src_addr.json".format(CWD) expected = json.loads(open(json_file).read()) - ok = topotest.router_json_cmp_retry(r1, "show segment-routing srv6 manager json", expected) + ok = topotest.router_json_cmp_retry( + r1, "show segment-routing srv6 manager json", expected + ) assert ok, '"r1" JSON output mismatches' output = r1.cmd("ip sr tunsrc show") @@ -81,9 +81,7 @@ def test_zebra_srv6_encap_src_addr(tgen): def test_zebra_srv6_encap_src_addr_unset(tgen): "Test SRv6 encapsulation source address unset." - logger.info( - "Test SRv6 encapsulation source address unset." - ) + logger.info("Test SRv6 encapsulation source address unset.") r1 = tgen.gears["r1"] # Unset SRv6 encapsulation source address @@ -101,7 +99,9 @@ def test_zebra_srv6_encap_src_addr_unset(tgen): json_file = "{}/r1/expected_srv6_encap_src_addr_unset.json".format(CWD) expected = json.loads(open(json_file).read()) - ok = topotest.router_json_cmp_retry(r1, "show segment-routing srv6 manager json", expected) + ok = topotest.router_json_cmp_retry( + r1, "show segment-routing srv6 manager json", expected + ) assert ok, '"r1" JSON output mismatches' output = r1.cmd("ip sr tunsrc show") @@ -110,9 +110,7 @@ def test_zebra_srv6_encap_src_addr_unset(tgen): def test_zebra_srv6_encap_src_addr_set(tgen): "Test SRv6 encapsulation source address set." - logger.info( - "Test SRv6 encapsulation source address set." - ) + logger.info("Test SRv6 encapsulation source address set.") r1 = tgen.gears["r1"] # Set SRv6 encapsulation source address @@ -130,7 +128,9 @@ def test_zebra_srv6_encap_src_addr_set(tgen): json_file = "{}/r1/expected_srv6_encap_src_addr_set.json".format(CWD) expected = json.loads(open(json_file).read()) - ok = topotest.router_json_cmp_retry(r1, "show segment-routing srv6 manager json", expected) + ok = topotest.router_json_cmp_retry( + r1, "show segment-routing srv6 manager json", expected + ) assert ok, '"r1" JSON output mismatches' output = r1.cmd("ip sr tunsrc show") diff --git a/tests/topotests/static_routing_with_ebgp/test_static_routes_topo4_ebgp.py b/tests/topotests/static_routing_with_ebgp/test_static_routes_topo4_ebgp.py index b2e622269..3e03055ac 100644 --- a/tests/topotests/static_routing_with_ebgp/test_static_routes_topo4_ebgp.py +++ b/tests/topotests/static_routing_with_ebgp/test_static_routes_topo4_ebgp.py @@ -549,7 +549,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ebgp(request): protocol = "bgp" ntwk_r2_vm1 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r2"]["links"]["vm1"][addr_type]) + "{}".format(topo["routers"]["r2"]["links"]["vm1"][addr_type]) ).network ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} @@ -569,7 +569,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ebgp(request): dut = "r2" ntwk_r2_vm6 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r2"]["links"]["vm6"][addr_type]) + "{}".format(topo["routers"]["r2"]["links"]["vm6"][addr_type]) ).network ) input_dict = {"r3": {"static_routes": [{"network": ntwk_r2_vm6}]}} @@ -912,7 +912,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ebgp(request): protocol = "bgp" ntwk_r2_vm1 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r2"]["links"]["vm1"][addr_type]) + "{}".format(topo["routers"]["r2"]["links"]["vm1"][addr_type]) ).network ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} @@ -929,7 +929,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ebgp(request): dut = "r1" ntwk_r2_vm1 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r1"]["links"]["vm4"][addr_type]) + "{}".format(topo["routers"]["r1"]["links"]["vm4"][addr_type]) ).network ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} @@ -943,7 +943,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ebgp(request): dut = "r2" ntwk_r2_vm1 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r1"]["links"]["vm4"][addr_type]) + "{}".format(topo["routers"]["r1"]["links"]["vm4"][addr_type]) ).network ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} @@ -957,7 +957,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ebgp(request): protocol = "bgp" ntwk_r2_vm6 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r2"]["links"]["vm6"][addr_type]) + "{}".format(topo["routers"]["r2"]["links"]["vm6"][addr_type]) ).network ) input_dict = {"r3": {"static_routes": [{"network": ntwk_r2_vm6}]}} diff --git a/tests/topotests/static_routing_with_ibgp/test_static_routes_topo4_ibgp.py b/tests/topotests/static_routing_with_ibgp/test_static_routes_topo4_ibgp.py index 037824095..0fc81aaf1 100644 --- a/tests/topotests/static_routing_with_ibgp/test_static_routes_topo4_ibgp.py +++ b/tests/topotests/static_routing_with_ibgp/test_static_routes_topo4_ibgp.py @@ -547,7 +547,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): protocol = "bgp" ntwk_r2_vm1 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r2"]["links"]["vm1"][addr_type]) + "{}".format(topo["routers"]["r2"]["links"]["vm1"][addr_type]) ).network ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} @@ -567,7 +567,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): dut = "r2" ntwk_r2_vm6 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r2"]["links"]["vm6"][addr_type]) + "{}".format(topo["routers"]["r2"]["links"]["vm6"][addr_type]) ).network ) input_dict = {"r3": {"static_routes": [{"network": ntwk_r2_vm6}]}} @@ -910,7 +910,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): protocol = "bgp" ntwk_r2_vm1 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r2"]["links"]["vm1"][addr_type]) + "{}".format(topo["routers"]["r2"]["links"]["vm1"][addr_type]) ).network ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} @@ -927,7 +927,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): dut = "r1" ntwk_r2_vm1 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r1"]["links"]["vm4"][addr_type]) + "{}".format(topo["routers"]["r1"]["links"]["vm4"][addr_type]) ).network ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} @@ -941,7 +941,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): dut = "r2" ntwk_r2_vm1 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r1"]["links"]["vm4"][addr_type]) + "{}".format(topo["routers"]["r1"]["links"]["vm4"][addr_type]) ).network ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} @@ -955,7 +955,7 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): protocol = "bgp" ntwk_r2_vm6 = str( ipaddress.ip_interface( - u"{}".format(topo["routers"]["r2"]["links"]["vm6"][addr_type]) + "{}".format(topo["routers"]["r2"]["links"]["vm6"][addr_type]) ).network ) input_dict = {"r3": {"static_routes": [{"network": ntwk_r2_vm6}]}} diff --git a/tests/topotests/tc_basic/test_tc_basic.py b/tests/topotests/tc_basic/test_tc_basic.py index f64e83c3c..822d2016a 100755 --- a/tests/topotests/tc_basic/test_tc_basic.py +++ b/tests/topotests/tc_basic/test_tc_basic.py @@ -22,9 +22,8 @@ sys.path.append(os.path.join(CWD, "../lib/")) from lib.topogen import Topogen, TopoRouter from lib.topolog import logger -pytestmark = [ - pytest.mark.sharpd -] +pytestmark = [pytest.mark.sharpd] + def build_topo(tgen): "Build function" @@ -42,6 +41,7 @@ def build_topo(tgen): switch = tgen.add_switch("s2") switch.add_link(r2) + # New form of setup/teardown using pytest fixture @pytest.fixture(scope="module") def tgen(request): @@ -79,22 +79,28 @@ def skip_on_failure(tgen): if tgen.routers_have_failure(): pytest.skip("skipped because of previous test failure") + def fetch_iproute2_tc_info(r, interface): qdisc = r.cmd("tc qdisc show dev %s" % interface) tclass = r.cmd("tc class show dev %s" % interface) tfilter = r.cmd("tc filter show dev %s" % interface) return qdisc, tclass, tfilter + # =================== # The tests functions # =================== + def test_tc_basic(tgen): "Test installing one pair of filter & class by sharpd" r1 = tgen.gears["r1"] intf = "r1-eth0" - r1.vtysh_cmd("sharp tc dev %s source 192.168.100.0/24 destination 192.168.101.0/24 ip-protocol tcp src-port 8000 dst-port 8001 rate 20mbit" % intf) + r1.vtysh_cmd( + "sharp tc dev %s source 192.168.100.0/24 destination 192.168.101.0/24 ip-protocol tcp src-port 8000 dst-port 8001 rate 20mbit" + % intf + ) time.sleep(3) @@ -115,6 +121,7 @@ def test_tc_basic(tgen): assert "dst_port 8001" in tfilter assert "src_port 8000" in tfilter + if __name__ == "__main__": args = ["-s"] + sys.argv[1:] - sys.exit(pytest.main(args))
\ No newline at end of file + sys.exit(pytest.main(args)) diff --git a/tests/topotests/zebra_netlink/test_zebra_netlink.py b/tests/topotests/zebra_netlink/test_zebra_netlink.py index 522c390c3..d970c04ee 100644 --- a/tests/topotests/zebra_netlink/test_zebra_netlink.py +++ b/tests/topotests/zebra_netlink/test_zebra_netlink.py @@ -94,7 +94,7 @@ def test_zebra_netlink_batching(tgen): } match = {} - base = int(ipaddress.ip_address(u"2.1.3.7")) + base = int(ipaddress.ip_address("2.1.3.7")) for i in range(base, base + count): pfx = str(ipaddress.ip_network((i, 32))) match[pfx] = [dict(entry, prefix=pfx)] diff --git a/tests/topotests/zebra_nht_resolution/test_verify_nh_resolution.py b/tests/topotests/zebra_nht_resolution/test_verify_nh_resolution.py index 6956ab740..fbef0fefc 100644 --- a/tests/topotests/zebra_nht_resolution/test_verify_nh_resolution.py +++ b/tests/topotests/zebra_nht_resolution/test_verify_nh_resolution.py @@ -33,30 +33,36 @@ sys.path.append(os.path.join(CWD, "../")) pytestmark = [pytest.mark.sharpd] -#GLOBAL VARIABLES +# GLOBAL VARIABLES NH1 = "2.2.2.32" + def build_topo(tgen): tgen.add_router("r1") switch = tgen.add_switch("sw1") switch.add_link(tgen.gears["r1"]) + def setup_module(mod): tgen = Topogen(build_topo, mod.__name__) tgen.start_topology() router_list = tgen.routers() for rname, router in tgen.routers().items(): - router.load_config(TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))) + router.load_config( + TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname)) + ) router.load_config( TopoRouter.RD_SHARP, os.path.join(CWD, "{}/sharpd.conf".format(rname)) ) tgen.start_router() + def teardown_module(_mod): tgen = get_topogen() tgen.stop_topology() + def test_verify_zebra_nh_resolution(request): tgen = get_topogen() tc_name = request.node.name @@ -67,31 +73,18 @@ def test_verify_zebra_nh_resolution(request): step("Configure static route") input_dict_1 = { - "r1": { - "static_routes": [ - {"network": "2.2.2.0/24", "next_hop": "r1-eth0"} - ] - } - } + "r1": {"static_routes": [{"network": "2.2.2.0/24", "next_hop": "r1-eth0"}]} + } result = create_static_routes(tgen, input_dict_1) - assert result is True, "Testcase {} : Failed \n Error: {}".format( - tc_name, result - ) + assert result is True, "Testcase {} : Failed \n Error: {}".format(tc_name, result) step("Verify static routes in RIB of R1") - input_dict_2 = { - "r1": { - "static_routes": [ - {"network": "2.2.2.0/24"} - ] - } - } + input_dict_2 = {"r1": {"static_routes": [{"network": "2.2.2.0/24"}]}} dut = "r1" result = verify_rib(tgen, "ipv4", dut, input_dict_2) - assert result is True, "Testcase {} :Failed \n Error: {}".format( - tc_name, result) + assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("Set the connected flag on the NH tracking entry") r1.vtysh_cmd("sharp watch nexthop 2.2.2.32 connected") @@ -108,8 +101,7 @@ def test_verify_zebra_nh_resolution(request): } result = verify_ip_nht(tgen, input_dict_nh) assert result is True, "Testcase {} : Failed \n" - "Error: Nexthop is missing in RIB".format( - tc_name, result) + "Error: Nexthop is missing in RIB".format(tc_name, result) step("Add a .32/32 route with the NH as itself") r1.vtysh_cmd("sharp install routes 2.2.2.32 nexthop 2.2.2.32 1") @@ -126,11 +118,12 @@ def test_verify_zebra_nh_resolution(request): } result = verify_ip_nht(tgen, input_dict_nh) assert result is True, "Testcase {} : Failed \n" - "Error: Nexthop became unresolved".format( - tc_name, result) + "Error: Nexthop became unresolved".format(tc_name, result) - step("Add a .31/32 route with the NH as 2.2.2.32" - "to verify the NH Resolution behaviour") + step( + "Add a .31/32 route with the NH as 2.2.2.32" + "to verify the NH Resolution behaviour" + ) r1.vtysh_cmd("sharp install routes 2.2.2.31 nexthop 2.2.2.32 1") step("Verify that NH 2.2.2.2/32 doesn't become unresolved") @@ -145,8 +138,8 @@ def test_verify_zebra_nh_resolution(request): } result = verify_ip_nht(tgen, input_dict_nh) assert result is True, "Testcase {} : Failed \n" - "Error: Nexthop became unresolved".format( - tc_name, result) + "Error: Nexthop became unresolved".format(tc_name, result) + if __name__ == "__main__": args = ["-s"] + sys.argv[1:] |