Migrate Get Requests invocations(libraries)
[integration/test.git] / csit / suites / openflowplugin / Reconciliation / 010_Group_Flows.robot
index 906e230a1fcdaf2b536168bf9d33e979fed2e641..8b019d6db45085ae4c438a557d09e88795b62455 100644 (file)
@@ -1,40 +1,58 @@
 *** Settings ***
-Documentation     Test reconciliation of chained groups and flows after switch connection and controller are restarted.
-Suite Setup       Initialization Phase
-Suite Teardown    Final Phase
-Library           RequestsLibrary
-Resource          ../../../libraries/ClusterManagement.robot
-Resource          ../../../libraries/TemplatedRequests.robot
-Resource          ../../../libraries/MininetKeywords.robot
-Resource          ../../../libraries/FlowLib.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../variables/Variables.robot
+Documentation       Test reconciliation of chained groups and flows after switch connection and controller are restarted.
+
+Library             RequestsLibrary
+Resource            ../../../libraries/ClusterManagement.robot
+Resource            ../../../libraries/TemplatedRequests.robot
+Resource            ../../../libraries/MininetKeywords.robot
+Resource            ../../../libraries/FlowLib.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../variables/Variables.robot
+Resource            ../../../variables/openflowplugin/Variables.robot
+
+Suite Setup         Initialization Phase
+Suite Teardown      Final Phase
+
 
 *** Variables ***
-${SWITCHES}       ${10}
-${ITER}           ${100}
-${VAR_DIR}        ${CURDIR}/../../../variables/openflowplugin
+${SWITCHES}     3
+${ITER}         100
+${VAR_DIR}      ${CURDIR}/../../../variables/openflowplugin
 
-*** Test Cases ***
-Enable Stale Flow Entry
-    [Documentation]    Check Flows after mininet starts.
-    # Stale flows/groups feature is only available in Boron onwards.
-    CompareStream.Run Keyword If At Least Boron    TemplatedRequests.Put As Json Templated    folder=${VAR_DIR}/frm-config    mapping={"STALE":"true"}    session=session
 
+*** Test Cases ***
 Add Group 1 In Every Switch
     [Documentation]    Add ${ITER} groups of type 1 in every switch.
-    : FOR    ${switch}    IN RANGE    1    ${SWITCHES+1}
-    \    TemplatedRequests.Post As Json Templated    folder=${VAR_DIR}/add-group-1    mapping={"SWITCH":"${switch}"}    session=session    iterations=${ITER}
+    FOR    ${switch}    IN RANGE    1    ${switches+1}
+        &{mapping}    BuiltIn.Create_Dictionary    NODE=openflow:${switch}
+        TemplatedRequests.Post As Json Templated
+        ...    folder=${VAR_DIR}/add-group-1
+        ...    mapping=${mapping}
+        ...    session=session
+        ...    iterations=${iter}
+    END
 
 Add Group 2 In Every Switch
     [Documentation]    Add ${ITER} groups of type 2 in every switch.
-    : FOR    ${switch}    IN RANGE    1    ${SWITCHES+1}
-    \    TemplatedRequests.Post As Json Templated    folder=${VAR_DIR}/add-group-2    mapping={"SWITCH":"${switch}"}    session=session    iterations=${ITER}
+    FOR    ${switch}    IN RANGE    1    ${switches+1}
+        &{mapping}    BuiltIn.Create_Dictionary    NODE=openflow:${switch}
+        TemplatedRequests.Post As Json Templated
+        ...    folder=${VAR_DIR}/add-group-2
+        ...    mapping=${mapping}
+        ...    session=session
+        ...    iterations=${iter}
+    END
 
 Add Flow to Group 2 In Every Switch
     [Documentation]    Add ${ITER} flows to group type 2 in every switch.
