This is an automated email from the ASF dual-hosted git repository.
elek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 755170d HDDS-3826. Split Ozone FS acceptance tests (#1093)
755170d is described below
commit 755170d162fc48be97d574a973d72b12fc236cf8
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Mon Jun 22 15:52:32 2020 +0200
HDDS-3826. Split Ozone FS acceptance tests (#1093)
---
hadoop-ozone/dist/src/main/compose/ozone/test.sh | 5 +-
.../dist/src/main/compose/ozonesecure/test.sh | 3 +-
hadoop-ozone/dist/src/main/compose/testlib.sh | 4 +-
.../dist/src/main/smoketest/commonlib.robot | 6 +-
hadoop-ozone/dist/src/main/smoketest/lib/fs.robot | 50 +++++
.../dist/src/main/smoketest/lib/fs_tests.robot | 63 ++++++
.../dist/src/main/smoketest/lib/string.robot | 37 ++++
.../dist/src/main/smoketest/lib/string_tests.robot | 46 ++++
.../dist/src/main/smoketest/ozonefs/ozonefs.robot | 242 ++++++++++-----------
.../dist/src/main/smoketest/ozonefs/setup.robot | 60 +++++
10 files changed, 385 insertions(+), 131 deletions(-)
diff --git a/hadoop-ozone/dist/src/main/compose/ozone/test.sh
b/hadoop-ozone/dist/src/main/compose/ozone/test.sh
index b77bd55..e0b1d62 100755
--- a/hadoop-ozone/dist/src/main/compose/ozone/test.sh
+++ b/hadoop-ozone/dist/src/main/compose/ozone/test.sh
@@ -32,11 +32,14 @@ start_docker_env
#Disabling for now, audit parser tool during parse getting exception.
#execute_robot_test om auditparser
+execute_robot_test scm lib
+
execute_robot_test scm basic
execute_robot_test scm gdpr
-execute_robot_test scm ozonefs/ozonefs.robot
+execute_robot_test scm -v SCHEME:ofs ozonefs/ozonefs.robot
+execute_robot_test scm -v SCHEME:o3fs ozonefs/ozonefs.robot
execute_robot_test scm security/ozone-secure-token.robot
diff --git a/hadoop-ozone/dist/src/main/compose/ozonesecure/test.sh
b/hadoop-ozone/dist/src/main/compose/ozonesecure/test.sh
index d1bdd0d..bbdf5d3 100755
--- a/hadoop-ozone/dist/src/main/compose/ozonesecure/test.sh
+++ b/hadoop-ozone/dist/src/main/compose/ozonesecure/test.sh
@@ -31,7 +31,8 @@ execute_robot_test scm basic
execute_robot_test scm security
-execute_robot_test scm ozonefs/ozonefs.robot
+execute_robot_test scm -v SCHEME:ofs ozonefs/ozonefs.robot
+execute_robot_test scm -v SCHEME:o3fs ozonefs/ozonefs.robot
execute_robot_test s3g s3
diff --git a/hadoop-ozone/dist/src/main/compose/testlib.sh
b/hadoop-ozone/dist/src/main/compose/testlib.sh
index d6b4974..15d1664 100755
--- a/hadoop-ozone/dist/src/main/compose/testlib.sh
+++ b/hadoop-ozone/dist/src/main/compose/testlib.sh
@@ -25,6 +25,8 @@ SMOKETEST_DIR_INSIDE="${OZONE_DIR:-/opt/hadoop}/smoketest"
OM_HA_PARAM=""
if [[ -n "${OM_SERVICE_ID}" ]]; then
OM_HA_PARAM="--om-service-id=${OM_SERVICE_ID}"
+else
+ OM_SERVICE_ID=om
fi
## @description create results directory, purging any prior data
@@ -113,7 +115,7 @@ execute_robot_test(){
OUTPUT_PATH="$RESULT_DIR_INSIDE/${OUTPUT_FILE}"
# shellcheck disable=SC2068
docker-compose -f "$COMPOSE_FILE" exec -T "$CONTAINER" mkdir -p
"$RESULT_DIR_INSIDE" \
- && docker-compose -f "$COMPOSE_FILE" exec -T -e
SECURITY_ENABLED="${SECURITY_ENABLED}" -e OM_HA_PARAM="${OM_HA_PARAM}" -e
OM_SERVICE_ID="${OM_SERVICE_ID}" "$CONTAINER" robot ${ARGUMENTS[@]} --log NONE
-N "$TEST_NAME" --report NONE "${OZONE_ROBOT_OPTS[@]}" --output "$OUTPUT_PATH"
"$SMOKETEST_DIR_INSIDE/$TEST"
+ && docker-compose -f "$COMPOSE_FILE" exec -T "$CONTAINER" robot -v
OM_SERVICE_ID:"${OM_SERVICE_ID}" -v SECURITY_ENABLED:"${SECURITY_ENABLED}" -v
OM_HA_PARAM:"${OM_HA_PARAM}" ${ARGUMENTS[@]} --log NONE -N "$TEST_NAME"
--report NONE "${OZONE_ROBOT_OPTS[@]}" --output "$OUTPUT_PATH"
"$SMOKETEST_DIR_INSIDE/$TEST"
local -i rc=$?
FULL_CONTAINER_NAME=$(docker-compose -f "$COMPOSE_FILE" ps | grep
"_${CONTAINER}_" | head -n 1 | awk '{print $1}')
diff --git a/hadoop-ozone/dist/src/main/smoketest/commonlib.robot
b/hadoop-ozone/dist/src/main/smoketest/commonlib.robot
index 133c63e..407111a 100644
--- a/hadoop-ozone/dist/src/main/smoketest/commonlib.robot
+++ b/hadoop-ozone/dist/src/main/smoketest/commonlib.robot
@@ -19,9 +19,9 @@ Library String
Library BuiltIn
*** Variables ***
-${SECURITY_ENABLED} %{SECURITY_ENABLED}
-${OM_HA_PARAM} %{OM_HA_PARAM}
-${OM_SERVICE_ID} %{OM_SERVICE_ID}
+${SECURITY_ENABLED} false
+${OM_HA_PARAM} ${EMPTY}
+${OM_SERVICE_ID} om
*** Keywords ***
Execute
diff --git a/hadoop-ozone/dist/src/main/smoketest/lib/fs.robot
b/hadoop-ozone/dist/src/main/smoketest/lib/fs.robot
new file mode 100644
index 0000000..b783a5b
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/smoketest/lib/fs.robot
@@ -0,0 +1,50 @@
+# 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 ***
+Resource string.robot
+
+
+*** Variables ***
+${OM_SERVICE_ID} om
+
+
+*** Keywords ***
+Format FS URL
+ [arguments] ${scheme} ${volume} ${bucket} ${path}=${EMPTY}
+
+ ${url} = Run Keyword If '${scheme}' == 'o3fs' Format o3fs URL
${volume} ${bucket} ${path}
+ ... ELSE IF '${scheme}' == 'ofs' Format ofs URL
${volume} ${bucket} ${path}
+ ... ELSE Fail Unsupported FS
scheme: ${scheme}
+
+ [return] ${url}
+
+Format o3fs URL
+ [arguments] ${volume} ${bucket} ${path}=${EMPTY}
${om}=${OM_SERVICE_ID}
+ ${om_with_leading} = Run Keyword If '${om}' != '${EMPTY}'
Ensure Leading . ${om}
+ ... ELSE Set Variable ${EMPTY}
+ [return] o3fs://${bucket}.${volume}${om_with_leading}/${path}
+
+Format ofs URL
+ [arguments] ${volume} ${bucket} ${path}=${EMPTY}
${om}=${OM_SERVICE_ID}
+
+ ${om_with_trailing} = Run Keyword If '${om}' != '${EMPTY}'
Ensure Trailing / ${om}
+ ... ELSE Set Variable ${EMPTY}
+
+ ${path_with_leading} = Run Keyword If '${path}' != '${EMPTY}'
Ensure Leading / ${path}
+ ... ELSE Set Variable ${EMPTY}
+
+ [return]
ofs://${om_with_trailing}${volume}/${bucket}${path_with_leading}
+
diff --git a/hadoop-ozone/dist/src/main/smoketest/lib/fs_tests.robot
b/hadoop-ozone/dist/src/main/smoketest/lib/fs_tests.robot
new file mode 100644
index 0000000..a1a993c
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/smoketest/lib/fs_tests.robot
@@ -0,0 +1,63 @@
+# 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 ***
+Resource fs.robot
+
+
+*** Test Cases ***
+
+Format o3fs URL without path
+ ${result} = Format o3fs URL vol1 bucket1
+ Should Be Equal ${result} o3fs://bucket1.vol1.om/
+
+Format o3fs URL with path
+ ${result} = Format o3fs URL vol1 bucket1 dir/file
+ Should Be Equal ${result} o3fs://bucket1.vol1.om/dir/file
+
+Format o3fs URL with OM
+ ${result} = Format o3fs URL vol1 bucket1 dir/file omservice
+ Should Be Equal ${result} o3fs://bucket1.vol1.omservice/dir/file
+
+
+Format ofs URL without path
+ ${result} = Format ofs URL vol1 bucket1
+ Should Be Equal ${result} ofs://om/vol1/bucket1
+
+Format ofs URL with path
+ ${result} = Format ofs URL vol1 bucket1 dir/file
+ Should Be Equal ${result} ofs://om/vol1/bucket1/dir/file
+
+Format ofs URL with OM
+ ${result} = Format ofs URL vol1 bucket1 dir/file om:1234
+ Should Be Equal ${result} ofs://om:1234/vol1/bucket1/dir/file
+
+
+Format FS URL with ofs scheme
+ ${result} = Format FS URL ofs vol1 bucket1
+ ${expected} = Format ofs URL vol1 bucket1
+ Should Be Equal ${result} ${expected}
+
+Format FS URL with o3fs scheme
+ ${result} = Format FS URL o3fs vol1 bucket1
+ ${expected} = Format o3fs URL vol1 bucket1
+ Should Be Equal ${result} ${expected}
+
+Format FS URL with unsupported scheme
+ ${result} = Run Keyword And Expect Error * Format FS URL http
org apache
+ Should Contain ${result} http
+ Should Contain ${result} nsupported
+
+
diff --git a/hadoop-ozone/dist/src/main/smoketest/lib/string.robot
b/hadoop-ozone/dist/src/main/smoketest/lib/string.robot
new file mode 100644
index 0000000..bc89299
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/smoketest/lib/string.robot
@@ -0,0 +1,37 @@
+# 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 ***
+Library String
+
+
+*** Keywords ***
+Ensure Leading
+ [arguments] ${char} ${string}
+
+ ${first} = Get Substring ${string} 0 1
+ ${result} = Set Variable If '${first}' == '${char}' ${string}
${char}${string}
+
+ [return] ${result}
+
+
+Ensure Trailing
+ [arguments] ${char} ${string}
+
+ ${last} = Get Substring ${string} -1
+ ${result} = Set Variable If '${last}' == '${char}' ${string}
${string}${char}
+
+ [return] ${result}
+
diff --git a/hadoop-ozone/dist/src/main/smoketest/lib/string_tests.robot
b/hadoop-ozone/dist/src/main/smoketest/lib/string_tests.robot
new file mode 100644
index 0000000..0dd1544
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/smoketest/lib/string_tests.robot
@@ -0,0 +1,46 @@
+# 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 ***
+Resource string.robot
+
+
+*** Test Cases ***
+
+Ensure Leading without Leading
+ ${result} = Ensure Leading / a/b
+ Should Be Equal ${result} /a/b
+
+Ensure Leading with Leading
+ ${result} = Ensure Leading _ _a_b_c
+ Should Be Equal ${result} _a_b_c
+
+Ensure Leading for empty
+ ${result} = Ensure Leading | ${EMPTY}
+ Should Be Equal ${result} |
+
+
+Ensure Trailing without Trailing
+ ${result} = Ensure Trailing . x.y.z
+ Should Be Equal ${result} x.y.z.
+
+Ensure Trailing with Trailing
+ ${result} = Ensure Trailing x axbxcx
+ Should Be Equal ${result} axbxcx
+
+Ensure Trailing for empty
+ ${result} = Ensure Trailing = ${EMPTY}
+ Should Be Equal ${result} =
+
diff --git a/hadoop-ozone/dist/src/main/smoketest/ozonefs/ozonefs.robot
b/hadoop-ozone/dist/src/main/smoketest/ozonefs/ozonefs.robot
index e6ab0d3..6d0042b 100644
--- a/hadoop-ozone/dist/src/main/smoketest/ozonefs/ozonefs.robot
+++ b/hadoop-ozone/dist/src/main/smoketest/ozonefs/ozonefs.robot
@@ -14,135 +14,127 @@
# limitations under the License.
*** Settings ***
-Documentation Ozonefs test covering both o3fs and ofs
+Documentation Ozone FS tests
Library OperatingSystem
Resource ../commonlib.robot
+Resource setup.robot
Test Timeout 5 minutes
-
-*** Variables ***
-${OfsBucket1} om:9862/fstest/bucket1
-${O3fsBucket1} bucket1.fstest/
-${O3Bucket1} o3://om/fstest/bucket1
-${O3Bucket2} o3://om/fstest/bucket2
-${O3Bucket3} o3://om/fstest2/bucket3
-
-${OfsNonExistBucket} om:9862/abc/def
-${O3fsNonExistBucket} def.abc/
-${NonExistVolume} abc
+Suite Setup Setup ${BUCKET_TYPE}s for FS test
*** Test Cases ***
-Create volume and bucket for Ozone file System test
- Execute ozone sh volume create o3://om/fstest --quota 100TB
- Execute ozone sh bucket create ${O3Bucket1}
- Execute ozone sh bucket create ${O3Bucket2}
-
- Execute ozone sh volume create o3://om/fstest2 --quota 100TB
- Execute ozone sh bucket create ${O3Bucket3}
-
-
-Check volume from o3fs
- ${result} = Execute ozone sh volume list
- Should contain ${result} fstest
- Should contain ${result} fstest2
- Should Match Regexp ${result} "admin" :
"(hadoop|testuser\/scm@EXAMPLE\.COM)"
- ${result} = Execute ozone fs -ls
o3fs://${O3fsBucket1}
-
-Test ozone shell with ofs
- Test ozone shell with scheme ofs om:9862/fstest/bucket1
om:9862/fstest/bucket2 om:9862/fstest2/bucket3 om:9862/abc/def
-
-Test ozone shell with o3fs
- Test ozone shell with scheme o3fs bucket1.fstest/
bucket2.fstest/ bucket3.fstest2/ def.abc/
+List root
+ ${root} = Format FS URL ${SCHEME} ${VOLUME} ${BUCKET}
+ Execute ozone fs -ls ${root}
+
+List non-existent volume
+ ${url} = Format FS URL ${SCHEME} no-such-volume
${BUCKET}
+ ${result} = Execute and checkrc ozone fs -ls ${url} 1
+ Should Match Regexp ${result} (Check access
operation failed)|(Volume no-such-volume is not found)|(No such file or
directory)
+
+List non-existent bucket
+ ${url} = Format FS URL ${SCHEME} ${VOLUME}
no-such-bucket
+ ${result} = Execute and checkrc ozone fs -ls ${url} 1
+ Should Match Regexp ${result} (Check access
operation failed)|(Bucket not found)|(No such file or directory)
+
+Create dir with parents
+ Execute ozone fs -mkdir -p ${DEEP_URL}
+ ${result} = Execute ozone sh key list ${VOLUME}/${BUCKET}
| jq -r '.name'
+ Should contain ${result} ${DEEP_DIR}
+
+Copy from local
+ Execute ozone fs -copyFromLocal NOTICE.txt
${DEEP_URL}/
+ ${result} = Execute ozone sh key list ${VOLUME}/${BUCKET}
| jq -r '.name'
+ Should contain ${result} NOTICE.txt
+ ${result} = Execute ozone sh key info
${VOLUME}/${BUCKET}/${DEEP_DIR}/NOTICE.txt | jq -r '.replicationFactor'
+ Should Be Equal ${result} 3
+
+Put
+ Execute ozone fs -put NOTICE.txt
${DEEP_URL}/PUTFILE.txt
+ ${result} = Execute ozone sh key list ${VOLUME}/${BUCKET}
| jq -r '.name'
+ Should contain ${result} PUTFILE.txt
+
+List
+ ${result} = Execute ozone fs -ls ${DEEP_URL}/
+ Should contain ${result} NOTICE.txt
+ Should contain ${result} PUTFILE.txt
+
+Move
+ Execute ozone fs -mv ${DEEP_URL}/NOTICE.txt
${DEEP_URL}/MOVED.TXT
+ ${result} = Execute ozone sh key list ${VOLUME}/${BUCKET}
| jq -r '.name'
+ Should contain ${result} MOVED.TXT
+ Should not contain ${result} NOTICE.txt
+
+Copy within FS
+ [Setup] Execute ozone fs -mkdir -p ${DEEP_URL}/subdir1
+ Execute ozone fs -cp ${DEEP_URL}/MOVED.TXT
${DEEP_URL}/subdir1/NOTICE.txt
+ ${result} = Execute ozone sh key list ${VOLUME}/${BUCKET}
| jq -r '.name'
+ Should contain ${result} subdir1/NOTICE.txt
+
+ ${result} = Execute ozone fs -ls ${DEEP_URL}/subdir1/
+ Should contain ${result} NOTICE.txt
+ Should not contain ${result} Failed
+
+Cat file
+ Execute ozone fs -cat
${DEEP_URL}/subdir1/NOTICE.txt
+
+Delete file
+ Execute ozone fs -rm
${DEEP_URL}/subdir1/NOTICE.txt
+ ${result} = Execute ozone sh key list ${VOLUME}/${BUCKET}
| jq -r '.name'
+ Should not contain ${result} NOTICE.txt
+
+Delete dir
+ ${result} = Execute ozone fs -rmdir ${DEEP_URL}/subdir1/
+ ${result} = Execute ozone sh key list ${VOLUME}/${BUCKET}
| jq -r '.name'
+ Should not contain ${result} subdir1
+
+Touch file
+ Execute ozone fs -touch
${DEEP_URL}/TOUCHFILE-${SCHEME}.txt
+ ${result} = Execute ozone sh key list ${VOLUME}/${BUCKET}
| jq -r '.name'
+ Should contain ${result}
TOUCHFILE-${SCHEME}.txt
+
+Delete recursively
+ Execute ozone fs -rm -r ${DEEP_URL}/
+ ${result} = Execute ozone sh key list ${VOLUME}/${BUCKET}
| jq -r '.name'
+ Should not contain ${result} ${DEEP_DIR}
+
+List recursively
+ [Setup] Setup localdir1
+ ${result} = Execute ozone fs -ls -R ${BASE_URL}testdir1/
+ Should contain ${result} localdir1/LOCAL.txt
+ Should contain ${result} testdir1/NOTICE.txt
+
+Copy to other bucket
+ ${target} = Format FS URL ${SCHEME} ${VOLUME} ${BUCKET2}
testdir2
+ Execute ozone fs -mkdir -p ${target}
+ Execute ozone fs -cp
${BASE_URL}/testdir1/localdir1 ${target}
+ [Teardown] Execute ozone fs -rm -r ${target}
+
+Copy to other volume
+ ${target} = Format FS URL ${SCHEME} ${VOL2}
${BUCKET_IN_VOL2} testdir3
+ Execute ozone fs -mkdir -p ${target}
+ Execute ozone fs -cp
${BASE_URL}/testdir1/localdir1 ${target}
+ [Teardown] Execute ozone fs -rm -r ${target}
+
+List file created via shell
+ [Setup] Execute ozone sh key put
${VOLUME}/${BUCKET}/${SCHEME}.txt NOTICE.txt
+ ${result} = Execute ozone fs -ls ${BASE_URL}${SCHEME}.txt
+ Should contain ${result} ${SCHEME}.txt
+
+Reject overwrite existing
+ ${result} = Execute and checkrc ozone fs -copyFromLocal NOTICE.txt
${BASE_URL}${SCHEME}.txt 1
+ Should contain ${result} File exists
+
+Get file
+ [Setup] Execute rm -Rf /tmp/GET.txt
+ Execute ozone fs -get
${BASE_URL}${SCHEME}.txt /tmp/GET.txt
+ File Should Exist /tmp/GET.txt
*** Keywords ***
-Test ozone shell with scheme
- [arguments] ${scheme} ${testBucket1}
${testBucket2} ${testBucket3} ${nonExistBucket}
-
- ${result} = Execute ozone fs -ls
${scheme}://${testBucket1}
- Execute ozone fs -mkdir -p
${scheme}://${testBucket1}/testdir/deep
- ${result} = Execute ozone sh key list ${O3Bucket1} |
jq -r '.name'
- Should contain ${result} testdir/deep
-
- Execute ozone fs -copyFromLocal
NOTICE.txt ${scheme}://${testBucket1}/testdir/deep/
- ${result} = Execute ozone sh key list ${O3Bucket1} |
jq -r '.name'
- Should contain ${result} NOTICE.txt
- ${result} = Execute ozone sh key info
o3://om/fstest/bucket1/testdir/deep/NOTICE.txt | jq -r '.replicationFactor'
- Should Be Equal ${result} 3
-
- Execute ozone fs -put NOTICE.txt
${scheme}://${testBucket1}/testdir/deep/PUTFILE.txt
- ${result} = Execute ozone sh key list ${O3Bucket1} |
jq -r '.name'
- Should contain ${result} PUTFILE.txt
-
- ${result} = Execute ozone fs -ls
${scheme}://${testBucket1}/testdir/deep/
- Should contain ${result} NOTICE.txt
- Should contain ${result} PUTFILE.txt
-
- Execute ozone fs -mv
${scheme}://${testBucket1}/testdir/deep/NOTICE.txt
${scheme}://${testBucket1}/testdir/deep/MOVED.TXT
- ${result} = Execute ozone sh key list ${O3Bucket1} |
jq -r '.name'
- Should contain ${result} MOVED.TXT
- Should not contain ${result} NOTICE.txt
-
- Execute ozone fs -mkdir -p
${scheme}://${testBucket1}/testdir/deep/subdir1
- Execute ozone fs -cp
${scheme}://${testBucket1}/testdir/deep/MOVED.TXT
${scheme}://${testBucket1}/testdir/deep/subdir1/NOTICE.txt
- ${result} = Execute ozone sh key list ${O3Bucket1} |
jq -r '.name'
- Should contain ${result} subdir1/NOTICE.txt
-
- ${result} = Execute ozone fs -ls
${scheme}://${testBucket1}/testdir/deep/subdir1/
- Should contain ${result} NOTICE.txt
-
- Execute ozone fs -cat
${scheme}://${testBucket1}/testdir/deep/subdir1/NOTICE.txt
- Should not contain ${result} Failed
-
- Execute ozone fs -rm
${scheme}://${testBucket1}/testdir/deep/subdir1/NOTICE.txt
- ${result} = Execute ozone sh key list ${O3Bucket1} |
jq -r '.name'
- Should not contain ${result} NOTICE.txt
-
- ${result} = Execute ozone fs -rmdir
${scheme}://${testBucket1}/testdir/deep/subdir1/
- ${result} = Execute ozone sh key list ${O3Bucket1} |
jq -r '.name'
- Should not contain ${result} subdir1
-
- Execute ozone fs -touch
${scheme}://${testBucket1}/testdir/TOUCHFILE.txt
- ${result} = Execute ozone sh key list ${O3Bucket1} |
jq -r '.name'
- Should contain ${result} TOUCHFILE.txt
-
- Execute ozone fs -rm -r
${scheme}://${testBucket1}/testdir/
- ${result} = Execute ozone sh key list ${O3Bucket1} |
jq -r '.name'
- Should not contain ${result} testdir
-
- Execute rm -Rf /tmp/localdir1
- Execute mkdir /tmp/localdir1
- Execute cp NOTICE.txt
/tmp/localdir1/LOCAL.txt
- Execute ozone fs -mkdir -p
${scheme}://${testBucket1}/testdir1
- Execute ozone fs -copyFromLocal
/tmp/localdir1 ${scheme}://${testBucket1}/testdir1/
- Execute ozone fs -put NOTICE.txt
${scheme}://${testBucket1}/testdir1/NOTICE.txt
-
- ${result} = Execute ozone fs -ls -R
${scheme}://${testBucket1}/testdir1/
- Should contain ${result} localdir1/LOCAL.txt
- Should contain ${result} testdir1/NOTICE.txt
-
- Execute ozone fs -mkdir -p
${scheme}://${testBucket2}/testdir2
- Execute ozone fs -mkdir -p
${scheme}://${testBucket3}/testdir3
-
- Execute ozone fs -cp
${scheme}://${testBucket1}/testdir1/localdir1
${scheme}://${testBucket2}/testdir2/
- Execute ozone fs -cp
${scheme}://${testBucket1}/testdir1/localdir1
${scheme}://${testBucket3}/testdir3/
-
- Execute ozone sh key put
${O3Bucket1}/KEY.txt NOTICE.txt
- ${result} = Execute ozone fs -ls
${scheme}://${testBucket1}/KEY.txt
- Should contain ${result} KEY.txt
-
- ${rc} ${result} = Run And Return Rc And Output ozone fs
-copyFromLocal NOTICE.txt ${scheme}://${testBucket1}/KEY.txt
- Should Be Equal As Integers ${rc} 1
- Should contain ${result} File exists
-
- Execute rm -Rf /tmp/GET.txt
- Execute ozone fs -get
${scheme}://${testBucket1}/KEY.txt /tmp/GET.txt
- Execute ls -l /tmp/GET.txt
-
- ${rc} ${result} = Run And Return Rc And Output ozone fs -ls
${scheme}://${nonExistBucket}
- Should Be Equal As Integers ${rc} 1
- Should Match Regexp ${result} (Check access
operation failed)|(Volume ${nonExistVolume} is not found)|(No such file or
directory)
-
-# Final clean up before next run
- Execute ozone fs -rm -r
${scheme}://${testBucket1}/testdir1/
- Execute ozone fs -rm -r
${scheme}://${testBucket2}/testdir2/
- Execute ozone fs -rm -r
${scheme}://${testBucket3}/testdir3/
- Execute ozone fs -rm -r
${scheme}://${testBucket1}/*
\ No newline at end of file
+
+Setup localdir1
+ Execute rm -Rf /tmp/localdir1
+ Execute mkdir /tmp/localdir1
+ Execute cp NOTICE.txt /tmp/localdir1/LOCAL.txt
+ Execute ozone fs -mkdir -p ${BASE_URL}testdir1
+ Execute ozone fs -copyFromLocal
/tmp/localdir1 ${BASE_URL}testdir1/
+ Execute ozone fs -put NOTICE.txt
${BASE_URL}testdir1/NOTICE.txt
diff --git a/hadoop-ozone/dist/src/main/smoketest/ozonefs/setup.robot
b/hadoop-ozone/dist/src/main/smoketest/ozonefs/setup.robot
new file mode 100644
index 0000000..16e059e
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/smoketest/ozonefs/setup.robot
@@ -0,0 +1,60 @@
+# 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 Setup for Ozone FS tests
+Resource ../commonlib.robot
+Resource ../lib/fs.robot
+
+*** Variables ***
+${SCHEME} ofs
+${BUCKET_TYPE} bucket
+${VOLUME} fstest1
+${VOL2} fstest2
+${BUCKET} ${BUCKET_TYPE}1-${SCHEME}
+${BUCKET2} ${BUCKET_TYPE}2-${SCHEME}
+${BUCKET_IN_VOL2} ${BUCKET_TYPE}3-${SCHEME}
+${DEEP_DIR} test/${SCHEME}/dir
+
+*** Keywords ***
+Setup buckets for FS test
+ Create volumes for FS test
+ Create buckets for FS test
+ Sanity check for FS test
+ Assign suite vars for FS test
+ Log Completed setup for ${SCHEME} tests in ${VOLUME}/${BUCKET} using FS
base URL: ${BASE_URL}
+
+Create volumes for FS test
+ Execute And Ignore Error ozone sh volume create ${VOLUME} --quota 100TB
+ Execute And Ignore Error ozone sh volume create ${VOL2} --quota 100TB
+
+Create buckets for FS test
+ Execute ozone sh bucket create ${VOLUME}/${BUCKET}
+ Execute ozone sh bucket create ${VOLUME}/${BUCKET2}
+ Execute ozone sh bucket create
${VOL2}/${BUCKET_IN_VOL2}
+
+Sanity check for FS test
+ ${result} = Execute ozone sh volume list
+ Should contain ${result} ${VOLUME}
+ Should contain ${result} ${VOL2}
+ Should Match Regexp ${result} "admin"
: "(hadoop|testuser\/scm@EXAMPLE\.COM)"
+ ${result} = Execute ozone sh bucket list ${VOLUME}
+ Should contain ${result} ${BUCKET}
+ Should contain ${result}
${BUCKET2}
+
+Assign suite vars for FS test
+ ${BASE_URL} = Format FS URL ${SCHEME} ${VOLUME}
${BUCKET} /
+ Set Suite Variable ${BASE_URL}
+ Set Suite Variable ${DEEP_URL} ${BASE_URL}${DEEP_DIR}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]