Documentation Test suite to test cluster binding propagation
Suite Setup SxpClusterLib.Setup SXP Cluster Session With Device
Suite Teardown SxpClusterLib.Clean SXP Cluster Session
-Test Teardown SxpClusterLib.Clean SXP Cluster
Library ../../../libraries/Sxp.py
Resource ../../../libraries/ClusterManagement.robot
Resource ../../../libraries/SxpClusterLib.robot
Resource ../../../libraries/SxpLib.robot
-*** Test Cases ***
-Isolation of SXP service follower Test Listener Part
- [Documentation] Test SXP binding propagation only if Controller with SCS is isolated
- SxpClusterLib.Check Shards Status
- Setup Custom SXP Cluster listener ${INADDR_ANY} ${CONTROLLER_SESSION}
- ${controller_index} = SxpClusterLib.Get Owner Controller
- Isolate SXP Controller ${controller_index} ${DEVICE_NODE_ID} ${DEVICE_SESSION}
+*** Variables ***
+${RUNNING_MEMBER} ${EMPTY}
+*** Test Cases ***
Isolation of SXP service follower Test Speaker Part
- [Documentation] Test SXP binding propagation only if Controller with SCS is isolated
- SxpClusterLib.Check Shards Status
- Setup Custom SXP Cluster speaker
+ [Documentation] Test SXP binding propagation from device to cluster after cluster owner is isolated
+ [Setup] Setup Custom SXP Cluster speaker
${controller_index} = SxpClusterLib.Get Owner Controller
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${INADDR_ANY} ClusterManagement__session_${controller_index}
Isolate SXP Controller ${controller_index} ${INADDR_ANY}
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${INADDR_ANY} ClusterManagement__session_${RUNNING_MEMBER}
+ UnIsolate SXP Controller ${controller_index}
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${INADDR_ANY} ClusterManagement__session_${controller_index}
+ [Teardown] SxpClusterLib.Clean SXP Cluster
-Isolation of SXP noservice follower Test Listener Part
- [Documentation] Test SXP binding propagation only if Controller without SCS are isolated
- SxpClusterLib.Check Shards Status
- Setup Custom SXP Cluster listener ${INADDR_ANY} ${CONTROLLER_SESSION}
+Isolation of SXP noservice follower Test Speaker Part
+ [Documentation] Test SXP binding propagation from device to cluster after cluster (not owner) node is isolated
+ [Setup] Setup Custom SXP Cluster speaker
${controller_index} = SxpClusterLib.Get Not Owner Controller
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${INADDR_ANY} ClusterManagement__session_${controller_index}
+ Isolate SXP Controller ${controller_index} ${INADDR_ANY}
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${INADDR_ANY} ClusterManagement__session_${RUNNING_MEMBER}
+ UnIsolate SXP Controller ${controller_index}
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${INADDR_ANY} ClusterManagement__session_${controller_index}
+ [Teardown] SxpClusterLib.Clean SXP Cluster
+
+Isolation of SXP service follower Test Listener Part
+ [Documentation] Test SXP binding propagation from cluster to device after cluster owner is isolated
+ [Setup] Setup Custom SXP Cluster listener ${INADDR_ANY} ${CONTROLLER_SESSION}
+ ${controller_index} = SxpClusterLib.Get Owner Controller
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${DEVICE_NODE_ID} ${DEVICE_SESSION}
Isolate SXP Controller ${controller_index} ${DEVICE_NODE_ID} ${DEVICE_SESSION}
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${DEVICE_NODE_ID} ${DEVICE_SESSION}
+ UnIsolate SXP Controller ${controller_index}
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${DEVICE_NODE_ID} ${DEVICE_SESSION}
+ [Teardown] SxpClusterLib.Clean SXP Cluster
-Isolation of SXP noservice follower Test Speaker Part
- [Documentation] Test SXP binding propagation only if Controller without SCS are isolated
- SxpClusterLib.Check Shards Status
- Setup Custom SXP Cluster speaker
+Isolation of SXP noservice follower Test Listener Part
+ [Documentation] Test SXP binding propagation from cluster to device after cluster (not owner) node is isolated
+ [Setup] Setup Custom SXP Cluster listener ${INADDR_ANY} ${CONTROLLER_SESSION}
${controller_index} = SxpClusterLib.Get Not Owner Controller
- Isolate SXP Controller ${controller_index} ${INADDR_ANY}
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${DEVICE_NODE_ID} ${DEVICE_SESSION}
+ Isolate SXP Controller ${controller_index} ${DEVICE_NODE_ID} ${DEVICE_SESSION}
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${DEVICE_NODE_ID} ${DEVICE_SESSION}
+ UnIsolate SXP Controller ${controller_index}
+ BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${DEVICE_NODE_ID} ${DEVICE_SESSION}
+ [Teardown] SxpClusterLib.Clean SXP Cluster
*** Keywords ***
Setup Custom SXP Cluster
[Arguments] ${mode} ${node}=${DEVICE_NODE_ID} ${session}=${DEVICE_SESSION}
- [Documentation] Setup custom SXP cluster topology
+ [Documentation] Setup custom SXP cluster topology with ${NUM_ODL_SYSTEM} nodes and one device
SxpClusterLib.Setup SXP Cluster ${mode}
: FOR ${i} IN RANGE 1 25
\ SxpLib.Add Bindings ${i}0 ${i}.${i}.${i}.${i}/32 node=${node} session=${session}
Isolate SXP Controller
[Arguments] ${controller_index} ${node} ${session}=ClusterManagement__session_${controller_index}
- [Documentation] Isolate one of cluster nodes and perform check that bindings were propagated afterwards reverts isolation
+ [Documentation] Isolate one of cluster nodes and perform check that device is connected
@{running_members} = ClusterManagement.Isolate_Member_From_List_Or_All ${controller_index}
+ ${running_member} = Collections.Get From List ${running_members} 0
+ BuiltIn.Set Test Variable ${RUNNING_MEMBER} ${running_member}
BuiltIn.Wait Until Keyword Succeeds 240 1 ClusterManagement.Sync_Status_Should_Be_False ${controller_index}
BuiltIn.Wait Until Keyword Succeeds 60 1 SxpClusterLib.Check Device is Connected ${DEVICE_NODE_ID} session=${DEVICE_SESSION}
- ${running_member} = Collections.Get From List ${running_members} 0
- ${owner_controller} = SxpClusterLib.Get Owner Controller ${running_member}
- BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${node} ${session}
+
+UnIsolate SXP Controller
+ [Arguments] ${controller_index}
+ [Documentation] Un-Isolate one of cluster nodes and perform check that device is connected
ClusterManagement.Flush_Iptables_From_List_Or_All
BuiltIn.Wait Until Keyword Succeeds 240 1 ClusterManagement.Sync_Status_Should_Be_True ${controller_index}
BuiltIn.Wait Until Keyword Succeeds 60 1 SxpClusterLib.Check Device is Connected ${DEVICE_NODE_ID} session=${DEVICE_SESSION}
- BuiltIn.Wait Until Keyword Succeeds 30 1 Check Bindings ${node} ${session}
Check Bindings
[Arguments] ${node} ${session}