X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=test%2Fcsit%2Fsuites%2Fopenflowplugin%2FMD_SAL_NSF_OF13%2F020__restconf_topology.robot;fp=test%2Fcsit%2Fsuites%2Fopenflowplugin%2FMD_SAL_NSF_OF13%2F020__restconf_topology.robot;h=f6d3f60a83c085516dad5f55fb1436c53f9c15a1;hb=208af5e2c4f97a698924594b44dcf2fc69e501ee;hp=0000000000000000000000000000000000000000;hpb=daed9390c6117befe8e8169629a31522feb5b4ad;p=integration%2Ftest.git diff --git a/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/020__restconf_topology.robot b/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/020__restconf_topology.robot new file mode 100644 index 0000000000..f6d3f60a83 --- /dev/null +++ b/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/020__restconf_topology.robot @@ -0,0 +1,82 @@ +*** Settings *** +Documentation Test suite RESTCONF Topology +Suite Setup Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} +Suite Teardown Delete All Sessions +Library Collections +Library ../../../libraries/RequestsLibrary.py +Library ../../../libraries/Common.py +Variables ../../../variables/Variables.py +Resource ../../../libraries/Utils.txt + +*** Variables *** +${topology1} "flow:1" +${node1} "openflow:1" +${node2} "openflow:2" +${node3} "openflow:3" +@{node_list} openflow:1 openflow:2 openflow:3 +${key} link +${REST_CONTEXT_1} /restconf/operational/network-topology:network-topology +${REST_CONTEXT_2} /restconf/operational/network-topology:network-topology/topology/flow:1 +${REST_CONTEXT_3} /restconf/config/network-topology:network-topology/topology/flow:1/link/userlink + +*** Test Cases *** +Get RESTCONF Topology + [Documentation] Get RESTCONF Topology and validate the result. + Wait Until Keyword Succeeds 30s 2s Ensure All Nodes Are In Response ${REST_CONTEXT_1} ${node_list} + ${resp} RequestsLibrary.Get session ${REST_CONTEXT_1} + Log ${resp.content} + Should Be Equal As Strings ${resp.status_code} 200 + Should Contain ${resp.content} ${topology1} + +List all the links + [Documentation] List all the links in the topology. + ${body1} Create Dictionary dest-node=openflow:1 dest-tp=openflow:1:2 + ${body2} Create Dictionary source-node=openflow:3 source-tp=openflow:3:3 + ${link2} Create Dictionary link-id=openflow:3:3 destination=${body1} source=${body2} + ${body1} Create Dictionary dest-node=openflow:1 dest-tp=openflow:1:1 + ${body2} Create Dictionary source-node=openflow:2 source-tp=openflow:2:3 + ${link1} Create Dictionary link-id=openflow:2:3 destination=${body1} source=${body2} + ${body1} Create Dictionary dest-node=openflow:3 dest-tp=openflow:3:3 + ${body2} Create Dictionary source-node=openflow:1 source-tp=openflow:1:2 + ${link4} Create Dictionary link-id=openflow:1:2 destination=${body1} source=${body2} + ${body1} Create Dictionary dest-node=openflow:2 dest-tp=openflow:2:3 + ${body2} Create Dictionary source-node=openflow:1 source-tp=openflow:1:1 + ${link3} Create Dictionary link-id=openflow:1:1 destination=${body1} source=${body2} + ${links} Create List ${link1} ${link2} ${link3} ${link4} + Wait Until Keyword Succeeds 30s 2s Verify Links ${links} + +Add a link + [Documentation] Add a link, list to validate the result. + ${body1} Create Dictionary dest-node=openflow:3 dest-tp=openflow:3:1 + ${body2} Create Dictionary source-node=openflow:2 source-tp=openflow:2:1 + ${body3} Create Dictionary link-id=userlink destination=${body1} source=${body2} + ${links} Create List ${body3} + ${body} Create Dictionary link=${links} + ${resp} RequestsLibrary.Put session ${REST_CONTEXT_3} data=${body} + Should Be Equal As Strings ${resp.status_code} 200 + ${resp} RequestsLibrary.Get session ${REST_CONTEXT_3} + Should Be Equal As Strings ${resp.status_code} 200 + ${result} To JSON ${resp.content} + ${link} Get From Dictionary ${result} link + Lists Should be Equal ${link} ${links} + +Remove a link + [Documentation] Remove a link, list to validate the result. + ${resp} RequestsLibrary.Delete session ${REST_CONTEXT_3} + Should Be Equal As Strings ${resp.status_code} 200 + ${resp} RequestsLibrary.Get session ${REST_CONTEXT_3} + Should Be Equal As Strings ${resp.status_code} 404 + +*** Keywords *** +Verify Links + [Arguments] ${expected_links} + ${resp} RequestsLibrary.Get session ${REST_CONTEXT_2} + Log ${resp.content} + Should Be Equal As Strings ${resp.status_code} 200 + ${result} To JSON ${resp.content} + Log ${result} + ${content} Get From Dictionary ${result} topology + ${topology} Get From List ${content} 0 + ${link} Get From Dictionary ${topology} link + Sort List ${link} + Lists Should be Equal ${link} ${expected_links}