The networking_cisco.tests.unit.ml2.drivers.cisco.nexus.test_cisco_nexus_restapi_replay
Module¶
Replay Test Classes using RESTAPI Driver to test Cisco Nexus platforms.
These Classes are based on the original ssh event driver so same tests occur with same configuration. What’s different between the tests is the resulting driver output which is what the tests in this class presents to its parent class.
You will notice in this file there are test methods which are skipped by using ‘pass’. This is because these tests apply to ssh only OR because rerunning the test would be redundant.
-
class
networking_cisco.tests.unit.ml2.drivers.cisco.nexus.test_cisco_nexus_restapi_replay.
TestCiscoNexusRestBaremetalReplay
(*args, **kwds)¶ -
-
get_init_side_effect
(action, ipaddr=None, body=None, headers=None)¶
-
get_init_side_effect2
(action, ipaddr=None, body=None, headers=None)¶
-
setUp
()¶ Sets up mock ncclient, and switch and credentials dictionaries.
-
test_replay_automated_port_channel_w_user_cfg
(*args, **kwargs)¶ Basic replay of auto-port-channel creation with user config.
-
test_replay_automated_vPC_ports_and_vm
(*args, **kwargs)¶ Provides replay data and result data for unique ports.
-
test_replay_unique_ethernet_port_and_vm
(*args, **kwargs)¶
-
test_replay_unique_ethernet_ports
(*args, **kwargs)¶
-
test_replay_unique_vPC_ports
(*args, **kwargs)¶
-
test_replay_unique_vPC_ports_and_vm
(*args, **kwargs)¶
-
test_replay_unique_vPC_ports_chg_to_enet
(*args, **kwargs)¶
-
test_replay_unique_vPC_ports_chg_vPC_nbr
(*args, **kwargs)¶
-
-
class
networking_cisco.tests.unit.ml2.drivers.cisco.nexus.test_cisco_nexus_restapi_replay.
TestCiscoNexusRestBaremetalReplayResults
¶ Bases:
networking_cisco.tests.unit.ml2.drivers.cisco.nexus.test_cisco_nexus_base.TestCiscoNexusBaseResults
Unit tests driver results for Cisco ML2 Nexus.
-
test_results
= {‘driver_result_unique_2if_replay’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo/sys/intf/phys-[eth1/20].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+265”, “nativeVlan”: “vlan-265”}}}’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0]], ‘driver_result_unique_auto_vPC_vm_del1’: [[‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “-265”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-265].json’, ‘1.1.1.1’, ”, 1], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “-265”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-265].json’, ‘2.2.2.2’, ”, 1]], ‘driver_result_unique_vPC_2switch_add1’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po469].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po469].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0]], ‘driver_result_unique_eth_del_vm’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “-265”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-265].json’, ‘1.1.1.1’, ”, 1]], ‘driver_result_unique_auto_vPC_add1_w_user_cfg_replay’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” } } } ] } }, {“vpcEntity”: { “children”: [ { “vpcInst”: { “children”: [ { “vpcDom”: { “children”: [ { “vpcIf”: { “attributes”: { “id”: “1001” }, “children”: [ { “vpcRsVpcConf”: { “attributes”: { “tDn”: “sys/intf/aggr-[po1001]” } } } ] } }] } } ]} } ] } } ] } }’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “isExplicit”: “no”, “pcMode”: “active” },”children”: [ { “pcShadowAggrIf”: {“attributes”: { “id”: “po1001” } } }, { “pcRsMbrIfs”: { “attributes”: { “isMbrForce”: “yes”, “tDn”: “sys/intf/phys-[eth1/10]”} } } ] } } ] } } ] } }’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: {“mode”: “trunk”, “trunkVlans”: “”}}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” } } } ] } }, {“vpcEntity”: { “children”: [ { “vpcInst”: { “children”: [ { “vpcDom”: { “children”: [ { “vpcIf”: { “attributes”: { “id”: “1001” }, “children”: [ { “vpcRsVpcConf”: { “attributes”: { “tDn”: “sys/intf/aggr-[po1001]” } } } ] } }] } } ]} } ] } } ] } }’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “isExplicit”: “no”, “pcMode”: “active” },”children”: [ { “pcShadowAggrIf”: {“attributes”: { “id”: “po1001” } } }, { “pcRsMbrIfs”: { “attributes”: { “isMbrForce”: “yes”, “tDn”: “sys/intf/phys-[eth1/20]”} } } ] } } ] } } ] } }’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: {“mode”: “trunk”, “trunkVlans”: “”}}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0]], ‘driver_result_unique_init’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “”}}}’, 0], [‘api/mo/sys/intf/phys-[eth1/20].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “”}}}’, 0]], ‘driver_result_unique_vPC_2if_replay’: [[‘api/mo/sys/intf/aggr-[po469].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po469].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0]], ‘driver_result_unique_vPC470_2vlan_replay’: [[‘api/mo/sys/intf/aggr-[po470].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo/sys/intf/aggr-[po470].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+265,267”}}}’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po470].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo/sys/intf/aggr-[po470].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+265,267”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0]], ‘driver_result_unique_auto_vPC_del1’: [[‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “-267”, “nativeVlan”: “”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-267].json’, ‘1.1.1.1’, ”, 1], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” },”children”: [ { “pcRsMbrIfs”: { “attributes”: { “status”: “deleted”,”tDn”: “sys/intf/phys-[eth1/10]”} } } ] } } ] } } ] } }’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “status”: “deleted” } } } ] } } ] } }’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “-267”, “nativeVlan”: “”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-267].json’, ‘2.2.2.2’, ”, 1], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” },”children”: [ { “pcRsMbrIfs”: { “attributes”: { “status”: “deleted”,”tDn”: “sys/intf/phys-[eth1/20]”} } } ] } } ] } } ] } }’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “status”: “deleted” } } } ] } } ] } }’, 0]], ‘driver_result_unique_eth_add1’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0]], ‘driver_result_unique_vPC470_add2’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po470].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+265”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po470].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+265”}}}’, 0]], ‘driver_result_unique_vPC470_add1’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po470].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po470].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0]], ‘driver_result_unique_eth_add2’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/phys-[eth1/20].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+265”, “nativeVlan”: “vlan-265”}}}’, 0]], ‘driver_result_unique_vPC470_del1’: [[‘api/mo/sys/intf/aggr-[po470].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “-265”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-265].json’, ‘1.1.1.1’, ”, 1], [‘api/mo/sys/intf/aggr-[po470].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “-265”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-265].json’, ‘2.2.2.2’, ”, 1]], ‘driver_result_unique_vPC470_del2’: [[‘api/mo/sys/intf/aggr-[po470].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “-267”, “nativeVlan”: “”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-267].json’, ‘1.1.1.1’, ”, 1], [‘api/mo/sys/intf/aggr-[po470].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “-267”, “nativeVlan”: “”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-267].json’, ‘2.2.2.2’, ”, 1]], ‘driver_result_unique_auto_vPC_add1_w_user_cfg’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” } } } ] } }, {“vpcEntity”: { “children”: [ { “vpcInst”: { “children”: [ { “vpcDom”: { “children”: [ { “vpcIf”: { “attributes”: { “id”: “1001” }, “children”: [ { “vpcRsVpcConf”: { “attributes”: { “tDn”: “sys/intf/aggr-[po1001]” } } } ] } }] } } ]} } ] } } ] } }’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “isExplicit”: “no”, “pcMode”: “active” },”children”: [ { “pcShadowAggrIf”: {“attributes”: { “id”: “po1001” } } }, { “pcRsMbrIfs”: { “attributes”: { “isMbrForce”: “yes”, “tDn”: “sys/intf/phys-[eth1/10]”} } } ] } } ] } } ] } }’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: {“mode”: “trunk”, “trunkVlans”: “”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” } } } ] } }, {“vpcEntity”: { “children”: [ { “vpcInst”: { “children”: [ { “vpcDom”: { “children”: [ { “vpcIf”: { “attributes”: { “id”: “1001” }, “children”: [ { “vpcRsVpcConf”: { “attributes”: { “tDn”: “sys/intf/aggr-[po1001]” } } } ] } }] } } ]} } ] } } ] } }’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “isExplicit”: “no”, “pcMode”: “active” },”children”: [ { “pcShadowAggrIf”: {“attributes”: { “id”: “po1001” } } }, { “pcRsMbrIfs”: { “attributes”: { “isMbrForce”: “yes”, “tDn”: “sys/intf/phys-[eth1/20]”} } } ] } } ] } } ] } }’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: {“mode”: “trunk”, “trunkVlans”: “”}}}’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0]], ‘driver_result_unique_auto_vPC_vm_add1’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+265”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+265”}}}’, 0]], ‘driver_result_unique_eth_add_vm’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+265”}}}’, 0]], ‘driver_result_unique_auto_vPC_2vlan_replay’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” } } } ] } }, {“vpcEntity”: { “children”: [ { “vpcInst”: { “children”: [ { “vpcDom”: { “children”: [ { “vpcIf”: { “attributes”: { “id”: “1001” }, “children”: [ { “vpcRsVpcConf”: { “attributes”: { “tDn”: “sys/intf/aggr-[po1001]” } } } ] } }] } } ]} } ] } } ] } }’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “ctrl”: “graceful-conv”} } } ] } },{ “stpEntity”: { “children”: [ { “stpInst”: { “children”: [ { “stpIf”: { “attributes”: { “id”: “po1001”, “mode”: “trunk” } } } ] } } ] } }] } }’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “isExplicit”: “no”, “pcMode”: “active” },”children”: [ { “pcShadowAggrIf”: {“attributes”: { “id”: “po1001” } } }, { “pcRsMbrIfs”: { “attributes”: { “isMbrForce”: “yes”, “tDn”: “sys/intf/phys-[eth1/10]”} } } ] } } ] } } ] } }’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: {“mode”: “trunk”, “trunkVlans”: “”}}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+265,267”}}}’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” } } } ] } }, {“vpcEntity”: { “children”: [ { “vpcInst”: { “children”: [ { “vpcDom”: { “children”: [ { “vpcIf”: { “attributes”: { “id”: “1001” }, “children”: [ { “vpcRsVpcConf”: { “attributes”: { “tDn”: “sys/intf/aggr-[po1001]” } } } ] } }] } } ]} } ] } } ] } }’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “ctrl”: “graceful-conv”} } } ] } },{ “stpEntity”: { “children”: [ { “stpInst”: { “children”: [ { “stpIf”: { “attributes”: { “id”: “po1001”, “mode”: “trunk” } } } ] } } ] } }] } }’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “isExplicit”: “no”, “pcMode”: “active” },”children”: [ { “pcShadowAggrIf”: {“attributes”: { “id”: “po1001” } } }, { “pcRsMbrIfs”: { “attributes”: { “isMbrForce”: “yes”, “tDn”: “sys/intf/phys-[eth1/20]”} } } ] } } ] } } ] } }’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: {“mode”: “trunk”, “trunkVlans”: “”}}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+265,267”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0]], ‘driver_result_unique_auto_vPC_add_usr_cmd_nxapi_cli’: [[‘ins’, ‘1.1.1.1’, ‘int port-channel 1001 ;spanning-tree port type edge trunk ;no lacp suspend-individual’, 0], [‘ins’, ‘2.2.2.2’, ‘int port-channel 1001 ;spanning-tree port type edge trunk ;no lacp suspend-individual’, 0]], ‘driver_result_unique_auto_vPC_add1’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” } } } ] } }, {“vpcEntity”: { “children”: [ { “vpcInst”: { “children”: [ { “vpcDom”: { “children”: [ { “vpcIf”: { “attributes”: { “id”: “1001” }, “children”: [ { “vpcRsVpcConf”: { “attributes”: { “tDn”: “sys/intf/aggr-[po1001]” } } } ] } }] } } ]} } ] } } ] } }’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “ctrl”: “graceful-conv”} } } ] } },{ “stpEntity”: { “children”: [ { “stpInst”: { “children”: [ { “stpIf”: { “attributes”: { “id”: “po1001”, “mode”: “trunk” } } } ] } } ] } }] } }’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “isExplicit”: “no”, “pcMode”: “active” },”children”: [ { “pcShadowAggrIf”: {“attributes”: { “id”: “po1001” } } }, { “pcRsMbrIfs”: { “attributes”: { “isMbrForce”: “yes”, “tDn”: “sys/intf/phys-[eth1/10]”} } } ] } } ] } } ] } }’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: {“mode”: “trunk”, “trunkVlans”: “”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” } } } ] } }, {“vpcEntity”: { “children”: [ { “vpcInst”: { “children”: [ { “vpcDom”: { “children”: [ { “vpcIf”: { “attributes”: { “id”: “1001” }, “children”: [ { “vpcRsVpcConf”: { “attributes”: { “tDn”: “sys/intf/aggr-[po1001]” } } } ] } }] } } ]} } ] } } ] } }’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “ctrl”: “graceful-conv”} } } ] } },{ “stpEntity”: { “children”: [ { “stpInst”: { “children”: [ { “stpIf”: { “attributes”: { “id”: “po1001”, “mode”: “trunk” } } } ] } } ] } }] } }’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ { “interfaceEntity”: { “children”: [ { “pcAggrIf”: { “attributes”: { “id”: “po1001” , “isExplicit”: “no”, “pcMode”: “active” },”children”: [ { “pcShadowAggrIf”: {“attributes”: { “id”: “po1001” } } }, { “pcRsMbrIfs”: { “attributes”: { “isMbrForce”: “yes”, “tDn”: “sys/intf/phys-[eth1/20]”} } } ] } } ] } } ] } }’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: {“mode”: “trunk”, “trunkVlans”: “”}}}’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/aggr-[po1001].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0]], ‘driver_result_unique_eth_del2’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “-267”, “nativeVlan”: “”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-267].json’, ‘1.1.1.1’, ”, 1]], ‘driver_result_unique_eth_del1’: [[‘api/mo/sys/intf/phys-[eth1/20].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “-265”, “nativeVlan”: “”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-265].json’, ‘1.1.1.1’, ”, 1]], ‘driver_result_unique_vPC_2switch_del1’: [[‘api/mo/sys/intf/aggr-[po469].json’, ‘1.1.1.1’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “-267”, “nativeVlan”: “”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-267].json’, ‘1.1.1.1’, ”, 1], [‘api/mo/sys/intf/aggr-[po469].json’, ‘2.2.2.2’, ‘{“pcAggrIf”: {“attributes”: { “trunkVlans”: “-267”, “nativeVlan”: “”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-267].json’, ‘2.2.2.2’, ”, 1]], ‘driver_result_unique_2vlan_replay’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”, “nativeVlan”: “vlan-267”}}}’, 0], [‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+265,267”}}}’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0]]}¶
-
-
class
networking_cisco.tests.unit.ml2.drivers.cisco.nexus.test_cisco_nexus_restapi_replay.
TestCiscoNexusRestReplay
(*args, **kwds)¶ Bases:
networking_cisco.tests.unit.ml2.drivers.cisco.nexus.test_cisco_nexus_replay.TestCiscoNexusReplay
Unit tests for Replay of Cisco ML2 Nexus data.
-
setUp
()¶ Sets up mock ncclient, and switch and credentials dictionaries.
-
test_replay_create_fails_if_single_switch_down
(*args, **kwargs)¶
-
test_replay_create_nve_member_failure
(*args, **kwargs)¶
-
test_replay_create_trunk_failure
(*args, **kwargs)¶
-
test_replay_create_vlan_failure
(*args, **kwargs)¶
-
test_replay_create_vlan_failure_during_replay
(*args, **kwargs)¶
-
test_replay_delete_nve_member_failure
(*args, **kwargs)¶
-
test_replay_delete_success_if_switch_down
(*args, **kwargs)¶
-
test_replay_delete_trunk_failure
(*args, **kwargs)¶
-
test_replay_delete_vlan_failure
(*args, **kwargs)¶
-
test_replay_disable_vxlan_feature_failure
(*args, **kwargs)¶
-
test_replay_duplicate_ports
(*args, **kwargs)¶
-
test_replay_duplicate_vlan
(*args, **kwargs)¶
-
test_replay_enable_vxlan_feature_failure
(*args, **kwargs)¶
-
test_replay_get_nexus_type_failure
(*args, **kwargs)¶
-
test_replay_get_nexus_type_failure_two_switches
(*args, **kwargs)¶
-
test_replay_new_port_success_if_one_switch_up
(*args, **kwargs)¶
-
test_replay_no_retry_failure_handling
(*args, **kwargs)¶
-
test_replay_port_success_if_one_switch_restored
(*args, **kwargs)¶
-
test_replay_unique_ports
(*args, **kwargs)¶
-
test_replay_update_fails_if_single_switch_down
(*args, **kwargs)¶
-
test_replay_vlan_batch_failure_during_replay
(*args, **kwargs)¶
-
-
class
networking_cisco.tests.unit.ml2.drivers.cisco.nexus.test_cisco_nexus_restapi_replay.
TestCiscoNexusRestReplayResults
¶ Bases:
networking_cisco.tests.unit.ml2.drivers.cisco.nexus.test_cisco_nexus_base.TestCiscoNexusBaseResults
Unit tests driver results for Cisco ML2 Nexus.
-
test_results
= {‘dupl_vlan_result2_del’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘2.2.2.2’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “-267”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-267].json’, ‘2.2.2.2’, ”, 1], [‘api/mo/sys/intf/phys-[eth1/20].json’, ‘2.2.2.2’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “-267”}}}’, 0]], ‘dupl_vlan_result1_add’: [[‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/phys-[eth1/10].json’, ‘2.2.2.2’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/phys-[eth1/20].json’, ‘2.2.2.2’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”}}}’, 0]], ‘driver_result_unique_init’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “”}}}’, 0]], ‘switch_restore_result_add’: [[‘api/mo.json’, ‘4.4.4.4’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-269”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/phys-[eth1/3].json’, ‘4.4.4.4’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+269”}}}’, 0]], ‘dupl_port_result_replay’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘3.3.3.3’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”}}}’, 0], [‘api/mo.json’, ‘3.3.3.3’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0]], ‘switch_up_result_add’: [[‘api/mo.json’, ‘4.4.4.4’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-269”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/phys-[eth1/3].json’, ‘4.4.4.4’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+269”}}}’, 0]], ‘driver_result_unique_del2’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, None, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “-267”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-267].json’, None, ”, 1]], ‘driver_result_unique_del1’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “-265”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-265].json’, ‘1.1.1.1’, ”, 1]], ‘switch_restore_result_replay’: [[‘api/mo/sys/intf/phys-[eth1/2].json’, ‘5.5.5.5’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+269”}}}’, 0], [‘api/mo.json’, ‘5.5.5.5’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-269”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0]], ‘driver_result_unique_add1’: [[‘api/mo.json’, None, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/phys-[eth1/10].json’, None, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”}}}’, 0]], ‘dupl_vlan_result2_add’: [[‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/phys-[eth1/10].json’, ‘2.2.2.2’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”}}}’, 0], [‘api/mo/sys/intf/phys-[eth1/20].json’, ‘2.2.2.2’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”}}}’, 0]], ‘dupl_vlan_result_replay’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘2.2.2.2’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”}}}’, 0], [‘api/mo/sys/intf/phys-[eth1/20].json’, ‘2.2.2.2’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+267”}}}’, 0], [‘api/mo.json’, ‘2.2.2.2’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0]], ‘driver_result_unique_add2’: [[‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0], [‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+265”}}}’, 0]], ‘switch_up_result_del’: [[‘api/mo/sys/intf/phys-[eth1/3].json’, ‘4.4.4.4’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “-269”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-269].json’, ‘4.4.4.4’, ”, 1]], ‘switch_restore_result_del’: [[‘api/mo/sys/intf/phys-[eth1/3].json’, ‘4.4.4.4’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “-269”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-269].json’, ‘4.4.4.4’, ”, 1], [‘api/mo/sys/intf/phys-[eth1/2].json’, ‘5.5.5.5’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “-269”}}}’, 0], [‘api/mo/sys/bd/bd-[vlan-269].json’, ‘5.5.5.5’, ”, 1]], ‘driver_result_unique_2vlan_replay’: [[‘api/mo/sys/intf/phys-[eth1/10].json’, ‘1.1.1.1’, ‘{“l1PhysIf”: {“attributes”: { “trunkVlans”: “+265,267”}}}’, 0], [‘api/mo.json’, ‘1.1.1.1’, ‘{“topSystem”: { “children”: [ {“bdEntity”: { “children”: [ {“l2BD”: {“attributes”: {“fabEncap”: “vlan-265”, “pcTag”: “1”, “adminSt”: “active”}}}, {“l2BD”: {“attributes”: {“fabEncap”: “vlan-267”, “pcTag”: “1”, “adminSt”: “active”}}}, ]}}]}}’, 0]]}¶
-