浏览代码

HDDS-562. Create acceptance test to test aws cli with the s3 gateway. Contributed by Elek Marton.

Bharat Viswanadham 6 年之前
父节点
当前提交
7d082193d2
共有 2 个文件被更改,包括 65 次插入1 次删除
  1. 63 0
      hadoop-ozone/dist/src/main/smoketest/s3/awscli.robot
  2. 2 1
      hadoop-ozone/dist/src/main/smoketest/test.sh

+ 63 - 0
hadoop-ozone/dist/src/main/smoketest/s3/awscli.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 ***
+Documentation       S3 gateway test with aws cli
+Library             OperatingSystem
+Library             String
+Resource            ../commonlib.robot
+
+*** Variables ***
+${ENDPOINT_URL}       http://s3g:9878
+
+*** Keywords ***
+Execute AWSCli
+    [Arguments]       ${command}
+    ${output} =       Execute          aws s3 --endpoint-url ${ENDPOINT_URL}/${VOLUME} ${command}
+    [return]          ${output}
+
+*** Test Cases ***
+
+Create volume and bucket for the tests
+    ${postfix} =        Generate Random String  5  [NUMBERS]
+    Set Suite Variable  ${BUCKET}                  bucket-${postfix}
+    Set Suite Variable  ${VOLUME}                  vol-${postfix}
+                        Log                        Testing s3 commands in /${VOLUME}/${BUCKET}
+    ${result} =         Execute                    ozone sh volume create /${VOLUME} --user hadoop
+    ${result} =         Execute                    ozone sh bucket create /${VOLUME}/${BUCKET}
+
+Install aws s3 cli
+                        Execute                    sudo apt-get install -y awscli
+                        Set Environment Variable   AWS_ACCESS_KEY_ID       ANYID
+                        Set Environment Variable   AWS_SECRET_ACCESS_KEY   ANYKEY
+
+File upload and directory list
+                        Execute                   date > /tmp/testfile
+    ${result} =         Execute AWSCli            cp /tmp/testfile s3://${BUCKET}
+                        Should contain            ${result}         upload
+    ${result} =         Execute AWSCli            cp /tmp/testfile s3://${BUCKET}/dir1/dir2/file
+                        Should contain            ${result}         upload
+    ${result} =         Execute AWSCli            ls s3://${BUCKET}
+                        Should contain            ${result}         testfile
+                        Should contain            ${result}         dir1
+                        Should not contain        ${result}         dir2
+    ${result} =         Execute AWSCli            ls s3://${BUCKET}/dir1/
+                        Should not contain        ${result}         testfile
+                        Should not contain        ${result}         dir1
+                        Should contain            ${result}         dir2
+    ${result} =         Execute AWSCli            ls s3://${BUCKET}/dir1/dir2/
+                        Should not contain        ${result}         testfile
+                        Should not contain        ${result}         dir1
+                        Should contain            ${result}         file

+ 2 - 1
hadoop-ozone/dist/src/main/smoketest/test.sh

@@ -95,7 +95,8 @@ if [ "$RUN_ALL" = true ]; then
    execute_tests ozone "${DEFAULT_TESTS[@]}"
    execute_tests ozone "${DEFAULT_TESTS[@]}"
    TESTS=("ozonefs")
    TESTS=("ozonefs")
    execute_tests ozonefs "${TESTS[@]}"
    execute_tests ozonefs "${TESTS[@]}"
-
+   TESTS=("s3")
+   execute_tests ozones3 "${TESTS[@]}"
 else
 else
    execute_tests "$DOCKERENV" "${POSITIONAL[@]}"
    execute_tests "$DOCKERENV" "${POSITIONAL[@]}"
 fi
 fi