-    : FOR    ${switch}    IN RANGE    1    ${SWITCHES+1}
-    \    TemplatedRequests.Post As Json Templated    folder=${VAR_DIR}/add-flow    mapping={"SWITCH":"${switch}"}    session=session    iterations=${ITER}
+    FOR    ${switch}    IN RANGE    1    ${switches+1}
+        &{mapping}    BuiltIn.Create_Dictionary    NODE=openflow:${switch}
+        TemplatedRequests.Post As Json Templated
+        ...    folder=${VAR_DIR}/add-flow
+        ...    mapping=${mapping}
+        ...    session=session
+        ...    iterations=${ITER}
+    END
 
 Start Mininet Linear
     [Documentation]    Start Mininet Linear with ${SWITCHES} switches.
@@ -64,13 +82,6 @@ Check No Switches After Disconnect
     [Documentation]    Check no switches in topology.
     BuiltIn.Wait Until Keyword Succeeds    30s    1s    FlowLib.Check No Switches In Topology    ${SWITCHES}
 
-Remove Flows And Groups While Mininet Is Disconnected
-    [Documentation]    Remove some groups and flows while network is down.
-    : FOR    ${switch}    IN RANGE    1    ${SWITCHES+1}
-    \    RequestsLibrary.Delete Request    session    ${CONFIG_NODES_API}/node/openflow:${switch}/table/0/flow/1
-    \    RequestsLibrary.Delete Request    session    ${CONFIG_NODES_API}/node/openflow:${switch}/group/1
-    \    RequestsLibrary.Delete Request    session    ${CONFIG_NODES_API}/node/openflow:${switch}/group/1000
-
 Reconnect Mininet
     [Documentation]    Connect Mininet.
     Disconnect Controller Mininet    restore
@@ -79,6 +90,20 @@ Check Linear Topology After Mininet Reconnects
     [Documentation]    Check Linear Topology.
     BuiltIn.Wait Until Keyword Succeeds    30s    1s    FlowLib.Check Linear Topology    ${SWITCHES}
 
+Remove Flows And Groups After Mininet Reconnects
+    [Documentation]    Remove some groups and flows while network is down.
+    FOR    ${switch}    IN RANGE    1    ${switches+1}
+        RequestsLibrary.DELETE On Session
+        ...    session
+        ...    url=${RFC8040_NODES_API}/node=openflow%3A${switch}/flow-node-inventory:table=0/flow=1
+        RequestsLibrary.DELETE On Session
+        ...    session
+        ...    url=${RFC8040_NODES_API}/node=openflow%3A${switch}/flow-node-inventory:group=1
+        RequestsLibrary.DELETE On Session
+        ...    session
+        ...    url=${RFC8040_NODES_API}/node=openflow%3A${switch}/flow-node-inventory:group=1000
+    END
+
 Check Flows In Operational DS After Mininet Reconnects
     [Documentation]    Check Flows after mininet starts.
     BuiltIn.Wait Until Keyword Succeeds    30s    1s    FlowLib.Check Number Of Flows    ${less_flows}
@@ -94,8 +119,10 @@ Check Flows In Switch After Mininet Reconnects
 Restart Controller
     [Documentation]    Stop and Start controller.
     # Try to stop contoller, if stop does not work or takes too long, kill controller.
-    ${status}    ${result}=    BuiltIn.Run Keyword And Ignore Error    ClusterManagement.Stop_Members_From_List_Or_All
-    BuiltIn.Run Keyword If    '${status}' != 'PASS'    ClusterManagement.Kill_Members_From_List_Or_All
+    ${status}    ${result}    BuiltIn.Run Keyword And Ignore Error    ClusterManagement.Stop_Members_From_List_Or_All
+    IF    '${status}' != 'PASS'
+        ClusterManagement.Kill_Members_From_List_Or_All
+    END
     ClusterManagement.Start_Members_From_List_Or_All    wait_for_sync=False
 
 Check Linear Topology After Controller Restarts
@@ -122,20 +149,23 @@ Check No Switches
     [Documentation]    Check no switches in topology.
     BuiltIn.Wait Until Keyword Succeeds    5s    1s    FlowLib.Check No Switches In Topology    ${SWITCHES}
 
