From 742e3853502dd06c31c425c194ff0a9a9060df5c Mon Sep 17 00:00:00 2001 From: Victor Vazquez Date: Fri, 6 Nov 2020 17:01:03 -0800 Subject: [PATCH] Adding options for telemetry and transport policy (#889) Fixes: https://github.com/Azure/azure-sdk-for-cpp/issues/819 --- CMakeLists.txt | 1 + sdk/core/azure-core/CHANGELOG.md | 2 + .../inc/azure/core/http/curl/curl.hpp | 2 +- .../azure-core/inc/azure/core/http/policy.hpp | 80 +++++++++++++------ sdk/core/azure-core/src/http/curl/curl.cpp | 2 + .../azure-core/src/http/telemetry_policy.cpp | 2 - .../azure-core/src/http/transport_policy.cpp | 2 +- ...re_core_storage_list_containers_sample.cpp | 5 +- .../e2e/azure_core_storage_test_sample.cpp | 5 +- .../e2e/azure_core_with_curl_bodyBuffer.cpp | 8 +- .../e2e/azure_core_with_curl_bodyStream.cpp | 5 +- sdk/core/azure-core/test/ut/curl_options.cpp | 28 +++++-- .../azure-core/test/ut/telemetry_policy.cpp | 15 ++-- .../azure-core/test/ut/transport_adapter.cpp | 4 +- .../src/client_secret_credential.cpp | 4 +- .../src/blob_batch_client.cpp | 11 +-- .../azure-storage-blobs/src/blob_client.cpp | 11 +-- .../src/blob_container_client.cpp | 11 +-- .../src/blob_service_client.cpp | 11 +-- .../src/datalake_directory_client.cpp | 11 +-- .../src/datalake_file_client.cpp | 11 +-- .../src/datalake_file_system_client.cpp | 11 +-- .../src/datalake_path_client.cpp | 11 +-- .../src/datalake_service_client.cpp | 11 +-- .../src/share_client.cpp | 11 +-- .../src/share_directory_client.cpp | 11 +-- .../src/share_file_client.cpp | 11 +-- .../src/share_service_client.cpp | 11 +-- 28 files changed, 153 insertions(+), 155 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dddbc9699..1d4cfa7bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules") option(WARNINGS_AS_ERRORS "Treat compiler warnings as errors" ON) option(BUILD_TRANSPORT_CURL "Build an HTTP transport implementation with CURL" OFF) option(BUILD_TRANSPORT_WINHTTP "Build an HTTP transport implementation with WIN HTTP" OFF) +option(BUILD_TRANSPORT_CUSTOM "Implementation for GetCustomHttpTransport method must be linked to the final application" OFF) option(BUILD_TESTING "Build test cases" OFF) option(BUILD_CODE_COVERAGE "Build gcov targets for HTML and XML reports. Requires debug build and BUILD_TESTING" OFF) option(BUILD_DOCUMENTATION "Create HTML based API documentation (requires Doxygen)" OFF) diff --git a/sdk/core/azure-core/CHANGELOG.md b/sdk/core/azure-core/CHANGELOG.md index f2b783116..7ec7eae5a 100644 --- a/sdk/core/azure-core/CHANGELOG.md +++ b/sdk/core/azure-core/CHANGELOG.md @@ -11,6 +11,8 @@ - Added `strings.hpp` with `Azure::Core::Strings::LocaleInvariantCaseInsensitiveEqual` and `Azure::Core::Strings::ToLower`. - Added `OperationCanceledException`. - Added `GetPort()` to `Url`. +- Added `TransportPolicyOptions`. +- Added `TelemetryPolicyOptions`. ### Other changes and Improvements diff --git a/sdk/core/azure-core/inc/azure/core/http/curl/curl.hpp b/sdk/core/azure-core/inc/azure/core/http/curl/curl.hpp index f8bc68f74..940651ea5 100644 --- a/sdk/core/azure-core/inc/azure/core/http/curl/curl.hpp +++ b/sdk/core/azure-core/inc/azure/core/http/curl/curl.hpp @@ -15,7 +15,7 @@ #include "azure/core/http/curl/curl_connection_pool.hpp" #include "azure/core/http/curl/curl_session.hpp" #include "azure/core/http/http.hpp" -#include "azure/core/http/policy.hpp" +#include "azure/core/http/transport.hpp" namespace Azure { namespace Core { namespace Http { /** diff --git a/sdk/core/azure-core/inc/azure/core/http/policy.hpp b/sdk/core/azure-core/inc/azure/core/http/policy.hpp index e6d826ad3..668c6bb7d 100644 --- a/sdk/core/azure-core/inc/azure/core/http/policy.hpp +++ b/sdk/core/azure-core/inc/azure/core/http/policy.hpp @@ -14,6 +14,8 @@ #include "azure/core/logging/logging.hpp" #include "azure/core/uuid.hpp" +#include "azure/core/http/curl/curl.hpp" + #include #include @@ -95,13 +97,39 @@ namespace Azure { namespace Core { namespace Http { std::unique_ptr Send(Context const& ctx, Request& req); }; + /** + * @brief The options for the #TransportPolicy. + * + */ + struct TransportPolicyOptions + { +#ifdef BUILD_TRANSPORT_CUSTOM + /** + * @brief Set the #HttpTransport for the transport policy. + * + * @remark The implementation for GetCustomHttpTransport must be linked in the end-user + * application. + * + */ + std::shared_ptr Transport = ::GetCustomHttpTransport(); +#else + /** + * @brief Set the #HttpTransport for the transport policy. + * + * @remark When no option is set, the default transport adapter is the curl transport adapter. + * + */ + std::shared_ptr Transport = std::make_shared(); +#endif + }; + /** * @brief Applying this policy sends an HTTP request over the wire. * @remark This policy must be the bottom policy in the stack of the HTTP policy stack. */ class TransportPolicy : public HttpPolicy { private: - std::shared_ptr m_transport; + TransportPolicyOptions m_options; public: /** @@ -110,14 +138,14 @@ namespace Azure { namespace Core { namespace Http { * @param transport A pointer to the #HttpTransport implementation to use when this policy gets * applied (#Send). */ - explicit TransportPolicy(std::shared_ptr transport) - : m_transport(std::move(transport)) + explicit TransportPolicy(TransportPolicyOptions options = TransportPolicyOptions()) + : m_options(std::move(options)) { } std::unique_ptr Clone() const override { - return std::make_unique(m_transport); + return std::make_unique(*this); } std::unique_ptr Send( @@ -217,6 +245,22 @@ namespace Azure { namespace Core { namespace Http { } }; + /** + * @brief The options for the #TelemetryPolicy + * + */ + struct TelemetryPolicyOptions + { + /** + * @brief The Application id is the last part of the user agent for telemetry. + * + * @remark This option allows an end-user to create an SDK client and report telemetry with a + * specific ID for it. The default is an empty string. + * + */ + std::string ApplicationId; + }; + /** * @brief HTTP telemetry policy. * @@ -225,9 +269,7 @@ namespace Azure { namespace Core { namespace Http { * @remark See https://azure.github.io/azure-sdk/general_azurecore.html#telemetry-policy. */ class TelemetryPolicy : public HttpPolicy { - std::string m_telemetryId; - - static std::string const g_emptyApplicationId; + std::string const m_telemetryId; static std::string BuildTelemetryId( std::string const& componentName, @@ -236,29 +278,17 @@ namespace Azure { namespace Core { namespace Http { public: /** - * @brief Construct HTTP telemetry policy with component name and component version. + * @brief Construct HTTP telemetry policy. * - * @param componentName Azure SDK component name (e.g. "storage.blobs") - * @param componentVersion Azure SDK component version (e.g. "11.0.0") - */ - explicit TelemetryPolicy(std::string const& componentName, std::string const& componentVersion) - : TelemetryPolicy(componentName, componentVersion, g_emptyApplicationId) - { - } - - /** - * @brief Construct HTTP telemetry policy with component name, component version, and an - * applicatin ID. - * - * @param componentName Azure SDK component name (e.g. "storage.blobs") - * @param componentVersion Azure SDK component version (e.g. "11.0.0") - * @param applicationId Customer Application ID (e.g. "AzCopy") + * @param componentName Azure SDK component name (e.g. "storage.blobs"). + * @param componentVersion Azure SDK component version (e.g. "11.0.0"). + * @param options The optional parameters for the policy (e.g. "AzCopy") */ explicit TelemetryPolicy( std::string const& componentName, std::string const& componentVersion, - std::string const& applicationId) - : m_telemetryId(BuildTelemetryId(componentName, componentVersion, applicationId)) + TelemetryPolicyOptions options = TelemetryPolicyOptions()) + : m_telemetryId(BuildTelemetryId(componentName, componentVersion, options.ApplicationId)) { } diff --git a/sdk/core/azure-core/src/http/curl/curl.cpp b/sdk/core/azure-core/src/http/curl/curl.cpp index bb53ba552..41e3a4bb8 100644 --- a/sdk/core/azure-core/src/http/curl/curl.cpp +++ b/sdk/core/azure-core/src/http/curl/curl.cpp @@ -3,6 +3,8 @@ #include "azure/core/http/curl/curl.hpp" #include "azure/core/http/http.hpp" +#include "azure/core/http/policy.hpp" +#include "azure/core/http/transport.hpp" #include "azure/core/internal/log.hpp" #ifdef POSIX diff --git a/sdk/core/azure-core/src/http/telemetry_policy.cpp b/sdk/core/azure-core/src/http/telemetry_policy.cpp index 5dc87df7e..a7ff4438f 100644 --- a/sdk/core/azure-core/src/http/telemetry_policy.cpp +++ b/sdk/core/azure-core/src/http/telemetry_policy.cpp @@ -111,8 +111,6 @@ std::string TrimString(std::string s) using namespace Azure::Core::Http; -std::string const TelemetryPolicy::g_emptyApplicationId; - std::string TelemetryPolicy::BuildTelemetryId( std::string const& componentName, std::string const& componentVersion, diff --git a/sdk/core/azure-core/src/http/transport_policy.cpp b/sdk/core/azure-core/src/http/transport_policy.cpp index 44e58096c..14375c1d3 100644 --- a/sdk/core/azure-core/src/http/transport_policy.cpp +++ b/sdk/core/azure-core/src/http/transport_policy.cpp @@ -15,7 +15,7 @@ std::unique_ptr TransportPolicy::Send( * The transport policy is always the last policy. * Call the transport and return */ - auto response = m_transport->Send(ctx, request); + auto response = m_options.Transport->Send(ctx, request); auto statusCode = static_cast::type>( response->GetStatusCode()); diff --git a/sdk/core/azure-core/test/e2e/azure_core_storage_list_containers_sample.cpp b/sdk/core/azure-core/test/e2e/azure_core_storage_list_containers_sample.cpp index ec7c9c618..aadf75551 100644 --- a/sdk/core/azure-core/test/e2e/azure_core_storage_list_containers_sample.cpp +++ b/sdk/core/azure-core/test/e2e/azure_core_storage_list_containers_sample.cpp @@ -17,13 +17,10 @@ using namespace std; int main() { - // Create the Transport - std::shared_ptr transport = std::make_unique(); - std::vector> policies; // Add the transport policy - policies.push_back(std::make_unique(std::move(transport))); + policies.push_back(std::make_unique()); auto httpPipeline = Http::HttpPipeline(policies); diff --git a/sdk/core/azure-core/test/e2e/azure_core_storage_test_sample.cpp b/sdk/core/azure-core/test/e2e/azure_core_storage_test_sample.cpp index e7a6fdd1f..913db7c37 100644 --- a/sdk/core/azure-core/test/e2e/azure_core_storage_test_sample.cpp +++ b/sdk/core/azure-core/test/e2e/azure_core_storage_test_sample.cpp @@ -21,13 +21,10 @@ using namespace std; int main() { - // Create the Transport - std::shared_ptr transport = std::make_unique(); - std::vector> policies; // Add the transport policy - policies.push_back(std::make_unique(std::move(transport))); + policies.push_back(std::make_unique()); auto httpPipeline = Http::HttpPipeline(policies); diff --git a/sdk/core/azure-core/test/e2e/azure_core_with_curl_bodyBuffer.cpp b/sdk/core/azure-core/test/e2e/azure_core_with_curl_bodyBuffer.cpp index de2970072..1fea18fed 100644 --- a/sdk/core/azure-core/test/e2e/azure_core_with_curl_bodyBuffer.cpp +++ b/sdk/core/azure-core/test/e2e/azure_core_with_curl_bodyBuffer.cpp @@ -43,14 +43,13 @@ int main() { try { - // Create the Transport - std::shared_ptr transport = std::make_unique(); + std::vector> policies; policies.push_back(std::make_unique()); RetryOptions retryOptions; policies.push_back(std::make_unique(retryOptions)); // Add the transport policy - policies.push_back(std::make_unique(std::move(transport))); + policies.push_back(std::make_unique()); auto httpPipeline = Http::HttpPipeline(policies); auto context = Azure::Core::GetApplicationContext(); @@ -75,7 +74,8 @@ void doFileRequest(Context const& context, HttpPipeline& pipeline) { Azure::Core::Http::Url host("https://httpbin.org/put"); - cout << "Creating a Put From File request to" << endl << "Host: " << host.GetAbsoluteUrl() << endl; + cout << "Creating a Put From File request to" << endl + << "Host: " << host.GetAbsoluteUrl() << endl; // Open a file that contains: {{"key":"value"}, {"key2":"value2"}, {"key3":"value3"}} int fd = open("/home/vivazqu/workspace/a", O_RDONLY); diff --git a/sdk/core/azure-core/test/e2e/azure_core_with_curl_bodyStream.cpp b/sdk/core/azure-core/test/e2e/azure_core_with_curl_bodyStream.cpp index 7020ee46d..a973a45c4 100644 --- a/sdk/core/azure-core/test/e2e/azure_core_with_curl_bodyStream.cpp +++ b/sdk/core/azure-core/test/e2e/azure_core_with_curl_bodyStream.cpp @@ -39,9 +39,6 @@ int main() try { - // Create the Transport - std::shared_ptr transport = std::make_unique(); - std::vector> policies; policies.push_back(std::make_unique()); @@ -49,7 +46,7 @@ int main() policies.push_back(std::make_unique(retryOptions)); // Add the transport policy - policies.push_back(std::make_unique(std::move(transport))); + policies.push_back(std::make_unique()); auto httpPipeline = Http::HttpPipeline(policies); diff --git a/sdk/core/azure-core/test/ut/curl_options.cpp b/sdk/core/azure-core/test/ut/curl_options.cpp index 58d0df506..6025ce1ee 100644 --- a/sdk/core/azure-core/test/ut/curl_options.cpp +++ b/sdk/core/azure-core/test/ut/curl_options.cpp @@ -4,12 +4,14 @@ #include "gtest/gtest.h" #include -#include #include #include #include +#include #include +#include + #include #include @@ -25,7 +27,9 @@ namespace Azure { namespace Core { namespace Test { curlOptions.Proxy = "136.228.165.138:8080"; auto transportAdapter = std::make_shared(curlOptions); - auto transportPolicy = std::make_unique(transportAdapter); + Azure::Core::Http::TransportPolicyOptions options; + options.Transport = transportAdapter; + auto transportPolicy = std::make_unique(options); std::vector> policies; policies.emplace_back(std::move(transportPolicy)); @@ -52,7 +56,9 @@ namespace Azure { namespace Core { namespace Test { curlOptions.SSLOptions.NoRevoke = true; auto transportAdapter = std::make_shared(curlOptions); - auto transportPolicy = std::make_unique(transportAdapter); + Azure::Core::Http::TransportPolicyOptions options; + options.Transport = transportAdapter; + auto transportPolicy = std::make_unique(options); std::vector> policies; policies.emplace_back(std::move(transportPolicy)); @@ -82,7 +88,9 @@ namespace Azure { namespace Core { namespace Test { curlOptions.SSLOptions.AllowBeast = true; auto transportAdapter = std::make_shared(curlOptions); - auto transportPolicy = std::make_unique(transportAdapter); + Azure::Core::Http::TransportPolicyOptions options; + options.Transport = transportAdapter; + auto transportPolicy = std::make_unique(options); std::vector> policies; policies.emplace_back(std::move(transportPolicy)); @@ -198,7 +206,9 @@ namespace Azure { namespace Core { namespace Test { curlOptions.CAInfo = "/"; auto transportAdapter = std::make_shared(curlOptions); - auto transportPolicy = std::make_unique(transportAdapter); + Azure::Core::Http::TransportPolicyOptions options; + options.Transport = transportAdapter; + auto transportPolicy = std::make_unique(options); std::vector> policies; policies.emplace_back(std::move(transportPolicy)); @@ -226,7 +236,9 @@ namespace Azure { namespace Core { namespace Test { TEST(CurlTransportOptions, httpsDefault) { auto transportAdapter = std::make_shared(); - auto transportPolicy = std::make_unique(transportAdapter); + Azure::Core::Http::TransportPolicyOptions options; + options.Transport = transportAdapter; + auto transportPolicy = std::make_unique(options); std::vector> policies; policies.emplace_back(std::move(transportPolicy)); @@ -257,7 +269,9 @@ namespace Azure { namespace Core { namespace Test { curlOptions.HttpKeepAlive = false; auto transportAdapter = std::make_shared(curlOptions); - auto transportPolicy = std::make_unique(transportAdapter); + Azure::Core::Http::TransportPolicyOptions options; + options.Transport = transportAdapter; + auto transportPolicy = std::make_unique(options); { // use inner scope to remove the pipeline and make sure we don't keep the connection in the diff --git a/sdk/core/azure-core/test/ut/telemetry_policy.cpp b/sdk/core/azure-core/test/ut/telemetry_policy.cpp index 920dcc7a0..3c61bc047 100644 --- a/sdk/core/azure-core/test/ut/telemetry_policy.cpp +++ b/sdk/core/azure-core/test/ut/telemetry_policy.cpp @@ -42,20 +42,23 @@ TEST(TelemetryPolicy, telemetryString) HttpPipeline pipeline1(policy1); std::string const expected2 = "AzCopy/10.0.4-Preview azsdk-cpp-storage-blob/11.0.0 ("; - policy2.emplace_back( - std::make_unique("storage-blob", "11.0.0", "AzCopy/10.0.4-Preview")); + Azure::Core::Http::TelemetryPolicyOptions options2; + options2.ApplicationId = "AzCopy/10.0.4-Preview"; + policy2.emplace_back(std::make_unique("storage-blob", "11.0.0", options2)); policy2.emplace_back(std::make_unique()); HttpPipeline pipeline2(policy2); std::string const expected3 = "AzCopy / 10.0.4-Preview azsdk-cpp-storage-blob/11.0.0 ("; - policy3.emplace_back( - std::make_unique("storage-blob", "11.0.0", " AzCopy / 10.0.4-Preview ")); + Azure::Core::Http::TelemetryPolicyOptions options3; + options3.ApplicationId = " AzCopy / 10.0.4-Preview "; + policy3.emplace_back(std::make_unique("storage-blob", "11.0.0", options3)); policy3.emplace_back(std::make_unique()); HttpPipeline pipeline3(policy3); std::string const expected4 = "01234567890123456789abcd azsdk-cpp-storage-blob/11.0.0 ("; - policy4.emplace_back( - std::make_unique("storage-blob", "11.0.0", " 01234567890123456789abcde ")); + Azure::Core::Http::TelemetryPolicyOptions options4; + options4.ApplicationId = " 01234567890123456789abcde "; + policy4.emplace_back(std::make_unique("storage-blob", "11.0.0", options4)); policy4.emplace_back(std::make_unique()); HttpPipeline pipeline4(policy4); diff --git a/sdk/core/azure-core/test/ut/transport_adapter.cpp b/sdk/core/azure-core/test/ut/transport_adapter.cpp index 90b7fade7..2e42a7e2d 100644 --- a/sdk/core/azure-core/test/ut/transport_adapter.cpp +++ b/sdk/core/azure-core/test/ut/transport_adapter.cpp @@ -13,14 +13,12 @@ namespace Azure { namespace Core { namespace Test { static std::vector> CreatePolicies() { std::vector> p; - std::shared_ptr transport - = std::make_shared(); Azure::Core::Http::RetryOptions opt; opt.RetryDelay = std::chrono::milliseconds(10); // Retry policy will help to prevent server-occasionally-errors p.push_back(std::make_unique(opt)); - p.push_back(std::make_unique(std::move(transport))); + p.push_back(std::make_unique()); return p; } diff --git a/sdk/identity/azure-identity/src/client_secret_credential.cpp b/sdk/identity/azure-identity/src/client_secret_credential.cpp index 8d4300681..8515157f4 100644 --- a/sdk/identity/azure-identity/src/client_secret_credential.cpp +++ b/sdk/identity/azure-identity/src/client_secret_credential.cpp @@ -80,15 +80,13 @@ Azure::Core::AccessToken ClientSecretCredential::GetToken( request.AddHeader("Content-Type", "application/x-www-form-urlencoded"); request.AddHeader("Content-Length", std::to_string(bodyString.size())); - std::shared_ptr transport = std::make_unique(); - std::vector> policies; policies.push_back(std::make_unique()); RetryOptions retryOptions; policies.push_back(std::make_unique(retryOptions)); - policies.push_back(std::make_unique(std::move(transport))); + policies.push_back(std::make_unique()); HttpPipeline httpPipeline(policies); diff --git a/sdk/storage/azure-storage-blobs/src/blob_batch_client.cpp b/sdk/storage/azure-storage-blobs/src/blob_batch_client.cpp index a94201c54..1a455c11b 100644 --- a/sdk/storage/azure-storage-blobs/src/blob_batch_client.cpp +++ b/sdk/storage/azure-storage-blobs/src/blob_batch_client.cpp @@ -8,7 +8,7 @@ #include #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/blobs/version.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/shared_key_policy.hpp" @@ -105,8 +105,7 @@ namespace Azure { namespace Storage { namespace Blobs { } policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); policies.clear(); @@ -147,8 +146,7 @@ namespace Azure { namespace Storage { namespace Blobs { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); policies.clear(); @@ -187,8 +185,7 @@ namespace Azure { namespace Storage { namespace Blobs { policies.emplace_back(p->Clone()); } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); policies.clear(); diff --git a/sdk/storage/azure-storage-blobs/src/blob_client.cpp b/sdk/storage/azure-storage-blobs/src/blob_client.cpp index c508cc706..1be914ad6 100644 --- a/sdk/storage/azure-storage-blobs/src/blob_client.cpp +++ b/sdk/storage/azure-storage-blobs/src/blob_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/blobs/blob_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/blobs/append_blob_client.hpp" #include "azure/storage/blobs/block_blob_client.hpp" #include "azure/storage/blobs/page_blob_client.hpp" @@ -61,8 +61,7 @@ namespace Azure { namespace Storage { namespace Blobs { } policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -88,8 +87,7 @@ namespace Azure { namespace Storage { namespace Blobs { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -111,8 +109,7 @@ namespace Azure { namespace Storage { namespace Blobs { policies.emplace_back(p->Clone()); } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-blobs/src/blob_container_client.cpp b/sdk/storage/azure-storage-blobs/src/blob_container_client.cpp index bec50f12d..98387a012 100644 --- a/sdk/storage/azure-storage-blobs/src/blob_container_client.cpp +++ b/sdk/storage/azure-storage-blobs/src/blob_container_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/blobs/blob_container_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/blobs/append_blob_client.hpp" #include "azure/storage/blobs/block_blob_client.hpp" #include "azure/storage/blobs/page_blob_client.hpp" @@ -57,8 +57,7 @@ namespace Azure { namespace Storage { namespace Blobs { } policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -84,8 +83,7 @@ namespace Azure { namespace Storage { namespace Blobs { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -109,8 +107,7 @@ namespace Azure { namespace Storage { namespace Blobs { policies.emplace_back(p->Clone()); } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-blobs/src/blob_service_client.cpp b/sdk/storage/azure-storage-blobs/src/blob_service_client.cpp index 7ef04d5af..3ccdf77ca 100644 --- a/sdk/storage/azure-storage-blobs/src/blob_service_client.cpp +++ b/sdk/storage/azure-storage-blobs/src/blob_service_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/blobs/blob_service_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/blobs/version.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/shared_key_policy.hpp" @@ -52,8 +52,7 @@ namespace Azure { namespace Storage { namespace Blobs { } policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -79,8 +78,7 @@ namespace Azure { namespace Storage { namespace Blobs { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -103,8 +101,7 @@ namespace Azure { namespace Storage { namespace Blobs { policies.emplace_back(p->Clone()); } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-files-datalake/src/datalake_directory_client.cpp b/sdk/storage/azure-storage-files-datalake/src/datalake_directory_client.cpp index affb6cfa5..74d02867a 100644 --- a/sdk/storage/azure-storage-files-datalake/src/datalake_directory_client.cpp +++ b/sdk/storage/azure-storage-files-datalake/src/datalake_directory_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/files/datalake/datalake_directory_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/crypt.hpp" #include "azure/storage/common/shared_key_policy.hpp" @@ -67,8 +67,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -97,8 +96,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Azure::Storage::Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -124,8 +122,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(p->Clone()); } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-files-datalake/src/datalake_file_client.cpp b/sdk/storage/azure-storage-files-datalake/src/datalake_file_client.cpp index e7241485d..6ec5b3588 100644 --- a/sdk/storage/azure-storage-files-datalake/src/datalake_file_client.cpp +++ b/sdk/storage/azure-storage-files-datalake/src/datalake_file_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/files/datalake/datalake_file_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/crypt.hpp" #include "azure/storage/common/shared_key_policy.hpp" @@ -145,8 +145,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -177,8 +176,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Azure::Storage::Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -203,8 +201,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-files-datalake/src/datalake_file_system_client.cpp b/sdk/storage/azure-storage-files-datalake/src/datalake_file_system_client.cpp index e734e18cb..c9adf6c0d 100644 --- a/sdk/storage/azure-storage-files-datalake/src/datalake_file_system_client.cpp +++ b/sdk/storage/azure-storage-files-datalake/src/datalake_file_system_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/files/datalake/datalake_file_system_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/blobs/protocol/blob_rest_client.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/crypt.hpp" @@ -89,8 +89,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -124,8 +123,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Azure::Storage::Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -155,8 +153,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-files-datalake/src/datalake_path_client.cpp b/sdk/storage/azure-storage-files-datalake/src/datalake_path_client.cpp index 4f5d61280..3e03f2541 100644 --- a/sdk/storage/azure-storage-files-datalake/src/datalake_path_client.cpp +++ b/sdk/storage/azure-storage-files-datalake/src/datalake_path_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/files/datalake/datalake_path_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/crypt.hpp" #include "azure/storage/common/shared_key_policy.hpp" @@ -129,8 +129,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -161,8 +160,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Azure::Storage::Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -188,8 +186,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(p->Clone()); } - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-files-datalake/src/datalake_service_client.cpp b/sdk/storage/azure-storage-files-datalake/src/datalake_service_client.cpp index 5a8d8d125..99d4b9161 100644 --- a/sdk/storage/azure-storage-files-datalake/src/datalake_service_client.cpp +++ b/sdk/storage/azure-storage-files-datalake/src/datalake_service_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/files/datalake/datalake_service_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/blobs/protocol/blob_rest_client.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/shared_key_policy.hpp" @@ -96,8 +96,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { } policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -129,8 +128,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Azure::Storage::Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -156,8 +154,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { policies.emplace_back(p->Clone()); } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-files-shares/src/share_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_client.cpp index ab8eaadbb..df8d90794 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/files/shares/share_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/crypt.hpp" #include "azure/storage/common/shared_key_policy.hpp" @@ -58,8 +58,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { } policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -85,8 +84,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Azure::Storage::Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -107,8 +105,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { policies.emplace_back(p->Clone()); } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp index 9d80fd13e..5c2ebb2cb 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/files/shares/share_directory_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/crypt.hpp" #include "azure/storage/common/shared_key_policy.hpp" @@ -59,8 +59,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { } policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -86,8 +85,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Azure::Storage::Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -110,8 +108,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { policies.emplace_back(p->Clone()); } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp index 36e0dfc2c..bad2c4313 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/files/shares/share_file_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/common/concurrent_transfer.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/crypt.hpp" @@ -62,8 +62,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { } policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -89,8 +88,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Azure::Storage::Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -111,8 +109,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { policies.emplace_back(p->Clone()); } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } diff --git a/sdk/storage/azure-storage-files-shares/src/share_service_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_service_client.cpp index dfe3141b7..0beee600b 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_service_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_service_client.cpp @@ -4,7 +4,7 @@ #include "azure/storage/files/shares/share_service_client.hpp" #include "azure/core/credentials.hpp" -#include "azure/core/http/curl/curl.hpp" +#include "azure/core/http/policy.hpp" #include "azure/storage/common/constants.hpp" #include "azure/storage/common/shared_key_policy.hpp" #include "azure/storage/common/storage_common.hpp" @@ -54,8 +54,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { } policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique(credential)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -81,8 +80,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { policies.emplace_back(std::make_unique()); policies.emplace_back(std::make_unique( credential, Azure::Storage::Details::c_StorageScope)); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); } @@ -103,8 +101,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { policies.emplace_back(p->Clone()); } policies.emplace_back(std::make_unique()); - policies.emplace_back(std::make_unique( - std::make_shared())); + policies.emplace_back(std::make_unique()); m_pipeline = std::make_shared(policies); }