Pārlūkot izejas kodu

HDDS-1242. In S3 when bucket already exists, it should just return location.

(cherry picked from commit 73e1801b2db928d165e4cf076e1ba50ec1e8b48a)
Bharat Viswanadham 6 gadi atpakaļ
vecāks
revīzija
e65717af25

+ 34 - 0
hadoop-ozone/dist/src/main/smoketest/s3/bucketcreate.robot

@@ -0,0 +1,34 @@
+# 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
+Resource            commonawslib.robot
+Test Setup          Setup s3 tests
+
+*** Variables ***
+${ENDPOINT_URL}       http://s3g:9878
+${BUCKET}             generated
+
+*** Test Cases ***
+
+Create bucket which already exists
+ # Bucket already is created in Test Setup.
+    ${result} =         Execute AWSS3APICli         create-bucket --bucket ${BUCKET}
+                        Should contain              ${result}         ${BUCKET}
+                        Should contain              ${result}         Location

+ 1 - 1
hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBase.java

@@ -113,7 +113,7 @@ public class EndpointBase {
     try {
       client.getObjectStore().createS3Bucket(userName, bucketName);
     } catch (OMException ex) {
-      if (ex.getResult() != ResultCodes.VOLUME_ALREADY_EXISTS) {
+      if (ex.getResult() != ResultCodes.S3_BUCKET_ALREADY_EXISTS) {
         // S3 does not return error for bucket already exists, it just
         // returns the location.
         throw ex;