>From Peeyush Gupta <[email protected]>:

Peeyush Gupta has submitted this change. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18198 )

Change subject: [NO ISSUE][OTH] Refactor S3Utils.buildAwsS3Client function
......................................................................

[NO ISSUE][OTH] Refactor S3Utils.buildAwsS3Client function

- user model changes: no
- storage format changes: no
- interface changes: no

Change-Id: I63a40992cac3c6d5742e6a7ec3bc6721567d4349
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18198
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Reviewed-by: Murtadha Hubail <[email protected]>
---
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/aws/s3/S3Utils.java
1 file changed, 54 insertions(+), 28 deletions(-)

Approvals:
  Murtadha Hubail: Looks good to me, approved
  Jenkins: Verified; Verified




diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/aws/s3/S3Utils.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/aws/s3/S3Utils.java
index f028af3..45e83b4 100644
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/aws/s3/S3Utils.java
+++ 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/aws/s3/S3Utils.java
@@ -117,6 +117,42 @@
         S3ClientBuilder builder = S3Client.builder();

         // Credentials
+        AwsCredentialsProvider credentialsProvider =
+                buildCredentialsProvider(instanceProfile, accessKeyId, 
secretAccessKey, sessionToken);
+
+        builder.credentialsProvider(credentialsProvider);
+
+        // Validate the region
+        List<Region> regions = S3Client.serviceMetadata().regions();
+        Optional<Region> selectedRegion = regions.stream().filter(region -> 
region.id().equals(regionId)).findFirst();
+
+        if (selectedRegion.isEmpty()) {
+            throw new CompilationException(S3_REGION_NOT_SUPPORTED, regionId);
+        }
+        builder.region(selectedRegion.get());
+
+        // Validate the service endpoint if present
+        if (serviceEndpoint != null) {
+            try {
+                URI uri = new URI(serviceEndpoint);
+                try {
+                    builder.endpointOverride(uri);
+                } catch (NullPointerException ex) {
+                    throw new 
CompilationException(ErrorCode.EXTERNAL_SOURCE_ERROR, ex, 
getMessageOrToString(ex));
+                }
+            } catch (URISyntaxException ex) {
+                throw new 
CompilationException(ErrorCode.EXTERNAL_SOURCE_ERROR, ex,
+                        String.format("Invalid service endpoint %s", 
serviceEndpoint));
+            }
+        }
+
+        return builder.build();
+    }
+
+    public static AwsCredentialsProvider buildCredentialsProvider(String 
instanceProfile, String accessKeyId,
+            String secretAccessKey, String sessionToken) throws 
CompilationException {
+
+        // Credentials
         AwsCredentialsProvider credentialsProvider;

         // nothing provided, anonymous authentication
@@ -167,34 +203,7 @@
             throw new CompilationException(REQUIRED_PARAM_IF_PARAM_IS_PRESENT, 
ACCESS_KEY_ID_FIELD_NAME,
                     SESSION_TOKEN_FIELD_NAME);
         }
-
-        builder.credentialsProvider(credentialsProvider);
-
-        // Validate the region
-        List<Region> regions = S3Client.serviceMetadata().regions();
-        Optional<Region> selectedRegion = regions.stream().filter(region -> 
region.id().equals(regionId)).findFirst();
-
-        if (selectedRegion.isEmpty()) {
-            throw new CompilationException(S3_REGION_NOT_SUPPORTED, regionId);
-        }
-        builder.region(selectedRegion.get());
-
-        // Validate the service endpoint if present
-        if (serviceEndpoint != null) {
-            try {
-                URI uri = new URI(serviceEndpoint);
-                try {
-                    builder.endpointOverride(uri);
-                } catch (NullPointerException ex) {
-                    throw new 
CompilationException(ErrorCode.EXTERNAL_SOURCE_ERROR, ex, 
getMessageOrToString(ex));
-                }
-            } catch (URISyntaxException ex) {
-                throw new 
CompilationException(ErrorCode.EXTERNAL_SOURCE_ERROR, ex,
-                        String.format("Invalid service endpoint %s", 
serviceEndpoint));
-            }
-        }
-
-        return builder.build();
+        return credentialsProvider;
     }

     /**

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18198
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I63a40992cac3c6d5742e6a7ec3bc6721567d4349
Gerrit-Change-Number: 18198
Gerrit-PatchSet: 3
Gerrit-Owner: Peeyush Gupta <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Murtadha Hubail <[email protected]>
Gerrit-Reviewer: Peeyush Gupta <[email protected]>
Gerrit-Reviewer: Ritik Raj <[email protected]>
Gerrit-MessageType: merged

Reply via email to