Remove all test references to boron
[integration/test.git] / csit / libraries / SxpLib.robot
index 3a9b22f19db276a8242f996a6f0ab240fe2ebd68..f80d370e36e41d62e639aa327e8dff5056cc6e44 100644 (file)
@@ -31,8 +31,10 @@ Post To Controller
 
 Add Node
     [Arguments]    ${node}    ${password}=${EMPTY}    ${version}=version4    ${port}=64999    ${session}=session    ${ip}=${EMPTY}
+    ...    ${ssl_stores}=${EMPTY}    ${retry_open_timer}=1
     [Documentation]    Add node via RPC to ODL
     ${DATA}    Add Node Xml    ${node}    ${port}    ${password}    ${version}    ${ip}
+    ...    keystores=${ssl_stores}    retry_open_timer=${retry_open_timer}
     Post To Controller    ${session}    add-node    ${DATA}
 
 Delete Node
@@ -43,10 +45,10 @@ Delete Node
 
 Add Connection
     [Arguments]    ${version}    ${mode}    ${ip}    ${port}    ${node}=127.0.0.1    ${password}=${EMPTY}
-    ...    ${session}=session    ${domain}=global
+    ...    ${session}=session    ${domain}=global    ${security_mode}=${EMPTY}
     [Documentation]    Add connection via RPC to node
     ${DATA}    Add Connection Xml    ${version}    ${mode}    ${ip}    ${port}    ${node}
-    ...    ${password}    ${domain}
+    ...    ${password}    ${domain}    security_mode=${security_mode}
     Post To Controller    ${session}    add-connection    ${DATA}
 
 Get Connections
@@ -88,21 +90,16 @@ Get Bindings
     [Arguments]    ${node}=127.0.0.1    ${session}=session    ${domain}=global    ${scope}=all
     [Documentation]    Gets all binding via RPC from Master DB of node
     ${DATA}    Get Bindings From Node Xml    ${node}    ${scope}    ${domain}
-    ${resp1}    CompareStream.Run_Keyword_If_At_Least_Boron    TemplatedRequests.Post_To_Uri    ${REST_CONTEXT}:get-node-bindings    data=${DATA}    accept=${ACCEPT_JSON}    content_type=${HEADERS_XML}
-    ...    session=${session}
-    ${resp2}    CompareStream.Run_Keyword_If_Less_Than_Boron    TemplatedRequests.Get_As_Json_From_Uri    /restconf/operational/network-topology:network-topology/topology/sxp/node/${node}/master-database/    session=${session}
-    ${resp}    CompareStream.Set_Variable_If_At_Least_Boron    ${resp1}    ${resp2}
+    ${resp}    TemplatedRequests.Post_To_Uri    ${REST_CONTEXT}:get-node-bindings    data=${DATA}    accept=${ACCEPT_JSON}    content_type=${HEADERS_XML}    session=${session}
     [Return]    ${resp}
 
 Clean Bindings
     [Arguments]    ${node}=127.0.0.1    ${session}=session    ${domain}=global
     [Documentation]    Delete all bindings via RPC from Master DB of node
     ${resp}    Get Bindings    ${node}    ${session}    ${domain}    local
-    @{bindings}    CompareStream.Run_Keyword_If_At_Least_Else    boron    Parse Bindings    ${resp}
-    ...    ELSE    Parse Prefix Groups    ${resp}    local
+    @{bindings}    Parse Bindings    ${resp}
     : FOR    ${binding}    IN    @{bindings}
-    \    CompareStream.Run_Keyword_If_At_Least_Boron    Clean Binding Default    ${binding}    ${node}    ${session}    ${domain}
-    \    CompareStream.Run_Keyword_If_At_Most_Beryllium    Clean Binding At Most Be    ${binding}    ${node}    ${session}    ${domain}
+    \    Clean Binding Default    ${binding}    ${node}    ${session}    ${domain}
 
 Clean Binding Default
     [Arguments]    ${binding}    ${node}    ${session}    ${domain}
