Wait Until Keyword Succeeds ${timeout} 1s BulkomaticKeywords.Operation Status Check ${controller_index} ${jolokia_read_op_status}
Add Bulk Flow
- [Arguments] ${controller_index} ${add_bulk_json_file}
- [Documentation] Add Bulk Flow in ${controller_index} according to ${add_bulk_json_file}.
- ${add_body}= OperatingSystem.Get File ${CURDIR}/../variables/openflowplugin/${add_bulk_json_file}
- ${resp} Utils.Post Elements To URI ${ADD_BULK_CONFIG_NODES_API} ${add_body} headers=${HEADERS_YANG_JSON} session=controller${controller_index}
+ [Arguments] ${controller_index} ${json_body_add}
+ [Documentation] Add Bulk Flow in ${controller_index} according to ${json_body_add}.
+ ${resp} Utils.Post Elements To URI ${ADD_BULK_CONFIG_NODES_API} ${json_body_add} headers=${HEADERS_YANG_JSON} session=controller${controller_index}
Delete Bulk Flow
- [Arguments] ${controller_index} ${del_bulk_json_file}
- [Documentation] Delete Bulk Flow in ${controller_index} according to ${del_bulk_json_file}.
- ${del_body}= OperatingSystem.Get File ${CURDIR}/../variables/openflowplugin/${del_bulk_json_file}
- ${resp} Utils.Post Elements To URI ${ADD_BULK_CONFIG_NODES_API} ${del_body} headers=${HEADERS_YANG_JSON} session=controller${controller_index}
+ [Arguments] ${controller_index} ${json_body_del}
+ [Documentation] Delete Bulk Flow in ${controller_index} according to ${json_body_del}.
+ ${resp} Utils.Post Elements To URI ${ADD_BULK_CONFIG_NODES_API} ${json_body_del} headers=${HEADERS_YANG_JSON} session=controller${controller_index}
Get Bulk Flow
- [Arguments] ${controller_index} ${get_bulk_json_file}
- [Documentation] Get Bulk Flow in ${controller_index} according to ${get_bulk_json_file}.
- ${get_body}= OperatingSystem.Get File ${CURDIR}/../variables/openflowplugin/${get_bulk_json_file}
- ${resp} Utils.Post Elements To URI ${GET_BULK_CONFIG_NODES_API} ${get_body} headers=${HEADERS_YANG_JSON} session=controller${controller_index}
+ [Arguments] ${controller_index} ${json_body_get}
+ [Documentation] Get Bulk Flow in ${controller_index} according to ${json_body_get}.
+ ${resp} Utils.Post Elements To URI ${GET_BULK_CONFIG_NODES_API} ${json_body_get} headers=${HEADERS_YANG_JSON} session=controller${controller_index}
Get Bulk Flow Count
[Arguments] ${controller_index}
Should Be Equal As Strings ${value} ${flow_count}
Add Bulk Flow In Node
- [Arguments] ${controller_index} ${add_bulk_json_file} ${timeout}
+ [Arguments] ${controller_index} ${json_body_add} ${timeout}
[Documentation] Add Bulk Flow in ${controller_index} and wait until operation is completed.
- Add Bulk Flow ${controller_index} ${add_bulk_json_file}
+ Add Bulk Flow ${controller_index} ${json_body_add}
Wait Until Write Finishes ${controller_index} ${timeout}
Delete Bulk Flow In Node
- [Arguments] ${controller_index} ${delete_bulk_json_file} ${timeout}
+ [Arguments] ${controller_index} ${json_body_del} ${timeout}
[Documentation] Delete Bulk Flow in ${controller_index} and wait until operation is completed.
- Delete Bulk Flow ${controller_index} ${delete_bulk_json_file}
+ Delete Bulk Flow ${controller_index} ${json_body_del}
Wait Until Write Finishes ${controller_index} ${timeout}
Get Bulk Flow And Verify Count In Cluster
- [Arguments] ${controller_index_list} ${get_bulk_json_file} ${timeout} ${flow_count}
+ [Arguments] ${controller_index_list} ${json_body_get} ${timeout} ${flow_count}
[Documentation] Get Bulk Flow and Verify Flow Count in ${controller_index_list} matches ${flow_count}.
: FOR ${index} IN @{controller_index_list}
- \ Get Bulk Flow ${index} ${get_bulk_json_file}
+ \ Get Bulk Flow ${index} ${json_body_get}
: FOR ${index} IN @{controller_index_list}
\ Wait Until Read Finishes ${index} ${timeout}
: FOR ${index} IN @{controller_index_list}
\ Verify Flow Count ${index} ${flow_count}
+
+Set DPN And Flow Count In Json Add
+ [Arguments] ${json_config} ${dpn_count} ${flows_count}
+ [Documentation] Set new DPN count and flows count per DPN in the Bulkomatic Add json file.
+ ${body}= OperatingSystem.Get File ${CURDIR}/../variables/openflowplugin/${json_config}
+ ${get_string}= Set Variable "sal-bulk-flow:dpn-count" : "1"
+ ${put_string}= Set Variable "sal-bulk-flow:dpn-count" : "${dpn_count}"
+ ${str} Replace String Using Regexp ${body} ${get_string} ${put_string}
+ ${get_string}= Set Variable "sal-bulk-flow:flows-per-dpn" : "1000"
+ ${put_string}= Set Variable "sal-bulk-flow:flows-per-dpn" : "${flows_count}"
+ ${json_body_add} Replace String Using Regexp ${str} ${get_string} ${put_string}
+ Log ${json_body_add}
+ [Return] ${json_body_add}
+
+Set DPN And Flow Count In Json Get
+ [Arguments] ${json_config} ${dpn_count} ${flows_count}
+ [Documentation] Set new DPN count and flows count per DPN in the Bulkomatic Get json file.
+ ${body}= OperatingSystem.Get File ${CURDIR}/../variables/openflowplugin/${json_config}
+ ${get_string}= Set Variable "sal-bulk-flow:dpn-count" : "1"
+ ${put_string}= Set Variable "sal-bulk-flow:dpn-count" : "${dpn_count}"
+ ${str} Replace String Using Regexp ${body} ${get_string} ${put_string}
+ ${get_string}= Set Variable "sal-bulk-flow:flows-per-dpn" : "1000"
+ ${put_string}= Set Variable "sal-bulk-flow:flows-per-dpn" : "${flows_count}"
+ ${json_body_get} Replace String Using Regexp ${str} ${get_string} ${put_string}
+ Log ${json_body_get}
+ [Return] ${json_body_get}
+
+Set DPN And Flow Count In Json Del
+ [Arguments] ${json_config} ${dpn_count} ${flows_count}
+ [Documentation] Set new DPN count and flows count per DPN in the Bulkomatic Del json file.
+ ${body}= OperatingSystem.Get File ${CURDIR}/../variables/openflowplugin/${json_config}
+ ${get_string}= Set Variable "sal-bulk-flow:dpn-count" : "1"
+ ${put_string}= Set Variable "sal-bulk-flow:dpn-count" : "${dpn_count}"
+ ${str} Replace String Using Regexp ${body} ${get_string} ${put_string}
+ ${get_string}= Set Variable "sal-bulk-flow:flows-per-dpn" : "1000"
+ ${put_string}= Set Variable "sal-bulk-flow:flows-per-dpn" : "${flows_count}"
+ ${json_body_del} Replace String Using Regexp ${str} ${get_string} ${put_string}
+ Log ${json_body_del}
+ [Return] ${json_body_del}
${operation_timeout} 100s
${restart_timeout} 350s
${flow_count_per_switch} 1000
-${switch_count_per_node} 1
+${switch_count} 1
${flow_count_after_add} 1000
${flow_count_after_del} 0
-${add_small_config} sal_add_bulk_flow_small_config.json
-${get_small_config} sal_get_bulk_flow_small_config.json
-${del_small_config} sal_del_bulk_flow_small_config.json
+${orig_json_config_add} sal_add_bulk_flow_config.json
+${orig_json_config_get} sal_get_bulk_flow_config.json
+${orig_json_config_del} sal_del_bulk_flow_config.json
*** Test Cases ***
Create Original Cluster List
Add Bulk Flow From Follower
[Documentation] 1000 Flows added via Follower Node1 and verify it gets applied in all instances.
- BulkomaticKeywords.Add Bulk Flow In Node ${Follower_Node_1} ${add_small_config} ${operation_timeout}
+ ${temp_json_config_add} BulkomaticKeywords.Set DPN And Flow Count In Json Add ${orig_json_config_add} ${switch_count} ${flow_count_per_switch}
+ Set Suite Variable ${temp_json_config_add}
+ BulkomaticKeywords.Add Bulk Flow In Node ${Follower_Node_1} ${temp_json_config_add} ${operation_timeout}
Get Bulk Flows and Verify In Cluster
- BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout} ${flow_count_after_add}
+ [Documentation] Initiate get operation and check flow count across cluster nodes
+ ${temp_json_config_get} BulkomaticKeywords.Set DPN And Flow Count In Json Get ${orig_json_config_get} ${switch_count} ${flow_count_after_add}
+ Set Suite Variable ${temp_json_config_get}
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_add}
Verify Flows In Switch Before Cluster Restart
[Documentation] Verify flows are installed in switch before cluster restart.
- MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count_per_node} ${flow_count_per_switch} ${operation_timeout}
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
Kill All Cluster Nodes
[Documentation] Kill All Nodes.
Verify Data Recovery After Cluster Restart
[Documentation] 1000 Flows preserved in all controller instances.
- Wait Until Keyword Succeeds ${restart_timeout} 2s BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout}
+ Wait Until Keyword Succeeds ${restart_timeout} 2s BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout}
... ${flow_count_after_add}
Start Mininet Again Connect To Follower Node1
Verify Flows In Switch After Cluster Restart
[Documentation] Verify flows are installed in switch after cluster restart.
- MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count_per_node} ${flow_count_per_switch} ${operation_timeout}
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
Stop Mininet Connected To Follower Node1
[Documentation] Stop mininet and exit connection.
Utils.Clean Mininet System
Delete All Flows From Follower Node1
- [Documentation] Rest 1000 Flows deleted via Follower Node1 and verify it gets applied in all instances.
- BulkomaticKeywords.Delete Bulk Flow In Node ${Follower_Node_1} ${del_small_config} ${operation_timeout}
+ [Documentation] 1000 Flows deleted via Follower Node1 and verify it gets applied in all instances.
+ ${temp_json_config_del} BulkomaticKeywords.Set DPN And Flow Count In Json Del ${orig_json_config_del} ${switch_count} ${flow_count_per_switch}
+ Set Suite Variable ${temp_json_config_del}
+ BulkomaticKeywords.Delete Bulk Flow In Node ${Follower_Node_1} ${temp_json_config_del} ${operation_timeout}
Verify No Flows In Cluster
- BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout} ${flow_count_after_del}
+ [Documentation] Verify flow count is 0 across cluster nodes.
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_del}
Get Inventory Leader Before Leader Restart
[Documentation] Find leader in the inventory config shard
Add Bulk Flow From Leader
[Documentation] 1000 Flows added via Follower Node1 and verify it gets applied in all instances.
- BulkomaticKeywords.Add Bulk Flow In Node ${Inventory_Leader} ${add_small_config} ${operation_timeout}
+ BulkomaticKeywords.Add Bulk Flow In Node ${Inventory_Leader} ${temp_json_config_add} ${operation_timeout}
Get Bulk Flows and Verify In Cluster Before Leader Restart
- BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout} ${flow_count_after_add}
+ [Documentation] Initiate get operation and check flow count across cluster nodes
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_add}
Verify Flows In Switch Before Leader Restart
[Documentation] Verify flows are installed in switch before leader restart.
- MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count_per_node} ${flow_count_per_switch} ${operation_timeout}
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
Kill Leader From Cluster Node
- [Documentation] Kill Leader Node and Start it Up.
+ [Documentation] Kill Leader Node.
ClusterKeywords.Kill Multiple Controllers ${Inventory_Leader}
Stop Mininet Connected To Leader Node
Verify Data Recovery After Leader Restart
[Documentation] 1000 Flows preserved in all controller instances.
- Wait Until Keyword Succeeds ${restart_timeout} 2s BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout}
+ Wait Until Keyword Succeeds ${restart_timeout} 2s BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout}
... ${flow_count_after_add}
Start Mininet Again Connect To Leader
Verify Flows In Switch After Leader Restart
[Documentation] Verify flows are installed in switch after leader restart.
- MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count_per_node} ${flow_count_per_switch} ${operation_timeout}
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
Stop Mininet Connected To Leader Node After Leader Restart
[Documentation] Stop mininet and exit connection.
Utils.Clean Mininet System
Delete All Flows From Leader Node
- [Documentation] Rest 1000 Flows deleted via Leader Node and verify it gets applied in all instances.
- BulkomaticKeywords.Delete Bulk Flow In Node ${Inventory_Leader} ${del_small_config} ${operation_timeout}
+ [Documentation] 1000 Flows deleted via Leader Node and verify it gets applied in all instances.
+ BulkomaticKeywords.Delete Bulk Flow In Node ${Inventory_Leader} ${temp_json_config_del} ${operation_timeout}
Verify No Flows In Cluster After Leader Restart
- BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout} ${flow_count_after_del}
+ [Documentation] Verify flow count is 0 across cluster nodes.
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_del}
Get Inventory Follower Before follower Restart
[Documentation] Find follower in the inventory config shard
Add Bulk Flow From Follower Node2
[Documentation] 1000 Flows added via Follower Node2 and verify it gets applied in all instances.
- BulkomaticKeywords.Add Bulk Flow In Node ${Follower_Node_2} ${add_small_config} ${operation_timeout}
+ BulkomaticKeywords.Add Bulk Flow In Node ${Follower_Node_2} ${temp_json_config_add} ${operation_timeout}
Get Bulk Flows and Verify In Cluster Before Follower Restart
- BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout} ${flow_count_after_add}
+ [Documentation] Initiate get operation and check flow count across cluster nodes
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_add}
Verify Flows In Switch Before Follower Restart
[Documentation] Verify flows are installed in switch before follower restart.
- MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count_per_node} ${flow_count_per_switch} ${operation_timeout}
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
Kill Follower Node2
[Documentation] Kill Follower Node2.
Verify Data Recovery After Follower Node2 Restart
[Documentation] 1000 Flows preserved in all controller instances.
- Wait Until Keyword Succeeds ${restart_timeout} 2s BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout}
+ Wait Until Keyword Succeeds ${restart_timeout} 2s BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout}
... ${flow_count_after_add}
Start Mininet Again Connect To Follower Node2
Verify Flows In Switch After Follower Node2 Restart
[Documentation] Verify flows are installed in switch after follower restart.
- MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count_per_node} ${flow_count_per_switch} ${operation_timeout}
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
Stop Mininet Connected To Follower Node2
[Documentation] Stop mininet and exit connection.
Utils.Clean Mininet System
Delete All Flows From Follower Node 2
- [Documentation] Rest 1000 Flows deleted via Leader Node and verify it gets applied in all instances.
- BulkomaticKeywords.Delete Bulk Flow In Node ${Follower_Node_2} ${del_small_config} ${operation_timeout}
+ [Documentation] 1000 Flows deleted via Leader Node and verify it gets applied in all instances.
+ BulkomaticKeywords.Delete Bulk Flow In Node ${Follower_Node_2} ${temp_json_config_del} ${operation_timeout}
Verify No Flows In Cluster After Follower Node2 Restart
- BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout} ${flow_count_after_del}
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_del}
${operation_timeout} 100s
${restart_timeout} 350s
${flow_count_per_switch} 1000
-${switch_count_per_node} 1
+${switch_count} 1
${flow_count_after_add} 1000
${flow_count_after_del} 0
-${add_small_config} sal_add_bulk_flow_small_config.json
-${get_small_config} sal_get_bulk_flow_small_config.json
-${del_small_config} sal_del_bulk_flow_small_config.json
+${orig_json_config_add} sal_add_bulk_flow_config.json
+${orig_json_config_get} sal_get_bulk_flow_config.json
+${orig_json_config_del} sal_del_bulk_flow_config.json
*** Test Cases ***
Create Original Cluster List
Add Bulk Flow From Follower
[Documentation] 1000 Flows added via Follower Node1 and verify it gets applied in all instances.
- BulkomaticKeywords.Add Bulk Flow In Node ${Follower_Node_1} ${add_small_config} ${operation_timeout}
+ ${temp_json_config_add} BulkomaticKeywords.Set DPN And Flow Count In Json Add ${orig_json_config_add} ${switch_count} ${flow_count_per_switch}
+ Set Suite Variable ${temp_json_config_add}
+ BulkomaticKeywords.Add Bulk Flow In Node ${Follower_Node_1} ${temp_json_config_add} ${operation_timeout}
Get Bulk Flows and Verify In Cluster
- BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${Inventory_Followers} ${get_small_config} ${operation_timeout} ${flow_count_after_add}
+ [Documentation] Initiate get operation and check flow count across cluster nodes.
+ ${temp_json_config_get} BulkomaticKeywords.Set DPN And Flow Count In Json Get ${orig_json_config_get} ${switch_count} ${flow_count_after_add}
+ Set Suite Variable ${temp_json_config_get}
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${Inventory_Followers} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_add}
Verify Flows In Switch Before Cluster Restart
[Documentation] Verify flows are installed in switch before cluster restart.
- MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count_per_node} ${flow_count_per_switch} ${operation_timeout}
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
Restart Leader From Cluster Node
[Documentation] Restart Leader Node.
Verify Data Recovery After Leader Restart
[Documentation] 1000 Flows preserved in all controller instances.
- Wait Until Keyword Succeeds ${restart_timeout} 2s BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout}
+ Wait Until Keyword Succeeds ${restart_timeout} 2s BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout}
... ${flow_count_after_add}
Verify Flows In Switch After Leader Restart
[Documentation] Verify flows are installed in switch after cluster restart.
- MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count_per_node} ${flow_count_per_switch} ${operation_timeout}
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
Stop Mininet Connected To Follower Node1
[Documentation] Stop mininet and exit connection.
Utils.Clean Mininet System
Delete All Flows From Follower Node1
- [Documentation] Rest 1000 Flows deleted via Follower Node1 and verify it gets applied in all instances.
- BulkomaticKeywords.Delete Bulk Flow In Node ${Follower_Node_1} ${del_small_config} ${operation_timeout}
+ [Documentation] 1000 Flows deleted via Follower Node1 and verify it gets applied in all instances.
+ ${temp_json_config_del} BulkomaticKeywords.Set DPN And Flow Count In Json Del ${orig_json_config_del} ${switch_count} ${flow_count_per_switch}
+ Set Suite Variable ${temp_json_config_del}
+ BulkomaticKeywords.Delete Bulk Flow In Node ${Follower_Node_1} ${temp_json_config_del} ${operation_timeout}
Verify No Flows In Cluster
- BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout} ${flow_count_after_del}
+ [Documentation] Verify flow count is 0 across cluster nodes.
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_del}
Get Inventory Follower Before Follower Restart
[Documentation] Find Leader and followers in the inventory config shard
Add Bulk Flow From Follower Node1
[Documentation] 1000 Flows added via Follower Node1 and verify it gets applied in all instances.
- BulkomaticKeywords.Add Bulk Flow In Node ${Follower_Node_1} ${add_small_config} ${operation_timeout}
+ BulkomaticKeywords.Add Bulk Flow In Node ${Follower_Node_1} ${temp_json_config_add} ${operation_timeout}
Get Bulk Flows and Verify In Cluster Before Follower Restart
- BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${Active_Nodes} ${get_small_config} ${operation_timeout} ${flow_count_after_add}
+ [Documentation] Initiate get operation and check flow count only across active cluster nodes
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${Active_Nodes} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_add}
Verify Flows In Switch Before Follower Restart
[Documentation] Verify flows are installed in switch before follower restart.
- MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count_per_node} ${flow_count_per_switch} ${operation_timeout}
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
Restart Follower From Cluster Node
[Documentation] Restart Follower Node2.
Verify Data Recovery After Follower Restart
[Documentation] 1000 Flows preserved in all controller instances.
- Wait Until Keyword Succeeds ${restart_timeout} 2s BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout}
+ Wait Until Keyword Succeeds ${restart_timeout} 2s BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout}
... ${flow_count_after_add}
Verify Flows In Switch After Follower Restart
[Documentation] Verify flows are installed in switch after cluster restart.
- MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count_per_node} ${flow_count_per_switch} ${operation_timeout}
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
Stop Mininet Connected To Follower Node
[Documentation] Stop mininet and exit connection.
Utils.Clean Mininet System
Delete All Flows From Follower Node
- [Documentation] Rest 1000 Flows deleted via Follower Node1 and verify it gets applied in all instances.
- BulkomaticKeywords.Delete Bulk Flow In Node ${Follower_Node_1} ${del_small_config} ${operation_timeout}
+ [Documentation] 1000 Flows deleted via Follower Node1 and verify it gets applied in all instances.
+ BulkomaticKeywords.Delete Bulk Flow In Node ${Follower_Node_1} ${temp_json_config_del} ${operation_timeout}
Verify No Flows In Cluster After Follower Restart
- BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${get_small_config} ${operation_timeout} ${flow_count_after_del}
+ [Documentation] Verify flow count is 0 across cluster nodes.
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_del}
--- /dev/null
+*** Settings ***
+Documentation Test suite for Cluster with Bulk Flows - Reconcilliation in a multi DPN environment
+Suite Setup Create Controller Sessions
+Suite Teardown Delete All Sessions
+Resource ../../../libraries/BulkomaticKeywords.robot
+Resource ../../../libraries/MininetKeywords.robot
+Resource ../../../libraries/ClusterKeywords.robot
+Resource ../../../libraries/ClusterOpenFlow.robot
+Resource ../../../libraries/Utils.robot
+Variables ../../../variables/Variables.py
+
+*** Variables ***
+${operation_timeout} 100s
+${flow_count_per_switch} 1000
+${switch_count} 3
+${flow_count_after_add} 3000
+${flow_count_after_del} 0
+${orig_json_config_add} sal_add_bulk_flow_config.json
+${orig_json_config_get} sal_get_bulk_flow_config.json
+${orig_json_config_del} sal_del_bulk_flow_config.json
+
+*** Test Cases ***
+Create Original Cluster List
+ [Documentation] Create original cluster list.
+ ${original_cluster_list} ClusterKeywords.Create Controller Index List
+ Set Suite Variable ${original_cluster_list}
+
+Check Shards Status Before Leader Restart
+ [Documentation] Check Status for all shards in OpenFlow application.
+ ClusterOpenFlow.Check OpenFlow Shards Status ${original_cluster_list}
+
+Get Inventory Follower Before Cluster Restart
+ [Documentation] Find a follower in the inventory config shard
+ ${inventory_leader} ${inventory_followers} ClusterOpenFlow.Get InventoryConfig Shard Status ${original_cluster_list}
+ ${Follower_Node_1}= Get From List ${Inventory_Followers} 0
+ ${Follower_Node_2}= Get From List ${Inventory_Followers} 1
+ Set Suite Variable ${Follower_Node_1}
+ Set Suite Variable ${Follower_Node_2}
+ Set Suite Variable ${Inventory_Leader}
+
+Start Mininet Connect To Follower Node1
+ [Documentation] Start mininet with connection to Follower Node1.
+ ${mininet_conn_id}= MininetKeywords.Start Mininet Single Controller ${TOOLS_SYSTEM_IP} ${ODL_SYSTEM_${Follower_Node_1}_IP} --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+ Set Suite Variable ${mininet_conn_id}
+
+Add Bulk Flow From Follower
+ [Documentation] 3000 Flows (1K per DPN) in 3 DPN added via Follower Node1 and verify it gets applied in all instances.
+ ${temp_json_config_add} BulkomaticKeywords.Set DPN And Flow Count In Json Add ${orig_json_config_add} ${switch_count} ${flow_count_per_switch}
+ BulkomaticKeywords.Add Bulk Flow In Node ${Follower_Node_1} ${temp_json_config_add} ${operation_timeout}
+
+Get Bulk Flows and Verify In Cluster
+ [Documentation] Initiate get operation and check flow count across cluster nodes
+ ${temp_json_config_get} BulkomaticKeywords.Set DPN And Flow Count In Json Get ${orig_json_config_get} ${switch_count} ${flow_count_after_add}
+ Set Suite Variable ${temp_json_config_get}
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_add}
+
+Verify Flows In Switch Before Cluster Restart
+ [Documentation] Verify flows are installed in switch before cluster restart.
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
+
+Stop Mininet Connected To Follower Node1 and Exit
+ [Documentation] Stop mininet and exit connection.
+ MininetKeywords.Stop Mininet And Exit ${mininet_conn_id}
+ Utils.Clean Mininet System
+
+Start Mininet Reconnect To Follower Node1
+ [Documentation] Start mininet with reconnection to follower node1.
+ ${mininet_conn_id}= MininetKeywords.Start Mininet Single Controller ${TOOLS_SYSTEM_IP} ${ODL_SYSTEM_${Follower_Node_1}_IP} --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+ Set Suite Variable ${mininet_conn_id}
+
+Verify Flows In Switch Reconnected To Follower Node1
+ [Documentation] Verify 1K flows per DPN installed in switch after it is reconnected to follower node1.
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
+
+Stop Mininet Connected To Follower Node1
+ [Documentation] Stop mininet and exit connection.
+ MininetKeywords.Stop Mininet And Exit ${mininet_conn_id}
+ Utils.Clean Mininet System
+
+Start Mininet Connect To Follower Node2
+ [Documentation] Start mininet with connection to follower node2.
+ ${mininet_conn_id}= MininetKeywords.Start Mininet Single Controller ${TOOLS_SYSTEM_IP} ${ODL_SYSTEM_${Follower_Node_2}_IP} --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+ Set Suite Variable ${mininet_conn_id}
+
+Verify Flows In Switch Connected To Follower Node2
+ [Documentation] Verify 1K flows per DPN installed in switch after it is connected to follower node2.
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
+
+Stop Mininet Connected To Follower Node2
+ [Documentation] Stop mininet and exit connection.
+ MininetKeywords.Stop Mininet And Exit ${mininet_conn_id}
+ Utils.Clean Mininet System
+
+Start Mininet Connect To Inventory Leader
+ [Documentation] Start mininet with connection to inventroy leader.
+ ${mininet_conn_id}= MininetKeywords.Start Mininet Single Controller ${TOOLS_SYSTEM_IP} ${ODL_SYSTEM_${Inventory_Leader}_IP} --topo linear,${switch_count} --switch ovsk,protocols=OpenFlow13
+ Set Suite Variable ${mininet_conn_id}
+
+Verify Flows In Switch Connected To Leader
+ [Documentation] Verify 1K flows per DPN installed in switch after it is connected to inventory leader.
+ MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${switch_count} ${flow_count_per_switch} ${operation_timeout}
+
+Stop Mininet Connected To Inventory Leader
+ [Documentation] Stop mininet and exit connection.
+ MininetKeywords.Stop Mininet And Exit ${mininet_conn_id}
+ Utils.Clean Mininet System
+
+Delete All Flows From Follower Node1
+ [Documentation] 3000 Flows deleted via Follower Node1 and verify it gets applied in all instances.
+ ${temp_json_config_del} BulkomaticKeywords.Set DPN And Flow Count In Json Del ${orig_json_config_del} ${switch_count} ${flow_count_per_switch}
+ BulkomaticKeywords.Delete Bulk Flow In Node ${Follower_Node_1} ${temp_json_config_del} ${operation_timeout}
+
+Verify No Flows In Cluster
+ [Documentation] Verify flow count is 0 across cluster nodes.
+ BulkomaticKeywords.Get Bulk Flow And Verify Count In Cluster ${original_cluster_list} ${temp_json_config_get} ${operation_timeout} ${flow_count_after_del}
"sal-bulk-flow:flows-per-dpn" : "1000",
"sal-bulk-flow:batch-size" : "1",
"sal-bulk-flow:seq" : "true",
- "sal-bulk-flow:tx-chain" : "false",
+ "sal-bulk-flow:tx-chain" : "true",
"sal-bulk-flow:sleep-for" : "0",
"sal-bulk-flow:sleep-after" : "1",
"sal-bulk-flow:start-table-id" : "0",
"sal-bulk-flow:flows-per-dpn" : "1000",
"sal-bulk-flow:batch-size" : "1",
"sal-bulk-flow:seq" : "true",
- "sal-bulk-flow:tx-chain" : "false",
+ "sal-bulk-flow:tx-chain" : "true",
"sal-bulk-flow:sleep-for" : "0",
"sal-bulk-flow:sleep-after" : "1",
"sal-bulk-flow:start-table-id" : "0",