MINIFICPP-1668 Remove request parameters from Azure primary uri

Closes #1201
Signed-off-by: Marton Szasz <szaszm@apache.org>
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 @@
     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 @@
 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 @@
 
   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 @@
   }
 
  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_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_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));