@@ -118,10 +115,7 @@ Clean Binding
     [Arguments]    ${sgt}    ${prefixes}    ${node}    ${session}    ${domain}=global
     [Documentation]    Used for nester FOR loop
     : FOR    ${prefix}    IN    @{prefixes}
-    \    CompareStream.Run_Keyword_If_At_Least_Boron    Delete Binding Default    ${sgt}    ${prefix}    ${node}    ${domain}
-    \    ...    ${session}
-    \    CompareStream.Run_Keyword_If_At_Most_Beryllium    Delete Binding Be    ${sgt}    ${prefix}    ${node}    ${domain}
-    \    ...    ${session}
+    \    Delete Binding Default    ${sgt}    ${prefix}    ${node}    ${domain}    ${session}
 
 Update Binding
     [Arguments]    ${sgtOld}    ${prefixOld}    ${sgtNew}    ${prefixNew}    ${node}=127.0.0.1    ${session}=session
@@ -204,17 +198,13 @@ Delete Domain Filter
 Should Contain Binding
     [Arguments]    ${resp}    ${sgt}    ${prefix}    ${db_source}=any
     [Documentation]    Tests if data contains specified binding
-    ${out}    CompareStream.Run_Keyword_If_At_Least_Else    boron    Find Binding    ${resp}    ${sgt}    ${prefix}
-    ...    ELSE    Find Binding Legacy    ${resp}    ${sgt}    ${prefix}    ${db_source}
-    ...    add
+    ${out}    Find Binding    ${resp}    ${sgt}    ${prefix}
     Should Be True    ${out}    Doesn't have ${sgt} ${prefix}
 
 Should Not Contain Binding
     [Arguments]    ${resp}    ${sgt}    ${prefix}    ${db_source}=any
     [Documentation]    Tests if data doesn't contains specified binding
-    ${out}    CompareStream.Run_Keyword_If_At_Least_Else    boron    Find Binding    ${resp}    ${sgt}    ${prefix}
-    ...    ELSE    Find Binding Legacy    ${resp}    ${sgt}    ${prefix}    ${db_source}
-    ...    add
+    ${out}    Find Binding    ${resp}    ${sgt}    ${prefix}
     Should Not Be True    ${out}    Should't have ${sgt} ${prefix}
 
 Should Contain Connection
@@ -231,6 +221,30 @@ Should Not Contain Connection
     ...    ${state}
     Should Not Be True    ${out}    Shouldn't have ${ip}:${port} ${mode} ${version}
 
+Bindings Should Contain
+    [Arguments]    ${sgt}    ${prefix}    ${db_source}=any
+    [Documentation]    Retrieves bindings and verifies they contain given binding
+    ${resp}    Get Bindings
+    Should Contain Binding    ${resp}    ${sgt}    ${prefix}    ${db_source}
+
+Bindings Should Not Contain
+    [Arguments]    ${sgt}    ${prefix}    ${db_source}=any
+    [Documentation]    Retrieves bindings and verifies they do not contain given binding
+    ${resp}    Get Bindings
+    Should Not Contain Binding    ${resp}    ${sgt}    ${prefix}    ${db_source}
+
+Connections Should Contain
+    [Arguments]    ${ip}    ${port}    ${mode}    ${version}    ${state}=none
+    [Documentation]    Retrieves connections and verifies they contain given connection
+    ${resp}    Get Connections
+    Should Contain Connection    ${resp}    ${ip}    ${port}    ${mode}    ${version}    ${state}
+
+Connections Should Not Contain
+    [Arguments]    ${ip}    ${port}    ${mode}    ${version}    ${state}=none
+    [Documentation]    Retrieves connections and verifies they do not contain given connection
+    ${resp}    Get Connections
+    Should Not Contain Connection    ${resp}    ${ip}    ${port}    ${mode}    ${version}    ${state}
+
 Setup Topology Complex
     [Arguments]    ${version}=version4    ${PASSWORD}=none
     : FOR    ${node}    IN RANGE    2    6
