Tidied new and updated test suites
[integration/test.git] / csit / libraries / SxpLib.robot
index 20d68315e1201a5649c5608a27871bdbffbbebdf..e4d755bd8ab272cd9fc4a801a4ca3a473e3e68b4 100644 (file)
@@ -1,5 +1,6 @@
 *** Settings ***
 Documentation     Library containing Keywords used for SXP testing
+Library           Collections
 Library           RequestsLibrary
 Library           SSHLibrary
 Library           String
@@ -14,17 +15,18 @@ ${REST_CONTEXT}    /restconf/operations/sxp-controller
 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}
 
@@ -32,7 +34,7 @@ Delete Connections
     [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
@@ -43,18 +45,25 @@ 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}
 
@@ -75,7 +84,7 @@ Clean Binding
 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}
 
@@ -83,14 +92,59 @@ Update Binding
     [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
@@ -135,6 +189,24 @@ Should Not Contain Connection
     ...    ${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