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));