@@ -255,6 +269,13 @@ Verify Snapshot Was Pushed
     ${output}    Run Command On Controller    ${ODL_SYSTEM_IP}    cat ${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log* | grep -c 'Successfully pushed configuration snapshot.*${snapshot_string}'
     Should Not Be Equal As Strings    ${output}    0
 
+Prepare SSH Keys On Karaf
+    [Arguments]    ${system}=${ODL_SYSTEM_IP}    ${user}=${ODL_SYSTEM_USER}    ${passwd}=${ODL_SYSTEM_PASSWORD}    ${prompt}=${ODL_SYSTEM_PROMPT}    ${system_workspace}=${WORKSPACE}
+    [Documentation]    Executes client login on karaf VM in so that SSH keys will be generated by defualt karaf callback,
+    ...    expecting echo affter succesfull login. TODO: test on multiple runs if this aproach reduce SSHExceptions in robotframework
+    ${stdout}    Run Command On Remote System    ${system}    ${system_workspace}${/}${BUNDLEFOLDER}/bin/client echo READY    ${user}    ${passwd}    prompt=${prompt}
+    Should Match    "${stdout}"    "*READY"
+
 Setup SXP Session
     [Arguments]    ${session}=session    ${controller}=${ODL_SYSTEM_IP}
     [Documentation]    Create session to Controller
@@ -326,8 +347,9 @@ Setup SXP Environment
     Setup SXP Session
     : FOR    ${num}    IN RANGE    1    ${node_range}
     \    ${ip}    Get Ip From Number    ${num}
-    \    CompareStream.Run_Keyword_If_At_Least_Boron    Add Node    ${ip}
-    \    CompareStream.Run_Keyword_If_At_Least_Boron    Wait Until Keyword Succeeds    20    1    Check Node Started    ${ip}
+    \    ${rnd_retry_time} =    Evaluate    random.randint(1, 10)    modules=random
+    \    Add Node    ${ip}    retry_open_timer=${rnd_retry_time}
+    \    Wait Until Keyword Succeeds    20    1    Check Node Started    ${ip}
 
 Check Node Started
     [Arguments]    ${node}    ${port}=64999    ${system}=${ODL_SYSTEM_IP}    ${session}=session    ${ip}=${node}
@@ -342,5 +364,24 @@ Clean SXP Environment
     [Documentation]    Destroy created sessions
     : FOR    ${num}    IN RANGE    1    ${node_range}
     \    ${ip}    Get Ip From Number    ${num}
-    \    CompareStream.Run_Keyword_If_At_Least_Boron    Delete Node    ${ip}
+    \    Delete Node    ${ip}
     Clean SXP Session
+
+Get Routing Configuration From Controller
+    [Arguments]    ${session}
+    [Documentation]    Get Routing configuration from config DS
+    ${resp}    RequestsLibrary.Get Request    ${session}    /restconf/config/sxp-cluster-route:sxp-cluster-route/    headers=${ACCEPT_XML}
+    ${data}    Set Variable If    "${resp.status_code}" == "200"    ${resp.content}    ${EMPTY}
+    [Return]    ${data}
+
+Put Routing Configuration To Controller
+    [Arguments]    ${DATA}    ${session}
+    [Documentation]    Put Routing configuration to Config DS
+    ${resp}    RequestsLibrary.Put Request    ${session}    /restconf/config/sxp-cluster-route:sxp-cluster-route/    data=${DATA}    headers=${HEADERS_XML}
+    Should Match    "${resp.status_code}"    "20?"
+
+Clean Routing Configuration To Controller
+    [Arguments]    ${session}
+    [Documentation]    Delete Routing configuration from Config DS
+    ${resp}    RequestsLibrary.Get Request    ${session}    /restconf/config/sxp-cluster-route:sxp-cluster-route/    headers=${ACCEPT_XML}
+    Run Keyword If    "${resp.status_code}" == "200"    RequestsLibrary.Delete Request    ${session}    /restconf/config/sxp-cluster-route:sxp-cluster-route/