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

szaszm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git


The following commit(s) were added to refs/heads/main by this push:
     new 0082c82  MINIFICPP-1668 Remove request parameters from Azure primary 
uri
0082c82 is described below

commit 0082c82d048f5cc3abd25805ecb8dc76b72c3412
Author: Gabor Gyimesi <[email protected]>
AuthorDate: Mon Nov 8 18:57:24 2021 +0100

    MINIFICPP-1668 Remove request parameters from Azure primary uri
    
    Closes #1201
    Signed-off-by: Marton Szasz <[email protected]>
---
 extensions/azure/storage/AzureBlobStorage.cpp           | 6 +++++-
 libminifi/test/azure-tests/PutAzureBlobStorageTests.cpp | 9 +++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/extensions/azure/storage/AzureBlobStorage.cpp 
b/extensions/azure/storage/AzureBlobStorage.cpp
index 9708bed..97fbc8c 100644
--- a/extensions/azure/storage/AzureBlobStorage.cpp
+++ b/extensions/azure/storage/AzureBlobStorage.cpp
@@ -48,7 +48,11 @@ std::optional<UploadBlobResult> 
AzureBlobStorage::uploadBlob(const PutAzureBlobS
     auto response = blob_storage_client_->uploadBlob(params, buffer);
 
     UploadBlobResult result;
-    result.primary_uri = blob_storage_client_->getUrl(params);
+    auto upload_url = blob_storage_client_->getUrl(params);
+    if (auto query_string_pos = upload_url.find('?'); query_string_pos != 
std::string::npos) {
+      upload_url = upload_url.substr(0, query_string_pos);
+    }
+    result.primary_uri = upload_url;
     if (response.ETag.HasValue()) {
       result.etag = response.ETag.ToString();
     }
diff --git a/libminifi/test/azure-tests/PutAzureBlobStorageTests.cpp 
b/libminifi/test/azure-tests/PutAzureBlobStorageTests.cpp
index bbdb7c9..816de5d 100644
--- a/libminifi/test/azure-tests/PutAzureBlobStorageTests.cpp
+++ b/libminifi/test/azure-tests/PutAzureBlobStorageTests.cpp
@@ -43,7 +43,7 @@ const std::string GET_FILE_NAME = "input_data.log";
 class MockBlobStorage : public minifi::azure::storage::BlobStorageClient {
  public:
   const std::string ETAG = "test-etag";
-  const std::string PRIMARY_URI = "test-uri";
+  const std::string PRIMARY_URI = "http://test-uri/file";;
   const std::string TEST_TIMESTAMP = "Sun, 21 Oct 2018 12:16:24 GMT";
 
   bool createContainerIfNotExists(const 
minifi::azure::storage::PutAzureBlobStorageParameters& params) override {
@@ -68,7 +68,7 @@ class MockBlobStorage : public 
minifi::azure::storage::BlobStorageClient {
 
   std::string getUrl(const 
minifi::azure::storage::PutAzureBlobStorageParameters& params) override {
     params_ = params;
-    return PRIMARY_URI;
+    return RETURNED_PRIMARY_URI;
   }
 
   minifi::azure::storage::PutAzureBlobStorageParameters getPassedParams() 
const {
@@ -88,6 +88,7 @@ class MockBlobStorage : public 
minifi::azure::storage::BlobStorageClient {
   }
 
  private:
+  const std::string RETURNED_PRIMARY_URI = "http://test-uri/file?secret-sas";;
   minifi::azure::storage::PutAzureBlobStorageParameters params_;
   bool container_created_ = false;
   bool upload_fails_ = false;
@@ -372,7 +373,7 @@ TEST_CASE_METHOD(PutAzureBlobStorageTestsFixture, "Test 
Azure blob upload", "[az
   test_controller.runSession(plan, true);
   CHECK(LogTestController::getInstance().contains("key:azure.container value:" 
+ CONTAINER_NAME));
   CHECK(LogTestController::getInstance().contains("key:azure.blobname value:" 
+ GET_FILE_NAME));
-  CHECK(LogTestController::getInstance().contains("key:azure.primaryUri 
value:" + mock_blob_storage_ptr->PRIMARY_URI));
+  CHECK(LogTestController::getInstance().contains("key:azure.primaryUri 
value:" + mock_blob_storage_ptr->PRIMARY_URI + "\n"));
   CHECK(LogTestController::getInstance().contains("key:azure.etag value:" + 
mock_blob_storage_ptr->ETAG));
   CHECK(LogTestController::getInstance().contains("key:azure.length value:" + 
std::to_string(TEST_DATA.size())));
   CHECK(LogTestController::getInstance().contains("key:azure.timestamp value:" 
+ mock_blob_storage_ptr->TEST_TIMESTAMP));
@@ -393,7 +394,7 @@ TEST_CASE_METHOD(PutAzureBlobStorageTestsFixture, "Test 
Azure blob upload with c
   test_controller.runSession(plan, true);
   CHECK(LogTestController::getInstance().contains("key:azure.container value:" 
+ CONTAINER_NAME));
   CHECK(LogTestController::getInstance().contains("key:azure.blobname value:" 
+ BLOB_NAME));
-  CHECK(LogTestController::getInstance().contains("key:azure.primaryUri 
value:" + mock_blob_storage_ptr->PRIMARY_URI));
+  CHECK(LogTestController::getInstance().contains("key:azure.primaryUri 
value:" + mock_blob_storage_ptr->PRIMARY_URI + "\n"));
   CHECK(LogTestController::getInstance().contains("key:azure.etag value:" + 
mock_blob_storage_ptr->ETAG));
   CHECK(LogTestController::getInstance().contains("key:azure.length value:" + 
std::to_string(TEST_DATA.size())));
   CHECK(LogTestController::getInstance().contains("key:azure.timestamp value:" 
+ mock_blob_storage_ptr->TEST_TIMESTAMP));

Reply via email to