*** Settings ***
Documentation Library containing Keywords used for SXP testing
+Library Collections
Library RequestsLibrary
Library SSHLibrary
Library String
Add Connection
[Arguments] ${version} ${mode} ${ip} ${port} ${node}=127.0.0.1 ${password}=none
... ${session}=session
- [Documentation] Add connection via RCP to node
+ [Documentation] Add connection via RPC to node
${DATA} Add Connection Xml ${version} ${mode} ${ip} ${port} ${node}
... ${password}
- ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:add-connection data=${DATA} headers=${HEADERS_XML}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:add-connection data=${DATA} headers=${HEADERS_XML}
+ LOG ${resp}
Should be Equal As Strings ${resp.status_code} 200
Get Connections
[Arguments] ${node}=127.0.0.1 ${session}=session
- [Documentation] Gets all connections vie RPC from node
+ [Documentation] Gets all connections via RPC from node
${DATA} Get Connections From Node Xml ${node}
- ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:get-connections data=${DATA} headers=${HEADERS_XML}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:get-connections data=${DATA} headers=${HEADERS_XML}
Should be Equal As Strings ${resp.status_code} 200
[Return] ${resp.content}
[Arguments] ${ip} ${port} ${node}=127.0.0.1 ${session}=session
[Documentation] Delete connection via RPC from node
${DATA} Delete Connections Xml ${ip} ${port} ${node}
- ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:delete-connection data=${DATA} headers=${HEADERS_XML}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:delete-connection data=${DATA} headers=${HEADERS_XML}
Should be Equal As Strings ${resp.status_code} 200
Clean Connections
: FOR ${connection} IN @{connections}
\ delete connections ${connection['peer-address']} ${connection['tcp-port']} ${node} ${session}
+Verify Connection
+ [Arguments] ${version} ${mode} ${ip} ${port}=64999 ${node}=127.0.0.1 ${state}=on
+ [Documentation] Verify that connection is ON
+ ${resp} Get Connections ${node}
+ Should Contain Connection ${resp} ${ip} ${port} ${mode} ${version} ${state}
+
Add Binding
[Arguments] ${sgt} ${prefix} ${node}=127.0.0.1 ${session}=session
[Documentation] Add binding via RPC to Master DB of node
${DATA} Add Entry Xml ${sgt} ${prefix} ${node}
- ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:add-entry data=${DATA} headers=${HEADERS_XML}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:add-entry data=${DATA} headers=${HEADERS_XML}
+ LOG ${resp.content}
Should be Equal As Strings ${resp.status_code} 200
Get Bindings
[Arguments] ${node}=127.0.0.1 ${session}=session
[Documentation] Gets all binding via RPC from Master DB of node
${DATA} Get Bindings From Node Xml ${node}
- ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:get-node-bindings data=${DATA} headers=${HEADERS_XML}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:get-node-bindings data=${DATA} headers=${HEADERS_XML}
Should be Equal As Strings ${resp.status_code} 200
[Return] ${resp.content}
Get Bindings Master Database
[Arguments] ${node}=127.0.0.1 ${session}=session
[Documentation] Gets content of Master DB from node
- ${resp} RequestsLibrary.Get ${session} /restconf/operational/network-topology:network-topology/topology/sxp/node/${node}/master-database/ headers=${HEADERS_XML}
+ ${resp} Get Request ${session} /restconf/operational/network-topology:network-topology/topology/sxp/node/${node}/master-database/ headers=${HEADERS_XML}
Should be Equal As Strings ${resp.status_code} 200
[Return] ${resp.content}
[Arguments] ${sgtOld} ${prefixOld} ${sgtNew} ${prefixNew} ${node}=127.0.0.1 ${session}=session
[Documentation] Updates value of binding via RPC in Master DB of node
${DATA} Update Binding Xml ${sgtOld} ${prefixOld} ${sgtNew} ${prefixNew} ${node}
- ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:update-entry data=${DATA} headers=${HEADERS_XML}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:update-entry data=${DATA} headers=${HEADERS_XML}
Should be Equal As Strings ${resp.status_code} 200
Delete Binding
[Arguments] ${sgt} ${prefix} ${node}=127.0.0.1 ${session}=session
[Documentation] Delete binding via RPC from Master DB of node
${DATA} Delete Binding Xml ${sgt} ${prefix} ${node}
- ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:delete-entry data=${DATA} headers=${HEADERS_XML}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:delete-entry data=${DATA} headers=${HEADERS_XML}
+ Should be Equal As Strings ${resp.status_code} 200
+
+Add PeerGroup
+ [Arguments] ${name} ${peers}= ${node}=127.0.0.1 ${session}=session
+ [Documentation] Adds new PeerGroup via RPC to Node
+ ${DATA} Add Peer Group Xml ${name} ${peers} ${node}
+ LOG ${DATA}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:add-peer-group data=${DATA} headers=${HEADERS_XML}
+ Should be Equal As Strings ${resp.status_code} 200
+
+Delete Peer Group
+ [Arguments] ${name} ${node}=127.0.0.1 ${session}=session
+ [Documentation] Delete PeerGroup via RPC from Node
+ ${DATA} Delete Peer Group Xml ${name} ${node}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:delete-peer-group data=${DATA} headers=${HEADERS_XML}
+ Should be Equal As Strings ${resp.status_code} 200
+
+Get Peer Groups
+ [Arguments] ${node}=127.0.0.1 ${session}=session
+ [Documentation] Gets all PeerGroups via RPC from node
+ ${DATA} Get Peer Groups From Node Xml ${node}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:get-peer-groups data=${DATA} headers=${HEADERS_XML}
+ Should be Equal As Strings ${resp.status_code} 200
+ [Return] ${resp.content}
+
+Clean Peer Groups
+ [Arguments] ${node}=127.0.0.1 ${session}=session
+ [Documentation] Delete all PeerGroups via RPC from node
+ ${resp} Get Peer Groups ${node} ${session}
+ @{prefixes} Parse Peer Groups ${resp}
+ : FOR ${group} IN @{prefixes}
+ \ Delete Peer Group ${group['name']} ${node} ${session}
+
+Add Filter
+ [Arguments] ${name} ${type} ${entries} ${node}=127.0.0.1 ${session}=session
+ [Documentation] Add Filter via RPC from Node
+ ${DATA} Add Filter Xml ${name} ${type} ${entries} ${node}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:add-filter data=${DATA} headers=${HEADERS_XML}
+ Should be Equal As Strings ${resp.status_code} 200
+
+Delete Filter
+ [Arguments] ${name} ${type} ${node}=127.0.0.1 ${session}=session
+ [Documentation] Delete Filter via RPC from Node
+ ${DATA} Delete Filter Xml ${name} ${type} ${node}
+ ${resp} Post Request ${session} ${REST_CONTEXT}:delete-filter data=${DATA} headers=${HEADERS_XML}
Should be Equal As Strings ${resp.status_code} 200
Should Contain Binding
... ${state}
Should Not Be True ${out} Shouldn't have ${ip}:${port} ${mode} ${version}
+Setup Topology Complex
+ [Arguments] ${version}=version4 ${PASSWORD}=none
+ : FOR ${node} IN RANGE 2 6
+ \ Add Connection ${version} both 127.0.0.1 64999 127.0.0.${node}
+ \ ... ${PASSWORD}
+ \ Add Connection ${version} both 127.0.0.${node} 64999 127.0.0.1
+ \ ... ${PASSWORD}
+ \ Wait Until Keyword Succeeds 15 4 Verify Connection ${version} both
+ \ ... 127.0.0.${node}
+ \ Add Binding ${node}0 10.10.10.${node}0/32 127.0.0.${node}
+ \ Add Binding ${node}0 10.10.${node}0.0/24 127.0.0.${node}
+ \ Add Binding ${node}0 10.${node}0.0.0/16 127.0.0.${node}
+ \ Add Binding ${node}0 ${node}0.0.0.0/8 127.0.0.${node}
+ Add Binding 10 10.10.10.10/32 127.0.0.1
+ Add Binding 10 10.10.10.0/24 127.0.0.1
+ Add Binding 10 10.10.0.0/16 127.0.0.1
+ Add Binding 10 10.0.0.0/8 127.0.0.1
+
Setup SXP Environment
[Documentation] Create session to Controller
Verify Feature Is Installed odl-sxp-all
- Create Session session url=http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
+ Create Session session url=http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
Wait Until Keyword Succeeds 15 3 Get Bindings Master Database
Clean SXP Environment