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/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 36778af HDDS-5128. Return specific error messages for S3-SDK (#2169)
36778af is described below
commit 36778afd8de75b7b77962514595189701d06333c
Author: Symious <[email protected]>
AuthorDate: Fri May 14 17:34:03 2021 +0800
HDDS-5128. Return specific error messages for S3-SDK (#2169)
---
.../org/apache/hadoop/ozone/s3/OzoneClientProducer.java | 17 ++++++++++++-----
.../apache/hadoop/ozone/s3/TestOzoneClientProducer.java | 4 ++--
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
index 4264f41..d08fd92 100644
---
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
+++
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
@@ -21,6 +21,7 @@ import javax.annotation.PreDestroy;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
+import javax.ws.rs.WebApplicationException;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.Context;
import java.io.IOException;
@@ -76,7 +77,8 @@ public class OzoneClientProducer {
private ContainerRequestContext context;
@Produces
- public OzoneClient createClient() throws OS3Exception, IOException {
+ public OzoneClient createClient() throws WebApplicationException,
+ IOException {
client = getClient(ozoneConfiguration);
return client;
}
@@ -87,7 +89,7 @@ public class OzoneClientProducer {
}
private OzoneClient getClient(OzoneConfiguration config)
- throws OS3Exception {
+ throws WebApplicationException {
OzoneClient ozoneClient = null;
try {
SignatureInfo signatureInfo = signatureProcessor.parseSignature();
@@ -134,14 +136,14 @@ public class OzoneClientProducer {
if (LOG.isDebugEnabled()) {
LOG.debug("Error during Client Creation: ", ex);
}
- throw ex;
+ throw wrapOS3Exception(ex);
} catch (Throwable t) {
// For any other critical errors during object creation throw Internal
// error.
if (LOG.isDebugEnabled()) {
LOG.debug("Error during Client Creation: ", t);
}
- throw INTERNAL_ERROR;
+ throw wrapOS3Exception(INTERNAL_ERROR);
}
return ozoneClient;
}
@@ -162,7 +164,7 @@ public class OzoneClientProducer {
private void validateAccessId(String awsAccessId) throws Exception {
if (awsAccessId == null || awsAccessId.equals("")) {
LOG.error("Malformed s3 header. awsAccessID: ", awsAccessId);
- throw MALFORMED_HEADER;
+ throw wrapOS3Exception(MALFORMED_HEADER);
}
}
@@ -174,4 +176,9 @@ public class OzoneClientProducer {
public void setSignatureParser(SignatureProcessor awsSignatureProcessor) {
this.signatureProcessor = awsSignatureProcessor;
}
+
+ private WebApplicationException wrapOS3Exception(OS3Exception os3Exception) {
+ return new WebApplicationException(os3Exception,
+ os3Exception.getHttpCode());
+ }
}
diff --git
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestOzoneClientProducer.java
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestOzoneClientProducer.java
index 127bd4e..38776f1 100644
---
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestOzoneClientProducer.java
+++
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestOzoneClientProducer.java
@@ -17,6 +17,7 @@
*/
package org.apache.hadoop.ozone.s3;
+import javax.ws.rs.WebApplicationException;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap;
@@ -28,7 +29,6 @@ import java.util.Collection;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.ozone.OzoneConfigKeys;
import org.apache.hadoop.ozone.om.OMConfigKeys;
-import org.apache.hadoop.ozone.s3.exception.OS3Exception;
import org.apache.hadoop.ozone.s3.signature.AWSSignatureProcessor;
import static
org.apache.hadoop.ozone.s3.signature.SignatureParser.AUTHORIZATION_HEADER;
@@ -128,7 +128,7 @@ public class TestOzoneClientProducer {
producer.createClient();
fail("testGetClientFailure");
} catch (Exception ex) {
- Assert.assertTrue(ex instanceof OS3Exception);
+ Assert.assertTrue(ex instanceof WebApplicationException);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]