*** Settings ***
-Documentation Test suite for RESTCONF Topology
-Suite Setup Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
+Documentation Test suite for 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"
-${key} link
+${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
Get RESTCONF Topology
[Documentation] Get RESTCONF Topology and validate the result.
[Tags] get
+ Wait Until Keyword Succeeds 30s 2s Ensure All Nodes Are In Response ${REST_CONTEXT_1} ${node_list}
${resp} Get session ${REST_CONTEXT_1}
- Should Be Equal As Strings ${resp.status_code} 200
+ Should Be Equal As Strings ${resp.status_code} 200
Log ${resp.content}
- Should Contain ${resp.content} ${topology1}
-
+ Should Contain ${resp.content} ${topology1}
+
List all the links
[Documentation] List all the links in the topology.
[Tags] get
${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}
+ ${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}
+ ${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}
+ ${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}
- ${resp} Get session ${REST_CONTEXT_2}
- Should Be Equal As Strings ${resp.status_code} 200
- ${result} To JSON ${resp.content}
- ${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} ${links}
+ ${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.
[Tags] add
- ${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}
+ ${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} Put session ${REST_CONTEXT_3} data=${body}
+ ${resp} Put session ${REST_CONTEXT_3} data=${body}
Should Be Equal As Strings ${resp.status_code} 200
${resp} Get session ${REST_CONTEXT_3}
Should Be Equal As Strings ${resp.status_code} 200
${link} Get From Dictionary ${result} link
Lists Should be Equal ${link} ${links}
-
Remove a link
[Documentation] Remove a link, list to validate the result.
[Tags] remove
- ${resp} Delete session ${REST_CONTEXT_3}
+ ${resp} Delete session ${REST_CONTEXT_3}
Should Be Equal As Strings ${resp.status_code} 200
${resp} Get session ${REST_CONTEXT_3}
Should Be Equal As Strings ${resp.status_code} 404
+
+*** Keywords ***
+Verify Links
+ [Arguments] ${expected_links}
+ ${resp} 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}