*** Settings *** Documentation Test suite for OVSDB Bridge Domain Suite Setup Create Session session http://${CONTROLLER}:${RESTPORT} auth=${AUTH} headers=${HEADERS} Suite Teardown Delete All Sessions Library SSHLibrary Library Collections Library ../../../libraries/RequestsLibrary.py Library ../../../libraries/Common.py Library ../../../libraries/Topology.py Variables ../../../variables/Variables.py *** Variables *** ${key} node ${REST_CONTEXT_CM} /controller/nb/v2/connectionmanager ${REST_CONTEXT_BD} /controller/nb/v2/networkconfig/bridgedomain *** Test Cases *** List connections [Documentation] Get node connections and validate result [Tags] ovsdb ${topo_nodes} Get Nodes From Topology ${TOPO_TREE_LEVEL} ${resp} Get session ${REST_CONTEXT_CM}/nodes Should Be Equal As Strings ${resp.status_code} 200 ${result} To JSON ${resp.content} ${nodes} Get From Dictionary ${result} ${key} List Should Contain Sublist ${nodes} ${topo_nodes} Connect to mininet [Documentation] Connect to mininet, list the nodes and validate result [Tags] ovsdb ${body} Create Dictionary type OVS id MININET ${resp} Put session ${REST_CONTEXT_CM}/node/MININET/address/${MININET}/port/6644 Should Be Equal As Strings ${resp.status_code} 200 ${result} To JSON ${resp.content} Dictionaries Should Be Equal ${result} ${body} ${resp} Get session ${REST_CONTEXT_CM}/nodes Should Be Equal As Strings ${resp.status_code} 200 ${result} To JSON ${resp.content} ${content} Get From Dictionary ${result} ${key} List Should Contain Value ${content} ${body} Sleep 2 Add bridge s4 [Documentation] Add bridge s4 [Tags] ovsdb ${resp} Post session ${REST_CONTEXT_BD}/bridge/OVS/MININET/s4 data={} Should Be Equal As Strings ${resp.status_code} 201 Delete s1 ports [Documentation] Delete s1 connected ports [Tags] ovsdb ${resp} Delete session ${REST_CONTEXT_BD}/port/OVS/MININET/s1/s1-eth1 Should Be Equal As Strings ${resp.status_code} 200 ${resp} Delete session ${REST_CONTEXT_BD}/port/OVS/MININET/s1/s1-eth2 Should Be Equal As Strings ${resp.status_code} 200 ${resp} Delete session ${REST_CONTEXT_BD}/port/OVS/MININET/s2/s2-eth3 Should Be Equal As Strings ${resp.status_code} 200 ${resp} Delete session ${REST_CONTEXT_BD}/port/OVS/MININET/s3/s3-eth3 Should Be Equal As Strings ${resp.status_code} 200 Add s4 ports [Documentation] Add s4 connected ports [Tags] ovsdb ${resp} Post session ${REST_CONTEXT_BD}/port/OVS/MININET/s4/s4-eth1 ... data={"type":"patch", "CUSTOM":{"peer":"s2-eth3"}} Should Be Equal As Strings ${resp.status_code} 201 ${resp} Post session ${REST_CONTEXT_BD}/port/OVS/MININET/s4/s4-eth2 ... data={"type":"patch", "CUSTOM":{"peer":"s3-eth3"}} Should Be Equal As Strings ${resp.status_code} 201 ${resp} Post session ${REST_CONTEXT_BD}/port/OVS/MININET/s2/s2-eth3 ... data={"type":"patch", "CUSTOM":{"peer":"s4-eth1"}} Should Be Equal As Strings ${resp.status_code} 201 ${resp} Post session ${REST_CONTEXT_BD}/port/OVS/MININET/s3/s3-eth3 ... data={"type":"patch", "CUSTOM":{"peer":"s4-eth2"}} Should Be Equal As Strings ${resp.status_code} 201 Ping h1 to h4 [Documentation] Ping h1 to h4, verify no packet loss [Tags] ovsdb Sleep 5 Write h1 ping -w 10 h4 Sleep 10 Write h4 ping -w 10 h1 Sleep 10 ${result} Read Should Contain ${result} 64 bytes Delete s4 ports [Documentation] Delete s4 connected ports [Tags] ovsdb ${resp} Delete session ${REST_CONTEXT_BD}/port/OVS/MININET/s4/s4-eth1 Should Be Equal As Strings ${resp.status_code} 200 ${resp} Delete session ${REST_CONTEXT_BD}/port/OVS/MININET/s4/s4-eth2 Should Be Equal As Strings ${resp.status_code} 200 ${resp} Delete session ${REST_CONTEXT_BD}/port/OVS/MININET/s2/s2-eth3 Should Be Equal As Strings ${resp.status_code} 200 ${resp} Delete session ${REST_CONTEXT_BD}/port/OVS/MININET/s3/s3-eth3 Should Be Equal As Strings ${resp.status_code} 200 Add s1 ports [Documentation] Add s1 connected ports [Tags] ovsdb ${resp} Post session ${REST_CONTEXT_BD}/port/OVS/MININET/s1/s1-eth1 ... data={"type":"patch", "CUSTOM":{"peer":"s2-eth3"}} Should Be Equal As Strings ${resp.status_code} 201 ${resp} Post session ${REST_CONTEXT_BD}/port/OVS/MININET/s1/s1-eth2 ... data={"type":"patch", "CUSTOM":{"peer":"s3-eth3"}} Should Be Equal As Strings ${resp.status_code} 201 ${resp} Post session ${REST_CONTEXT_BD}/port/OVS/MININET/s2/s2-eth3 ... data={"type":"patch", "CUSTOM":{"peer":"s1-eth1"}} Should Be Equal As Strings ${resp.status_code} 201 ${resp} Post session ${REST_CONTEXT_BD}/port/OVS/MININET/s3/s3-eth3 ... data={"type":"patch", "CUSTOM":{"peer":"s1-eth2"}} Should Be Equal As Strings ${resp.status_code} 201 Delete bridge s4 [Documentation] Delete bridge s4 [Tags] ovsdb ${resp} Delete session ${REST_CONTEXT_BD}/bridge/OVS/MININET/s4 Should Be Equal As Strings ${resp.status_code} 200 Disconnect mininet [Documentation] Disconnect mininet, list the nodes and validate result [Tags] ovsdb ${body} Create Dictionary type OVS id MININET ${resp} Delete session ${REST_CONTEXT_CM}/node/OVS/MININET Should Be Equal As Strings ${resp.status_code} 200 ${resp} Get session ${REST_CONTEXT_CM}/nodes Should Be Equal As Strings ${resp.status_code} 200 ${result} To JSON ${resp.content} ${content} Get From Dictionary ${result} ${key} List Should Not Contain Value ${content} ${body}