X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=tools%2FRobot_Tool%2Fsuites%2Fha%2F030__two_controller_see_flow.txt;fp=tools%2FRobot_Tool%2Fsuites%2Fha%2F030__two_controller_see_flow.txt;h=5755dc57a3df7bbb6cde73a9670dabac9fdc209b;hb=59e81c38620fa1b61e15771191e35771450b9499;hp=0000000000000000000000000000000000000000;hpb=072f6e3a8d1bdf8f4c663843589c22d93ba07791;p=integration%2Ftest.git diff --git a/tools/Robot_Tool/suites/ha/030__two_controller_see_flow.txt b/tools/Robot_Tool/suites/ha/030__two_controller_see_flow.txt new file mode 100644 index 0000000000..5755dc57a3 --- /dev/null +++ b/tools/Robot_Tool/suites/ha/030__two_controller_see_flow.txt @@ -0,0 +1,92 @@ +*** Settings *** +Documentation ODL controller clustering test case using the gherkin syntax. +... +... This test has a workflow similar to the keyword-driven +... examples. The difference is that the keywords use higher +... abstraction level and their arguments are embedded into +... the keyword names. +... +... This kind of _gherkin_ syntax has been made popular by +... [http://cukes.info|Cucumber]. It works well especially when +... tests act as examples that need to be easily understood also +... by the business people. +Resource resource.txt +Library Selenium2Library +Library SSHLibrary +Library Collections +Library RequestsLibrary +Library ../../libraries/Common.py +Variables ../../variables/Variables.py +Suite Teardown Delete All Sessions + +*** Test Cases *** +The installed flow can be seen in a cluster of two controllers + Given C1 a controller in cluster of two controllers + And C2 a controller in cluster of two controllers + When a flow is installed in a bridge + Then C1 see the flow + And C2 see the flow + + +*** Keywords *** +C1 a controller in cluster of two controllers +# Open Connection ${Controller1_IP} prompt=> +# Login ${VM USERNAME} ${VM PASSWORD} +# Write cd controller-base/opendaylight +# Write sudo ./run.sh -Dsupernodes=${Controller1_IP}:${Controller2_IP} -start + Open Connection ${HOST} + Login ${VM USERNAME} ${VM PASSWORD} + ${stdout}= Execute Command sudo ovs-vsctl show + Should Contain X Times ${stdout} Controller "tcp:${CONTROLLER1}" 3 + + + +C2 a controller in cluster of two controllers +# Open Connection ${Controller2_IP} prompt=> +# Login ${VM USERNAME} ${VM PASSWORD} +# Write cd controller-base/opendaylight +# Write sudo ./run.sh -Dsupernodes=${Controller1_IP}:${Controller2_IP} -start + Open Connection ${HOST} + Login ${VM USERNAME} ${VM PASSWORD} + ${stdout}= Execute Command sudo ovs-vsctl show + Should Contain X Times ${stdout} Controller "tcp:${CONTROLLER2}" 3 + + +a flow is installed in a bridge + ${node} Create Dictionary type OF id ${node_id} + ${actions} Create List OUTPUT=1 + ${body} Create Dictionary name ${name} installInHw true node + ... ${node} priority 995 etherType 0x800 nwDst + ... 10.0.0.1/32 actions ${actions} + ${headers} Create Dictionary Content-Type application/json + Create Session session http://${Controller1_IP}:8080 headers=${headers} auth=${auth} + ${resp} Put session ${REST_CONTEXT}/${CONTAINER}/node/OF/${node_id}/staticFlow/${name} data=${body} + Should Be Equal As Strings ${resp.status_code} 201 Response status code error + ${resp} Get session ${REST_CONTEXT}/${CONTAINER} + Should Be Equal As Strings ${resp.status_code} 200 Response status code error + ${result} To JSON ${resp.content} + ${content} Get From Dictionary ${result} ${key} + List Should Contain Value ${content} ${body} + + +C1 see the flow + ${headers} Create Dictionary Content-Type application/json + Create Session session http://${Controller1_IP}:8080 headers=${headers} auth=${auth} + ${resp} Get session ${REST_CONTEXT_2} + Should Be Equal As Strings ${resp.status_code} 200 Response status code error + ${result} To JSON ${resp.content} + ${content} Get From Dictionary ${result} actions + List Should Contain Value ${content} OUTPUT=1 + + +C2 see the flow + ${headers} Create Dictionary Content-Type application/json + Create Session session http://${Controller2_IP}:8080 headers=${headers} auth=${auth} + ${resp} Get session ${REST_CONTEXT_2} + Should Be Equal As Strings ${resp.status_code} 200 Response status code error + ${result} To JSON ${resp.content} + ${content} Get From Dictionary ${result} actions + List Should Contain Value ${content} OUTPUT=1 + + +