+
 *** Keywords ***
 Initialization Phase
     [Documentation]    Create controller session and set variables.
     ClusterManagement.ClusterManagement_Setup
     # Still need to open controller HTTP session with name session because of old FlowLib.robot library dependency.
     RequestsLibrary.Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}
-    ${all_groups}=    BuiltIn.Evaluate    ${SWITCHES} * ${ITER} * 2
-    ${less_groups}=    BuiltIn.Evaluate    ${all_groups} - ${SWITCHES} * 2
+    ${switches}    Convert To Integer    ${SWITCHES}
+    ${iter}    Convert To Integer    ${ITER}
+    ${all_groups}    BuiltIn.Evaluate    ${switches} * ${iter} * 2
+    ${less_groups}    BuiltIn.Evaluate    ${all_groups} - ${switches} * 2
     # Stale flows/groups feature enabled in Boron onwards.
-    ${less_groups}=    CompareStream.Set Variable If At Least Boron    ${less_groups}    ${all_groups}
-    ${all_flows}=    BuiltIn.Evaluate    ${SWITCHES} * ${ITER+1}
-    ${less_flows}=    BuiltIn.Evaluate    ${all_flows} - ${SWITCHES}
+    ${all_flows}    BuiltIn.Evaluate    ${switches} * ${iter+1}
+    ${less_flows}    BuiltIn.Evaluate    ${all_flows} - ${switches}
     # Stale flows/groups feature enabled in Boron onwards.
-    ${less_flows}=    CompareStream.Set Variable If At Least Boron    ${less_flows}    ${all_flows}
+    BuiltIn.Set Suite Variable    ${switches}
+    BuiltIn.Set Suite Variable    ${iter}
     BuiltIn.Set Suite Variable    ${all_groups}
     BuiltIn.Set Suite Variable    ${less_groups}
     BuiltIn.Set Suite Variable    ${all_flows}
@@ -144,18 +174,20 @@ Initialization Phase
 
 Final Phase
     [Documentation]    Delete all sessions.
-    ${command}    BuiltIn.Set Variable    sudo iptables -v -F
+    ${command}    BuiltIn.Set Variable    sudo iptables -v -F
     Utils.Run Command On Controller    cmd=${command}
-    CompareStream.Run Keyword If At Least Boron    TemplatedRequests.Put As Json Templated    folder=${VAR_DIR}/frm-config    mapping={"STALE":"false"}    session=session
-    BuiltIn.Run Keyword And Ignore Error    RequestsLibrary.Delete Request    session    ${CONFIG_NODES_API}
+    BuiltIn.Run Keyword And Ignore Error    RequestsLibrary.DELETE On Session    session    url=${RFC8040_NODES_API}
     RequestsLibrary.Delete All Sessions
 
 Disconnect Controller Mininet
-    [Arguments]    ${action}=break
     [Documentation]    Break and restore controller to mininet connection via iptables.
-    ${rule} =    BuiltIn.Set Variable    OUTPUT -p all --source ${ODL_SYSTEM_IP} --destination ${TOOLS_SYSTEM_IP} -j DROP
-    ${command} =    BuiltIn.Set Variable If    '${action}'=='restore'    sudo /sbin/iptables -D ${rule}    sudo /sbin/iptables -I ${rule}
+    [Arguments]    ${action}=break
+    ${rule}    BuiltIn.Set Variable    OUTPUT -p all --source ${ODL_SYSTEM_IP} --destination ${TOOLS_SYSTEM_IP} -j DROP
+    ${command}    BuiltIn.Set Variable If
+    ...    '${action}'=='restore'
+    ...    sudo /sbin/iptables -D ${rule}
+    ...    sudo /sbin/iptables -I ${rule}
     Utils.Run Command On Controller    cmd=${command}
-    ${command}    BuiltIn.Set Variable    sudo /sbin/iptables -L -n
-    ${output}    Utils.Run Command On Controller    cmd=${command}
+    ${command}    BuiltIn.Set Variable    sudo /sbin/iptables -L -n
+    ${output}    Utils.Run Command On Controller    cmd=${command}
     BuiltIn.Log    ${output}