From: Luis Gomez Date: Mon, 28 Mar 2016 19:59:44 +0000 (-0700) Subject: Consolidate Entity Owner keyword in ClusterKeywords.robot library X-Git-Tag: release/lithium-sr4~74 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=integration%2Ftest.git;a=commitdiff_plain;h=90049f37c57cdafab167f1973b0cd84c4fe385dc Consolidate Entity Owner keyword in ClusterKeywords.robot library Change-Id: Ie435bda9c469d9bed5aedd50d978cdb85d5a5ee7 Signed-off-by: Luis Gomez --- diff --git a/csit/libraries/ClusterKeywords.robot b/csit/libraries/ClusterKeywords.robot index dcf9bb11b8..91601daabd 100644 --- a/csit/libraries/ClusterKeywords.robot +++ b/csit/libraries/ClusterKeywords.robot @@ -49,6 +49,55 @@ Get Cluster Shard Status 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 + [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} can be openflow, ovsdb, etc. + ${length}= Get Length ${controller_index_list} + ${candidates_list}= Create List + ${data}= Utils.Get Data From URI controller@{controller_index_list}[0] /restconf/operational/entity-owners:entity-owners + Log ${data} + ${clear_data}= Run Keyword If '${device_type}' == 'openflow' Extract OpenFlow Device Data ${data} + ... ELSE IF '${device_type}' == 'ovsdb' Extract Ovsdb Device Data ${data} + ... ELSE Fail Not recognized device type: ${device_type} + ${json}= RequestsLibrary.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}= Utils.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} + \ Append To List ${candidates_list} ${candidate} + List Should Contain Sublist ${candidates_list} ${controller_index_list} Candidates are missing in ${candidates_list} + Remove Values From List ${candidates_list} ${owner} + [Return] ${owner} ${candidates_list} + +Extract OpenFlow Device Data + [Arguments] ${data} + [Documentation] Remove superfluous OpenFlow device data from Entity Owner printout. + ${clear_data}= Replace String ${data} /general-entity:entity[general-entity:name=' ${EMPTY} + ${clear_data}= Replace String ${clear_data} '] ${EMPTY} + Log ${clear_data} + [Return] ${clear_data} + +Extract Ovsdb Device Data + [Arguments] ${data} + [Documentation] Remove superfluous OVSDB device data from Entity Owner printout. + ${clear_data}= Replace String ${data} /network-topology:network-topology/network-topology:topology[network-topology:topology-id='ovsdb:1']/network-topology:node[network-topology:node-id=' ${EMPTY} + ${clear_data}= Replace String ${clear_data} '] ${EMPTY} + Log ${clear_data} + [Return] ${clear_data} + Check Item Occurrence At URI In Cluster [Arguments] ${controller_index_list} ${dictionary_item_occurrence} ${uri} [Documentation] Send a GET with the supplied ${uri} to all cluster instances in ${controller_index_list} diff --git a/csit/libraries/ClusterOpenFlow.robot b/csit/libraries/ClusterOpenFlow.robot index b96fc1c9b2..e8debb8a64 100644 --- a/csit/libraries/ClusterOpenFlow.robot +++ b/csit/libraries/ClusterOpenFlow.robot @@ -29,43 +29,10 @@ Check OpenFlow Shards Status After Cluster Event [Documentation] Check Shards Status after some cluster event. Wait Until Keyword Succeeds 90s 1s ClusterOpenFlow.Check OpenFlow Shards Status ${controller_index_list} -Get Cluster Entity Owner For Openflow - [Arguments] ${controller_index_list} ${device_type} ${device} - [Documentation] Checks OpenFlow Entity Owner status for a ${device} and returns owner index and list of candidates from a ${controller_index_list}. - ... ${device_type} is normally openflow. - ${length}= Get Length ${controller_index_list} - ${candidates_list}= Create List - ${data}= Utils.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}= RequestsLibrary.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}= Utils.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} - \ Append To List ${candidates_list} ${candidate} - List Should Contain Sublist ${candidates_list} ${controller_index_list} Candidates are missing in ${candidates_list} - Remove Values From List ${candidates_list} ${owner} - [Return] ${owner} ${candidates_list} - Get OpenFlow Entity Owner Status For One Device [Arguments] ${controller_index_list} ${device} [Documentation] Check Entity Owner Status and identify owner and candidate. - ${owner} ${candidates_list} Wait Until Keyword Succeeds 10s 1s ClusterOpenFlow.Get Cluster Entity Owner For Openflow ${controller_index_list} + ${owner} ${candidates_list} Wait Until Keyword Succeeds 10s 1s ClusterKeywords.Get Cluster Entity Owner ${controller_index_list} ... openflow ${device} [Return] ${owner} ${candidates_list} diff --git a/csit/libraries/ClusterOvsdb.robot b/csit/libraries/ClusterOvsdb.robot index a685e20787..cce8813019 100644 --- a/csit/libraries/ClusterOvsdb.robot +++ b/csit/libraries/ClusterOvsdb.robot @@ -27,44 +27,10 @@ Check Ovsdb Shards Status After Cluster Event [Documentation] Check Shard Status after some cluster event. Wait Until Keyword Succeeds 90s 1s Check Ovsdb Shards Status ${controller_index_list} -Get Cluster Entity Owner For Ovsdb - [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}= Utils.Get Data From URI controller@{controller_index_list}[0] /restconf/operational/entity-owners:entity-owners - Log ${data} - ${data}= Replace String ${data} /network-topology:network-topology/network-topology:topology[network-topology:topology-id='ovsdb:1']/network-topology:node[network-topology:node-id=' ${EMPTY} - Log ${data} - ${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} - \ Append To List ${candidates_list} ${candidate} - List Should Contain Sublist ${candidates_list} ${controller_index_list} Candidates are missing in ${candidates_list} - Remove Values From List ${candidates_list} ${owner} - [Return] ${owner} ${candidates_list} - Get Ovsdb Entity Owner Status For One Device [Arguments] ${controller_index_list} ${device} [Documentation] Check Entity Owner Status and identify owner and candidate for an ovs device ${device}. - ${owner} ${candidates_list} Wait Until Keyword Succeeds 20s 1s Get Cluster Entity Owner For Ovsdb ${controller_index_list} + ${owner} ${candidates_list} Wait Until Keyword Succeeds 20s 1s ClusterKeywords.Get Cluster Entity Owner ${controller_index_list} ... ovsdb ${device} [Return] ${owner} ${candidates_list}