X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FShardStability.robot;h=44ab75f403f00660c536c515dc266d17fb259bbf;hb=7dc9678b294479446ce4fb72ccca9994384bd03b;hp=015c2c95e3e8d630fb3b2a6c2d00554a54eabf42;hpb=5f64af6d5b5290ef5d92e97f6bde4d83e2915f1e;p=integration%2Ftest.git diff --git a/csit/libraries/ShardStability.robot b/csit/libraries/ShardStability.robot index 015c2c95e3..44ab75f403 100644 --- a/csit/libraries/ShardStability.robot +++ b/csit/libraries/ShardStability.robot @@ -14,12 +14,14 @@ Documentation Robot library to monitor shard stability. ... Requirements: ClusterManagement.ClusterManagement_Setup must be called before Shard_Stability_Init ... ... It is possible to use it for stateless comparison. +... Variable @{DEFAULT_SHARD_LIST} contains default module shards. Library Collections Library String Resource ${CURDIR}/ClusterManagement.robot *** Variables *** &{stored_details} +@{DEFAULT_SHARD_LIST} default:config default:operational topology:config topology:operational inventory:config inventory:operational entity-ownership:operational *** Keywords *** Shards_Stability_Init_Details @@ -30,16 +32,19 @@ Shards_Stability_Init_Details BuiltIn.Set_Suite_Variable ${stored_details} ${shards_details} Shards_Stability_Get_Details - [Arguments] ${shard_list} ${member_index_list}=${EMPTY} + [Arguments] ${shard_list} ${member_index_list}=${EMPTY} ${verify_restconf}=False ${http_timeout}=${EMPTY} [Documentation] Return shard details stored in dictionary. ... ${shard_list} should be initialized as @{list} shard_name1:shard_type1 shard_name2:shard.. &{shards_details} BuiltIn.Create_Dictionary - : FOR ${shard_details} IN @{shard_list} - \ ${shard_name} ${shard_type} String.Split_String ${shard_details} separator=: - \ ${leader} ${followers} ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name} shard_type=${shard_type} member_index_list=${member_index_list} - \ Collections.Sort_List ${followers} - \ Collections.Set_To_Dictionary ${shards_details} ${shard_name}_${shard_type}_leader=${leader} - \ Collections.Set_To_Dictionary ${shards_details} ${shard_name}_${shard_type}_followers=${followers} + CompareStream.Run_Keyword_If_At_Least_Phosphorus Collections.Remove_Values_From_List ${shard_list} entity-ownership:operational + FOR ${shard_details} IN @{shard_list} + ${shard_name} ${shard_type} String.Split_String ${shard_details} separator=: + ${leader} ${followers} ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name} shard_type=${shard_type} member_index_list=${member_index_list} + ... verify_restconf=${verify_restconf} http_timeout=${http_timeout} + Collections.Sort_List ${followers} + Collections.Set_To_Dictionary ${shards_details} ${shard_name}_${shard_type}_leader=${leader} + Collections.Set_To_Dictionary ${shards_details} ${shard_name}_${shard_type}_followers=${followers} + END BuiltIn.Return_From_Keyword ${shards_details} Shards_Stability_Verify @@ -55,3 +60,24 @@ Shards_Stability_Compare_Same Collections.Log_Dictionary ${exp_details} Collections.Log_Dictionary ${details} Collections.Dictionaries_Should_Be_Equal ${exp_details} ${details} + +Set_Shard_Location + [Arguments] ${requested_leader_idx} + [Documentation] Move default/topology config/operational shard location to local or remote node as requested + ... towards the given member. + ClusterAdmin.Make_Leader_Local ${requested_leader_idx} default config + ClusterAdmin.Make_Leader_Local ${requested_leader_idx} default operational + ClusterAdmin.Make_Leader_Local ${requested_leader_idx} topology config + ClusterAdmin.Make_Leader_Local ${requested_leader_idx} topology operational + +Verify_Shard_Leader_Located_As_Expected + [Arguments] ${expected_leader_idx} ${http_timeout}=${EMPTY} + [Documentation] Verify default/topology config/operational shard leader location is as expected + ${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=default shard_type=config verify_restconf=False http_timeout=${http_timeout} + BuiltIn.Should_Be_Equal_As_Numbers ${expected_leader_idx} ${leader} + ${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=default shard_type=operational verify_restconf=False http_timeout=${http_timeout} + BuiltIn.Should_Be_Equal_As_Numbers ${expected_leader_idx} ${leader} + ${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=topology shard_type=config verify_restconf=False http_timeout=${http_timeout} + BuiltIn.Should_Be_Equal_As_Numbers ${expected_leader_idx} ${leader} + ${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=topology shard_type=operational verify_restconf=False http_timeout=${http_timeout} + BuiltIn.Should_Be_Equal_As_Numbers ${expected_leader_idx} ${leader}