This is an automated email from the ASF dual-hosted git repository.

nanda pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 488c4765ff HDDS-9261. SCM Decommissioning Robot tests improvement. 
(#5269)
488c4765ff is described below

commit 488c4765ff15f11b8cd09d0a45873d82df373d72
Author: Pratyush Bhatt <[email protected]>
AuthorDate: Tue Oct 10 19:58:49 2023 +0530

    HDDS-9261. SCM Decommissioning Robot tests improvement. (#5269)
---
 .../disabled-test-root-ca-rotation.sh              |  4 +-
 .../main/smoketest/scmha/scm-decommission.robot    | 66 +++++++++++++++-------
 2 files changed, 49 insertions(+), 21 deletions(-)

diff --git 
a/hadoop-ozone/dist/src/main/compose/ozonesecure-ha/disabled-test-root-ca-rotation.sh
 
b/hadoop-ozone/dist/src/main/compose/ozonesecure-ha/disabled-test-root-ca-rotation.sh
index b1a9e52857..c8138d8923 100755
--- 
a/hadoop-ozone/dist/src/main/compose/ozonesecure-ha/disabled-test-root-ca-rotation.sh
+++ 
b/hadoop-ozone/dist/src/main/compose/ozonesecure-ha/disabled-test-root-ca-rotation.sh
@@ -86,8 +86,8 @@ execute_robot_test scm4.org  -v "TARGET_SCM:scm3.org" 
scmha/scm-leader-transfer.
 # wait for next root CA rotation
 wait_for_execute_command scm3.org 240 "ozone admin cert info 5"
 
-#decomission scm1.org
-execute_robot_test scm3.org scmha/scm-decommission.robot
+#decomission scm3.org
+execute_robot_test scm1.org scmha/scm-decommission.robot
 
 # check the metrics
 execute_robot_test scm2.org scmha/root-ca-rotation.robot
diff --git a/hadoop-ozone/dist/src/main/smoketest/scmha/scm-decommission.robot 
b/hadoop-ozone/dist/src/main/smoketest/scmha/scm-decommission.robot
index 49ce16b233..67f0666a58 100644
--- a/hadoop-ozone/dist/src/main/smoketest/scmha/scm-decommission.robot
+++ b/hadoop-ozone/dist/src/main/smoketest/scmha/scm-decommission.robot
@@ -14,47 +14,75 @@
 # limitations under the License.
 
 *** Settings ***
-Documentation       Smoketest ozone cluster startup
+Documentation       Test Ozone SCM Decommissioning
 Library             OperatingSystem
 Library             BuiltIn
 Resource            ../commonlib.robot
 Test Timeout        5 minutes
 
 *** Variables ***
+${VOLUME}           decom-volume
+${BUCKET}           decom-bucket
+${TESTFILE}         testfiledecomm
+
+*** Keywords ***
+Create volume bucket and put key
+    Execute                 ozone sh volume create /${VOLUME}
+    Execute                 ozone sh bucket create /${VOLUME}/${BUCKET}
+    Create File             /tmp/${TESTFILE}
+    Execute                 echo "This is a decommissioning test" > 
/tmp/${TESTFILE}
+    ${md5sum} =             Execute     md5sum /tmp/${TESTFILE} | awk '{print 
$1}'
+    Execute                 ozone sh key put /${VOLUME}/${BUCKET}/${TESTFILE} 
/tmp/${TESTFILE}
+    [Return]                ${md5sum}
+
+Get Primordial SCM ID
+    ${result} =             Execute                 ozone admin scm roles 
--service-id=scmservice
+    ${primordial_node} =    Get Lines Matching Pattern            ${result}    
     scm[1234].org:9894:LEADER*
+    ${primordial_split} =   Split String            ${primordial_node}         
:
+    ${primordial_scmId} =   Strip String            ${primordial_split[3]}
+    [Return]                ${primordial_scmId}
+
+Get SCM Node count
+    ${result} =              Execute                 ozone admin scm roles 
--service-id=scmservice
+    ${nodes_in_quorum} =     Get Lines Matching Pattern                      
${result}           scm[1234].org:9894:*
+    ${node_count} =          Get Line Count          ${nodes_in_quorum}
+    [Return]                 ${node_count}
 
-** Keywords ***
 
-*** Test Cases ***
 Transfer Leader to non-primordial node Follower
     ${result} =             Execute                 ozone admin scm roles 
--service-id=scmservice
                             LOG                     ${result}
-    ${follower_nodes} =     Get Lines Matching Pattern                      
${result}           scm[23].org:9894:FOLLOWER*
-    ${follower_node} =      Get Line                ${follower_nodes}        0
-    ${follower_split} =     Split String            ${follower_node}         :
+    ${follower_nodes} =     Get Lines Matching Pattern                     
${result}       scm[1234].org:9894:FOLLOWER*
+    ${follower_node} =      Get Line                ${follower_nodes}      0
+    ${follower_split} =     Split String            ${follower_node}       :
     ${follower_scmId} =     Strip String            ${follower_split[3]}
 
     ${result} =             Execute                 ozone admin scm transfer 
--service-id=scmservice -n ${follower_scmId}
                             LOG                     ${result}
-                            Should Contain          ${result}                
Transfer leadership successfully
+    [Return]                ${result}
 
+*** Test Cases ***
 Decommission SCM Primordial Node
-    ${result} =             Execute                 ozone admin scm roles 
--service-id=scmservice
-    ${nodes_in_quorum} =    Get Lines Matching Pattern                      
${result}           scm[1234].org:9894:*
-    ${node_count} =         Get Line Count          ${nodes_in_quorum}
+    ${primordial_scm_id} =  Get Primordial SCM ID
+                            LOG                     Primordial scm id : 
${primordial_scm_id}
+    ${decomm_output} =      Execute And Ignore Error   ozone admin scm 
decommission --nodeid=${primordial_scm_id}
+                            LOG                     ${decomm_output}
+                            Should Contain          ${decomm_output}           
    Cannot remove current leader
+    ${md5sum} =             Create volume bucket and put key
+    ${transfer_result} =    Transfer Leader to non-primordial node Follower
+                            Should Contain          ${transfer_result}       
Transfer leadership successfully
+    ${node_count} =         Get SCM Node count
     ${node_count_pre} =     Convert to String       ${node_count}
     ${n} =                  Evaluate                ${node_count}-1
     ${node_count_expect} =  Convert to String       ${n}
                             LOG                     SCM Instance Count before 
SCM Decommission: ${node_count_pre}
-    ${primordial_node} =    Get Lines Containing String                     
${result}           scm1
-    ${primordial_split} =   Split String            ${primordial_node}      :
-    ${primordial_scmId} =   Strip String            ${primordial_split[3]}
-    ${decommission_res} =   Execute                 ozone admin scm 
decommission --nodeid=${primordial_scmId}
+    ${decommission_res} =   Execute                 ozone admin scm 
decommission --nodeid=${primordial_scm_id}
                             LOG                     ${decommission_res}
                             Should Contain          ${decommission_res}        
                 Decommissioned
-    ${result} =             Execute                 ozone admin scm roles 
--service-id=scmservice
-    ${nodes_in_quorum} =    Get Lines Matching Pattern                      
${result}           scm[1234].org:9894:*
-    ${node_count} =         Get Line Count          ${nodes_in_quorum}
+    ${node_count} =         Get SCM Node count
     ${node_count_post} =    Convert to String       ${node_count}
                             LOG                     SCM Instance Count after 
SCM Decommission: ${node_count_post}
-                            Should be Equal         ${node_count_expect}       
                 ${node_count_post}
-
+                            Should be Equal         ${node_count_expect}       
                ${node_count_post}
+    Execute                 ozone sh key get /${VOLUME}/${BUCKET}/${TESTFILE} 
/tmp/getdecomfile
+    ${md5sum_new} =         Execute                 md5sum /tmp/getdecomfile | 
awk '{print $1}'
+                            Should be Equal         ${md5sum}                  
    ${md5sum_new}
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to