You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2020/11/26 09:35:52 UTC

[pulsar] 02/03: [Tiered Storage] Fix Jclouds Azure credential error (#8693)

This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.7
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit caede241027a82bb04759f9e331560ca0293d8b1
Author: ran <ga...@126.com>
AuthorDate: Thu Nov 26 13:13:49 2020 +0800

    [Tiered Storage] Fix Jclouds Azure credential error (#8693)
    
    ### Motivation
    
    Currently, the tiered storage Azure credential is broken.
    
    ### Modifications
    
    Change the Azure supplier credential.
    
    (cherry picked from commit bf9f61969c3fd7d82b85502266a12f85a793c63a)
---
 .../impl/BlobStoreManagedLedgerOffloader.java      |  1 +
 .../jcloud/provider/JCloudBlobStoreProvider.java   | 27 +++++++++++++++++-----
 2 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreManagedLedgerOffloader.java b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreManagedLedgerOffloader.java
index 4f51713..39e6d41 100644
--- a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreManagedLedgerOffloader.java
+++ b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreManagedLedgerOffloader.java
@@ -103,6 +103,7 @@ public class BlobStoreManagedLedgerOffloader implements LedgerOffloader {
                 config.getBucket(), config.getRegion());
 
         blobStores.putIfAbsent(config.getBlobStoreLocation(), config.getBlobStore());
+        log.info("The ledger offloader was created.");
     }
 
     @Override
diff --git a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/provider/JCloudBlobStoreProvider.java b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/provider/JCloudBlobStoreProvider.java
index df4b0d3..9d0871e 100644
--- a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/provider/JCloudBlobStoreProvider.java
+++ b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/provider/JCloudBlobStoreProvider.java
@@ -131,7 +131,21 @@ public enum JCloudBlobStoreProvider implements Serializable, ConfigValidation, B
 
         @Override
         public BlobStore getBlobStore(TieredStorageConfiguration config) {
-            return BLOB_STORE_BUILDER.getBlobStore(config);
+            ContextBuilder contextBuilder = ContextBuilder.newBuilder(config.getProviderMetadata());
+            contextBuilder.overrides(config.getOverrides());
+
+            if (config.getProviderCredentials() != null) {
+                Credentials credentials = config.getProviderCredentials().get();
+                return contextBuilder
+                        .credentials(credentials.identity, credentials.credential)
+                        .buildView(BlobStoreContext.class)
+                        .getBlobStore();
+            } else {
+                log.warn("The credentials is null. driver: {}, bucket: {}", config.getDriver(), config.getBucket());
+                return contextBuilder
+                        .buildView(BlobStoreContext.class)
+                        .getBlobStore();
+            }
         }
 
         @Override
@@ -254,11 +268,12 @@ public enum JCloudBlobStoreProvider implements Serializable, ConfigValidation, B
                         .credentialsSupplier(config.getCredentials())
                         .buildView(BlobStoreContext.class)
                         .getBlobStore();
-            } else {
-                return contextBuilder
-                        .buildView(BlobStoreContext.class)
-                        .getBlobStore();
-            }
+        } else {
+            log.warn("The credentials is null. driver: {}, bucket: {}", config.getDriver(), config.getBucket());
+            return contextBuilder
+                    .buildView(BlobStoreContext.class)
+                    .getBlobStore();
+        }
 
     };