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

hemant 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 18b28d20e5 HDDS-11312. [hsync] Added upgrade tests (#7110)
18b28d20e5 is described below

commit 18b28d20e503cd333ac610019e0adb1310d36635
Author: Hemant Kumar <[email protected]>
AuthorDate: Wed Sep 4 10:55:38 2024 -0700

    HDDS-11312. [hsync] Added upgrade tests (#7110)
---
 .../main/compose/upgrade/compose/ha/docker-config  |  1 +
 .../compose/upgrade/compose/non-ha/docker-config   |  1 +
 .../compose/upgrade/compose/om-ha/docker-config    |  1 +
 .../callbacks/1.5.0/callback.sh                    | 31 ++++++++++
 .../debug/ozone-debug-lease-recovery.robot         | 22 ++++---
 .../dist/src/main/smoketest/freon/hsync.robot      | 51 ++++++++++++++++
 .../main/smoketest/hsync/upgrade-hsync-check.robot | 68 ++++++++++++++++++++++
 .../dist/src/main/smoketest/ozone-lib/freon.robot  |  6 ++
 8 files changed, 173 insertions(+), 8 deletions(-)

diff --git 
a/hadoop-ozone/dist/src/main/compose/upgrade/compose/ha/docker-config 
b/hadoop-ozone/dist/src/main/compose/upgrade/compose/ha/docker-config
index 909b72852a..a1b6da80c4 100644
--- a/hadoop-ozone/dist/src/main/compose/upgrade/compose/ha/docker-config
+++ b/hadoop-ozone/dist/src/main/compose/upgrade/compose/ha/docker-config
@@ -40,6 +40,7 @@ OZONE-SITE.XML_ozone.scm.container.size=1GB
 OZONE-SITE.XML_hdds.datanode.dir=/data/hdds
 OZONE-SITE.XML_hdds.datanode.volume.min.free.space=100MB
 OZONE-SITE.XML_ozone.http.basedir=/tmp/ozone_http
+OZONE-SITE.XML_ozone.fs.hsync.enabled=true
 
 # If SCM sends container close commands as part of upgrade finalization while
 # datanodes are doing a leader election, all 3 replicas may end up in the
diff --git 
a/hadoop-ozone/dist/src/main/compose/upgrade/compose/non-ha/docker-config 
b/hadoop-ozone/dist/src/main/compose/upgrade/compose/non-ha/docker-config
index 95ce6c0c9c..88126ddf2c 100644
--- a/hadoop-ozone/dist/src/main/compose/upgrade/compose/non-ha/docker-config
+++ b/hadoop-ozone/dist/src/main/compose/upgrade/compose/non-ha/docker-config
@@ -37,6 +37,7 @@ OZONE-SITE.XML_ozone.recon.db.dir=/data/metadata/recon
 OZONE-SITE.XML_ozone.recon.om.snapshot.task.interval.delay=1m
 OZONE-SITE.XML_hdds.scmclient.max.retry.timeout=30s
 OZONE-SITE.XML_ozone.http.basedir=/tmp/ozone_http
+OZONE-SITE.XML_ozone.fs.hsync.enabled=true
 
 OZONE_CONF_DIR=/etc/hadoop
 OZONE_LOG_DIR=/var/log/hadoop
diff --git 
a/hadoop-ozone/dist/src/main/compose/upgrade/compose/om-ha/docker-config 
b/hadoop-ozone/dist/src/main/compose/upgrade/compose/om-ha/docker-config
index 1b805c9896..77fa2b40ee 100644
--- a/hadoop-ozone/dist/src/main/compose/upgrade/compose/om-ha/docker-config
+++ b/hadoop-ozone/dist/src/main/compose/upgrade/compose/om-ha/docker-config
@@ -32,6 +32,7 @@ OZONE-SITE.XML_ozone.scm.block.client.address=scm
 OZONE-SITE.XML_ozone.scm.container.size=1GB
 OZONE-SITE.XML_ozone.scm.client.address=scm
 OZONE-SITE.XML_ozone.http.basedir=/tmp/ozone_http
+OZONE-SITE.XML_ozone.fs.hsync.enabled=true
 
 OZONE-SITE.XML_hdds.datanode.dir=/data/hdds
 OZONE-SITE.XML_hdds.datanode.volume.min.free.space=100MB
diff --git 
a/hadoop-ozone/dist/src/main/compose/upgrade/upgrades/non-rolling-upgrade/callbacks/1.5.0/callback.sh
 
b/hadoop-ozone/dist/src/main/compose/upgrade/upgrades/non-rolling-upgrade/callbacks/1.5.0/callback.sh
new file mode 100644
index 0000000000..ec64d5dcd5
--- /dev/null
+++ 
b/hadoop-ozone/dist/src/main/compose/upgrade/upgrades/non-rolling-upgrade/callbacks/1.5.0/callback.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+source "$TEST_DIR"/testlib.sh
+
+with_this_version_pre_finalized() {
+  # New layout features were added in this version, so OM and SCM should be 
pre-finalized.
+  execute_robot_test "$SCM" -N "${OUTPUT_NAME}-check-finalization" --include 
pre-finalized upgrade/check-finalization.robot
+  # Test that HSync is disabled when pre-finalized.
+  execute_robot_test "$SCM" -N "${OUTPUT_NAME}-hsync" --include 
pre-finalized-hsync-tests hsync/upgrade-hsync-check.robot
+}
+
+with_this_version_finalized() {
+  execute_robot_test "$SCM" -N "${OUTPUT_NAME}-check-finalization" --include 
finalized upgrade/check-finalization.robot
+  execute_robot_test "$SCM" -N "${OUTPUT_NAME}-hsync" 
debug/ozone-debug-lease-recovery.robot
+  execute_robot_test "$SCM" -N "${OUTPUT_NAME}-freon-hsync" freon/hsync.robot
+}
diff --git 
a/hadoop-ozone/dist/src/main/smoketest/debug/ozone-debug-lease-recovery.robot 
b/hadoop-ozone/dist/src/main/smoketest/debug/ozone-debug-lease-recovery.robot
index f867ee99f6..691769dbd7 100644
--- 
a/hadoop-ozone/dist/src/main/smoketest/debug/ozone-debug-lease-recovery.robot
+++ 
b/hadoop-ozone/dist/src/main/smoketest/debug/ozone-debug-lease-recovery.robot
@@ -17,11 +17,13 @@
 Documentation       Test lease recovery of ozone filesystem
 Library             OperatingSystem
 Resource            ../lib/os.robot
+Resource            ../lib/fs.robot
 Resource            ozone-debug.robot
 Test Timeout        5 minute
 Suite Setup         Create volume bucket and put key
 
 *** Variables ***
+${OM_SERVICE_ID}    %{OM_SERVICE_ID}
 ${VOLUME}           lease-recovery-volume
 ${BUCKET}           lease-recovery-bucket
 ${TESTFILE}         testfile22
@@ -35,13 +37,17 @@ Create volume bucket and put key
 
 *** Test Cases ***
 Test ozone debug recover for o3fs
-    ${result} =              Execute Lease recovery cli    
o3fs://${BUCKET}.${VOLUME}.om/${TESTFILE}
-    Should Contain    ${result}   Lease recovery SUCCEEDED
-    ${result} =              Execute Lease recovery cli    
o3fs://${BUCKET}.${VOLUME}.om/randomfile
-    Should Contain    ${result}    not found
+    ${o3fs_path} =     Format FS URL         o3fs    ${VOLUME}    ${BUCKET}    
${TESTFILE}
+    ${result} =        Execute Lease recovery cli    ${o3fs_path}
+                       Should Contain    ${result}   Lease recovery SUCCEEDED
+    ${o3fs_path} =     Format FS URL         o3fs    ${VOLUME}    ${BUCKET}    
randomfile
+    ${result} =        Execute Lease recovery cli    ${o3fs_path}
+                       Should Contain    ${result}    not found
 
 Test ozone debug recover for ofs
-    ${result} =              Execute Lease recovery cli    
ofs://om/${VOLUME}/${BUCKET}/${TESTFILE}
-    Should Contain    ${result}   Lease recovery SUCCEEDED
-    ${result} =              Execute Lease recovery cli    
ofs://om/${VOLUME}/${BUCKET}/randomfile
-    Should Contain    ${result}    not found
+    ${ofs_path} =      Format FS URL         ofs     ${VOLUME}    ${BUCKET}    
${TESTFILE}
+    ${result} =        Execute Lease recovery cli    ${ofs_path}
+                       Should Contain    ${result}   Lease recovery SUCCEEDED
+    ${ofs_path} =      Format FS URL         ofs     ${VOLUME}    ${BUCKET}    
randomfile
+    ${result} =        Execute Lease recovery cli    ${ofs_path}
+                       Should Contain    ${result}    not found
diff --git a/hadoop-ozone/dist/src/main/smoketest/freon/hsync.robot 
b/hadoop-ozone/dist/src/main/smoketest/freon/hsync.robot
new file mode 100644
index 0000000000..c846212442
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/smoketest/freon/hsync.robot
@@ -0,0 +1,51 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+Documentation       Test HSync via freon CLI.
+Library             OperatingSystem
+Library             String
+Library             BuiltIn
+Resource            ../ozone-lib/freon.robot
+Resource            ../lib/fs.robot
+Test Timeout        10 minutes
+Suite Setup         Create volume and bucket
+
+*** Variables ***
+${OM_SERVICE_ID}    %{OM_SERVICE_ID}
+${VOLUME}           hsync-volume
+${BUCKET}           hsync-bucket
+
+*** Keywords ***
+Create volume and bucket
+    Execute             ozone sh volume create /${volume}
+    Execute             ozone sh bucket create /${volume}/${bucket}
+
+*** Test Cases ***
+Generate key for o3fs by HSYNC
+    ${path} =     Format FS URL         o3fs     ${VOLUME}    ${BUCKET}
+    Freon DFSG    sync=HSYNC    path=${path}
+
+Generate key for o3fs by HFLUSH
+    ${path} =     Format FS URL         o3fs     ${VOLUME}    ${BUCKET}
+    Freon DFSG    sync=HFLUSH   path=${path}
+
+Generate key for ofs by HSYNC
+    ${path} =     Format FS URL         ofs     ${VOLUME}    ${BUCKET}
+    Freon DFSG    sync=HSYNC    path=${path}
+
+Generate key for ofs by HFLUSH
+    ${path} =     Format FS URL         ofs     ${VOLUME}    ${BUCKET}
+    Freon DFSG    sync=HFLUSH   path=${path}
diff --git 
a/hadoop-ozone/dist/src/main/smoketest/hsync/upgrade-hsync-check.robot 
b/hadoop-ozone/dist/src/main/smoketest/hsync/upgrade-hsync-check.robot
new file mode 100644
index 0000000000..1250ad1344
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/smoketest/hsync/upgrade-hsync-check.robot
@@ -0,0 +1,68 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+Documentation       Test HSync during upgrade
+Library             OperatingSystem
+Library             String
+Library             BuiltIn
+Resource            ../commonlib.robot
+Resource            ../lib/fs.robot
+Resource            ../debug/ozone-debug.robot
+Default Tags        pre-finalized-hsync-tests
+Suite Setup         Run Keyword if    '${SECURITY_ENABLED}' == 'true'    Kinit 
test user     testuser     testuser.keytab
+
+*** Variables ***
+${OM_SERVICE_ID}    %{OM_SERVICE_ID}
+${VOLUME}           upgrade-hsync-volume
+${BUCKET}           upgrade-hsync-bucket
+${KEY}              upgrade-hsync-key
+
+*** Keywords ***
+Create volume bucket and put key
+    Execute             ozone sh volume create /${volume}
+    Execute             ozone sh bucket create /${volume}/${bucket}
+    Execute             ozone sh key put /${volume}/${bucket}/${key} /etc/hosts
+
+Freon DFSG
+    [arguments]    ${prefix}=dfsg    ${n}=1000    ${path}={EMPTY}    
${sync}=HSYNC    ${buffer}=1024    ${copy-buffer}=1024    ${size}=10240
+    ${result} =    Execute and checkrc   ozone freon dfsg -n ${n} --sync 
${sync} -s ${size} --path ${path} --buffer ${buffer} --copy-buffer 
${copy-buffer} -p ${prefix}    255
+                   Should contain   ${result}   
NOT_SUPPORTED_OPERATION_PRIOR_FINALIZATION
+
+*** Test Cases ***
+Test HSync lease recover prior to finalization
+    Create volume bucket and put key
+    ${o3fs_path} =  Format FS URL          o3fs     ${VOLUME}    ${BUCKET}    
${KEY}
+    ${result} =     Execute and checkrc    ozone debug recover 
--path=${o3fs_path}    255
+                    Should contain  ${result}  It belongs to the layout 
feature HBASE_SUPPORT, whose layout version is 7
+    ${ofs_path} =   Format FS URL          ofs      ${VOLUME}    ${BUCKET}    
${KEY}
+    ${result} =     Execute and checkrc    ozone debug recover 
--path=${ofs_path}    255
+                    Should contain  ${result}  It belongs to the layout 
feature HBASE_SUPPORT, whose layout version is 7
+
+Generate key for o3fs by HSYNC prior to finalization
+    ${path} =     Format FS URL         o3fs     ${VOLUME}    ${BUCKET}
+    Freon DFSG    sync=HSYNC    path=${path}
+
+Generate key for o3fs by HFLUSH prior to finalization
+    ${path} =     Format FS URL         o3fs     ${VOLUME}    ${BUCKET}
+    Freon DFSG    sync=HFLUSH    path=${path}
+
+Generate key for ofs by HSYNC prior to finalization
+    ${path} =     Format FS URL         ofs     ${VOLUME}    ${BUCKET}
+    Freon DFSG    sync=HSYNC    path=${path}
+
+Generate key for ofs by HFLUSH prior to finalization
+    ${path} =     Format FS URL         ofs     ${VOLUME}    ${BUCKET}
+    Freon DFSG    sync=HFLUSH    path=${path}
diff --git a/hadoop-ozone/dist/src/main/smoketest/ozone-lib/freon.robot 
b/hadoop-ozone/dist/src/main/smoketest/ozone-lib/freon.robot
index 8d10cc81e9..b813c9ed41 100644
--- a/hadoop-ozone/dist/src/main/smoketest/ozone-lib/freon.robot
+++ b/hadoop-ozone/dist/src/main/smoketest/ozone-lib/freon.robot
@@ -67,3 +67,9 @@ Freon OMBR
     [arguments]    ${prefix}=ombg    ${n}=1    ${threads}=1    ${args}=${EMPTY}
     ${result} =        Execute          ozone freon ombr ${OM_HA_PARAM} -t 
${threads} -n${n} -p ${prefix} ${args}
                        Should contain   ${result}   Successful executions: ${n}
+
+Freon DFSG
+    [arguments]    ${prefix}=dfsg    ${n}=1000    ${path}={EMPTY}    
${threads}=1    ${sync}=HSYNC    ${buffer}=1024    ${copy-buffer}=1024    
${size}=10240    ${args}=${EMPTY}
+    ${result} =    Execute    ozone freon dfsg -n ${n} --sync ${sync} -s 
${size} --path ${path} --buffer ${buffer} --copy-buffer ${copy-buffer} -p 
${prefix} -t ${threads} ${args}
+                   Should contain   ${result}   Successful executions: ${n}
+


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

Reply via email to