${NUM_ODL_SYSTEM}= Convert to Integer ${NUM_ODL_SYSTEM}
: FOR ${i} IN RANGE ${NUM_ODL_SYSTEM}
\ Log Create Session ${ODL_SYSTEM_${i+1}_IP}
- \ Create Session controller${i+1} http://${ODL_SYSTEM_${i+1}_IP}:${RESTCONFPORT} auth=${AUTH}
+ \ RequestsLibrary.Create Session controller${i+1} http://${ODL_SYSTEM_${i+1}_IP}:${RESTCONFPORT} auth=${AUTH}
Get Cluster Shard Status
[Arguments] ${controller_index_list} ${shard_type} ${shard}
${leader}= Set Variable 0
${follower_list}= Create List
: FOR ${i} IN @{controller_index_list}
- \ ${data}= Get Data From URI controller${i} ${jolokia_read}:Category=Shards,name=member-${i}-shard-${shard}-${shard_type},type=${type}
+ \ ${data}= Utils.Get Data From URI controller${i} ${jolokia_read}:Category=Shards,name=member-${i}-shard-${shard}-${shard_type},type=${type}
\ Log ${data}
- \ ${json}= To Json ${data}
+ \ ${json}= RequestsLibrary.To Json ${data}
\ ${status}= Get From Dictionary &{json}[value] RaftState
\ Log Controller ${ODL_SYSTEM_${i}_IP} is ${status} for shard ${shard}
\ Run Keyword If '${status}' == 'Leader' Set Test Variable ${leader} ${i}
Length Should Be ${follower_list} ${lenght-1} Not enough or too many Followers in shard ${shard_type} ${shard}
[Return] ${leader} ${follower_list}
-Get Cluster Entity Owner Status
- [Arguments] ${controller_index_list} ${device_type} ${device}
- [Documentation] Checks Entity Owner status for a ${device} and returns owner index and list of candidates from a ${controller_index_list}.
- ... ${device_type} is openflow, ovsdb, etc...
- ${length}= Get Length ${controller_index_list}
- ${candidates_list}= Create List
- ${data}= Get Data From URI controller@{controller_index_list}[0] /restconf/operational/entity-owners:entity-owners
- Log ${data}
- ${data}= Replace String ${data} /general-entity:entity[general-entity:name=' ${EMPTY}
- ${clear_data}= Replace String ${data} '] ${EMPTY}
- Log ${clear_data}
- ${json}= To Json ${clear_data}
- ${entity_type_list}= Get From Dictionary &{json}[entity-owners] entity-type
- ${entity_type_index}= Get Index From List Of Dictionaries ${entity_type_list} type ${device_type}
- Should Not Be Equal ${entity_type_index} -1 No Entity Owner found for ${device_type}
- ${entity_list}= Get From Dictionary @{entity_type_list}[${entity_type_index}] entity
- ${entity_index}= Get Index From List Of Dictionaries ${entity_list} id ${device}
- Should Not Be Equal ${entity_index} -1 Device ${device} not found in Entity Owner ${device_type}
- ${entity_owner}= Get From Dictionary @{entity_list}[${entity_index}] owner
- Should Not Be Empty ${entity_owner} No owner found for ${device}
- ${owner}= Replace String ${entity_owner} member- ${EMPTY}
- ${owner}= Convert To Integer ${owner}
- List Should Contain Value ${controller_index_list} ${owner} Owner ${owner} not exisiting in ${controller_index_list}
- ${entity_candidates_list}= Get From Dictionary @{entity_list}[${entity_index}] candidate
- ${list_length}= Get Length ${entity_candidates_list}
- : FOR ${entity_candidate} IN @{entity_candidates_list}
- \ ${candidate}= Replace String &{entity_candidate}[name] member- ${EMPTY}
- \ ${candidate}= Convert To Integer ${candidate}
- \ List Should Contain Value ${controller_index_list} ${candidate} Candidate ${candidate} not exisiting in ${controller_index_list}
- \ Run Keyword If '${candidate}' != '${owner}' Append To List ${candidates_list} ${candidate}
- [Return] ${owner} ${candidates_list}
-
Check Item Occurrence At URI In Cluster
- [Arguments] ${controller_index_list} ${dictionary_item_occurrence} ${uri} ${headers}=${HEADERS}
+ [Arguments] ${controller_index_list} ${dictionary_item_occurrence} ${uri}
[Documentation] Send a GET with the supplied ${uri} to all cluster instances in ${controller_index_list}
... and check for occurrences of items expressed in a dictionary ${dictionary_item_occurrence}.
: FOR ${i} IN @{controller_index_list}
- \ ${data} Get Data From URI controller${i} ${uri} ${headers}
+ \ ${data} Utils.Get Data From URI controller${i} ${uri}
\ Log ${data}
- \ Check Item Occurrence ${data} ${dictionary_item_occurrence}
+ \ Utils.Check Item Occurrence ${data} ${dictionary_item_occurrence}
Put And Check At URI In Cluster
- [Arguments] ${controller_index_list} ${controller_index} ${uri} ${body} ${headers}=${HEADERS}
- [Documentation] Send a PUT with the supplied ${uri} and ${body} to a ${controller_index}
+ [Arguments] ${controller_index_list} ${controller_index} ${uri} ${body}
+ [Documentation] Send a PUT with the supplied ${uri} and ${body} (json string) to a ${controller_index}
... and check the data is replicated in all instances in ${controller_index_list}.
${expected_body}= Hsf Json ${body}
- ${resp} RequestsLibrary.Put Request controller${controller_index} ${uri} ${body} ${headers}
- Should Be Equal As Strings ${resp.status_code} 200
+ Log ${body}
+ ${resp} RequestsLibrary.Put Request controller${controller_index} ${uri} data=${body} headers=${HEADERS_YANG_JSON}
+ Log ${resp.content}
+ Log ${resp.status_code}
+ ${status_code}= Convert To String ${resp.status_code}
+ Should Match Regexp ${status_code} 20(0|1)
: FOR ${i} IN @{controller_index_list}
\ ${data} Wait Until Keyword Succeeds 5s 1s Get Data From URI controller${i}
- \ ... ${uri} ${headers}
+ \ ... ${uri}
\ Log ${data}
\ ${received_body} Hsf Json ${data}
\ Should Be Equal ${expected_body} ${received_body}
Delete And Check At URI In Cluster
- [Arguments] ${controller_index_list} ${controller_index} ${uri} ${headers}=${HEADERS}
+ [Arguments] ${controller_index_list} ${controller_index} ${uri}
[Documentation] Send a DELETE with the supplied ${uri} to a ${controller_index}
... and check the data is removed from all instances in ${controller_index_list}.
- ${resp} RequestsLibrary.Delete Request controller${controller_index} ${uri} ${headers}
+ ${resp} RequestsLibrary.Delete Request controller${controller_index} ${uri}
Should Be Equal As Strings ${resp.status_code} 200
: FOR ${i} IN @{controller_index_list}
\ Wait Until Keyword Succeeds 5s 1s No Content From URI controller${i} ${uri}
- \ ... ${headers}
Kill Multiple Controllers
[Arguments] @{controller_index_list}
[Documentation] Give this keyword a scalar or list of controllers to be stopped.
: FOR ${i} IN @{controller_index_list}
- \ ${output}= Run Command On Controller ${ODL_SYSTEM_${i}_IP} ps axf | grep karaf | grep -v grep | awk '{print \"kill -9 \" $1}' | sh
- \ Controller Down Check ${ODL_SYSTEM_${i}_IP}
+ \ ${output}= Utils.Run Command On Controller ${ODL_SYSTEM_${i}_IP} ps axf | grep karaf | grep -v grep | awk '{print \"kill -9 \" $1}' | sh
+ \ ClusterKeywords.Controller Down Check ${ODL_SYSTEM_${i}_IP}
Start Multiple Controllers
[Arguments] ${timeout} @{controller_index_list}
[Documentation] Give this keyword a scalar or list of controllers to be started.
: FOR ${i} IN @{controller_index_list}
- \ ${output}= Run Command On Controller ${ODL_SYSTEM_${i}_IP} ${WORKSPACE}/${BUNDLEFOLDER}/bin/start
- \ Wait For Controller Sync ${timeout} ${ODL_SYSTEM_${i}_IP}
+ \ ${output}= Utils.Run Command On Controller ${ODL_SYSTEM_${i}_IP} ${WORKSPACE}/${BUNDLEFOLDER}/bin/start
+ \ ClusterKeywords.Wait For Controller Sync ${timeout} ${ODL_SYSTEM_${i}_IP}
Get Controller List
[Arguments] ${exclude_controller}=${EMPTY}
[Documentation] Creates a list of all controllers minus any excluded controller.
Log ${exclude_controller}
- @{searchlist} Create List ${CONTROLLER} ${CONTROLLER1} ${CONTROLLER2}
+ @{searchlist} Create List ${ODL_SYSTEM_IP} ${ODL_SYSTEM_2_IP} ${ODL_SYSTEM_3_IP}
Remove Values From List ${searchlist} ${exclude_controller}
Log ${searchlist}
[Return] ${searchlist}