StoragePerRetryPolicy (#512)

This commit is contained in:
JinmingHu 2020-08-25 09:52:11 +08:00 committed by GitHub
parent 1340539897
commit b2dfbabd04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 47 additions and 48 deletions

View File

@ -16,7 +16,7 @@ endif()
set(AZURE_STORAGE_COMMON_HEADER
inc/common/access_conditions.hpp
inc/common/common_headers_request_policy.hpp
inc/common/storage_per_retry_policy.hpp
inc/common/concurrent_transfer.hpp
inc/common/constants.hpp
inc/common/crypt.hpp
@ -33,7 +33,7 @@ set(AZURE_STORAGE_COMMON_HEADER
)
set(AZURE_STORAGE_COMMON_SOURCE
src/common/common_headers_request_policy.cpp
src/common/storage_per_retry_policy.cpp
src/common/crypt.cpp
src/common/file_io.cpp
src/common/reliable_stream.cpp

View File

@ -7,14 +7,13 @@
namespace Azure { namespace Storage {
class CommonHeadersRequestPolicy : public Core::Http::HttpPolicy {
class StoragePerRetryPolicy : public Core::Http::HttpPolicy {
public:
explicit CommonHeadersRequestPolicy() {}
~CommonHeadersRequestPolicy() override {}
~StoragePerRetryPolicy() override {}
std::unique_ptr<HttpPolicy> Clone() const override
{
return std::make_unique<CommonHeadersRequestPolicy>(*this);
return std::make_unique<StoragePerRetryPolicy>(*this);
}
std::unique_ptr<Core::Http::RawResponse> Send(

View File

@ -6,13 +6,13 @@
#include "blobs/append_blob_client.hpp"
#include "blobs/block_blob_client.hpp"
#include "blobs/page_blob_client.hpp"
#include "common/common_headers_request_policy.hpp"
#include "common/concurrent_transfer.hpp"
#include "common/constants.hpp"
#include "common/file_io.hpp"
#include "common/reliable_stream.hpp"
#include "common/shared_key_policy.hpp"
#include "common/storage_common.hpp"
#include "common/storage_per_retry_policy.hpp"
#include "common/storage_version.hpp"
#include "credentials/policy/policies.hpp"
#include "http/curl/curl.hpp"
@ -60,7 +60,7 @@ namespace Azure { namespace Storage { namespace Blobs {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<SharedKeyPolicy>(credential));
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
@ -87,7 +87,7 @@ namespace Azure { namespace Storage { namespace Blobs {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
credential, Details::c_StorageScope));
@ -114,7 +114,7 @@ namespace Azure { namespace Storage { namespace Blobs {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
m_pipeline = std::make_shared<Azure::Core::Http::HttpPipeline>(policies);

View File

@ -6,10 +6,10 @@
#include "blobs/append_blob_client.hpp"
#include "blobs/block_blob_client.hpp"
#include "blobs/page_blob_client.hpp"
#include "common/common_headers_request_policy.hpp"
#include "common/constants.hpp"
#include "common/shared_key_policy.hpp"
#include "common/storage_common.hpp"
#include "common/storage_per_retry_policy.hpp"
#include "common/storage_version.hpp"
#include "credentials/policy/policies.hpp"
#include "http/curl/curl.hpp"
@ -56,7 +56,7 @@ namespace Azure { namespace Storage { namespace Blobs {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<SharedKeyPolicy>(credential));
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
@ -83,7 +83,7 @@ namespace Azure { namespace Storage { namespace Blobs {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
credential, Details::c_StorageScope));
@ -112,7 +112,7 @@ namespace Azure { namespace Storage { namespace Blobs {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
m_pipeline = std::make_shared<Azure::Core::Http::HttpPipeline>(policies);

View File

@ -3,10 +3,10 @@
#include "blobs/blob_service_client.hpp"
#include "common/common_headers_request_policy.hpp"
#include "common/constants.hpp"
#include "common/shared_key_policy.hpp"
#include "common/storage_common.hpp"
#include "common/storage_per_retry_policy.hpp"
#include "common/storage_version.hpp"
#include "credentials/policy/policies.hpp"
#include "http/curl/curl.hpp"
@ -51,7 +51,7 @@ namespace Azure { namespace Storage { namespace Blobs {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<SharedKeyPolicy>(credential));
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
@ -78,7 +78,7 @@ namespace Azure { namespace Storage { namespace Blobs {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
credential, Details::c_StorageScope));
@ -106,7 +106,7 @@ namespace Azure { namespace Storage { namespace Blobs {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
m_pipeline = std::make_shared<Azure::Core::Http::HttpPipeline>(policies);

View File

@ -1,13 +1,13 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// SPDX-License-Identifier: MIT
#include "common/common_headers_request_policy.hpp"
#include "common/storage_per_retry_policy.hpp"
#include <ctime>
namespace Azure { namespace Storage {
std::unique_ptr<Core::Http::RawResponse> CommonHeadersRequestPolicy::Send(
std::unique_ptr<Core::Http::RawResponse> StoragePerRetryPolicy::Send(
Core::Context const& ctx,
Core::Http::Request& request,
Core::Http::NextHttpPolicy nextHttpPolicy) const

View File

@ -3,11 +3,11 @@
#include "datalake/datalake_directory_client.hpp"
#include "common/common_headers_request_policy.hpp"
#include "common/constants.hpp"
#include "common/crypt.hpp"
#include "common/shared_key_policy.hpp"
#include "common/storage_common.hpp"
#include "common/storage_per_retry_policy.hpp"
#include "common/storage_version.hpp"
#include "credentials/policy/policies.hpp"
#include "datalake/datalake_file_client.hpp"
@ -60,7 +60,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<SharedKeyPolicy>(credential));
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
@ -86,7 +86,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
credential, Azure::Storage::Details::c_StorageScope));
@ -113,7 +113,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
m_pipeline = std::make_shared<Azure::Core::Http::HttpPipeline>(policies);

View File

@ -3,11 +3,11 @@
#include "datalake/datalake_file_client.hpp"
#include "common/common_headers_request_policy.hpp"
#include "common/constants.hpp"
#include "common/crypt.hpp"
#include "common/shared_key_policy.hpp"
#include "common/storage_common.hpp"
#include "common/storage_per_retry_policy.hpp"
#include "common/storage_version.hpp"
#include "credentials/policy/policies.hpp"
#include "datalake/datalake_utilities.hpp"
@ -138,7 +138,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<SharedKeyPolicy>(credential));
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
@ -165,7 +165,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
credential, Azure::Storage::Details::c_StorageScope));
@ -190,7 +190,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
m_pipeline = std::make_shared<Azure::Core::Http::HttpPipeline>(policies);

View File

@ -4,11 +4,11 @@
#include "datalake/datalake_file_system_client.hpp"
#include "blobs/protocol/blob_rest_client.hpp"
#include "common/common_headers_request_policy.hpp"
#include "common/constants.hpp"
#include "common/crypt.hpp"
#include "common/shared_key_policy.hpp"
#include "common/storage_common.hpp"
#include "common/storage_per_retry_policy.hpp"
#include "common/storage_version.hpp"
#include "credentials/policy/policies.hpp"
#include "datalake/datalake_directory_client.hpp"
@ -79,7 +79,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<SharedKeyPolicy>(credential));
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
@ -109,7 +109,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
credential, Azure::Storage::Details::c_StorageScope));
@ -139,7 +139,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
m_pipeline = std::make_shared<Azure::Core::Http::HttpPipeline>(policies);

View File

@ -3,11 +3,11 @@
#include "datalake/datalake_path_client.hpp"
#include "common/common_headers_request_policy.hpp"
#include "common/constants.hpp"
#include "common/crypt.hpp"
#include "common/shared_key_policy.hpp"
#include "common/storage_common.hpp"
#include "common/storage_per_retry_policy.hpp"
#include "common/storage_version.hpp"
#include "credentials/policy/policies.hpp"
#include "datalake/datalake_utilities.hpp"
@ -119,7 +119,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<SharedKeyPolicy>(credential));
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
@ -146,7 +146,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
credential, Azure::Storage::Details::c_StorageScope));
@ -172,7 +172,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
m_pipeline = std::make_shared<Azure::Core::Http::HttpPipeline>(policies);

View File

@ -4,11 +4,11 @@
#include "datalake/datalake_service_client.hpp"
#include "blobs/protocol/blob_rest_client.hpp"
#include "common/common_headers_request_policy.hpp"
#include "common/constants.hpp"
#include "common/shared_key_policy.hpp"
#include "common/storage_common.hpp"
#include "common/storage_credential.hpp"
#include "common/storage_per_retry_policy.hpp"
#include "common/storage_version.hpp"
#include "credentials/policy/policies.hpp"
#include "datalake/datalake_file_system_client.hpp"
@ -86,7 +86,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<SharedKeyPolicy>(credential));
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
@ -115,7 +115,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
credential, Azure::Storage::Details::c_StorageScope));
@ -142,7 +142,7 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
m_pipeline = std::make_shared<Azure::Core::Http::HttpPipeline>(policies);

View File

@ -3,11 +3,11 @@
#include "shares/share_client.hpp"
#include "common/common_headers_request_policy.hpp"
#include "common/constants.hpp"
#include "common/crypt.hpp"
#include "common/shared_key_policy.hpp"
#include "common/storage_common.hpp"
#include "common/storage_per_retry_policy.hpp"
#include "common/storage_version.hpp"
#include "credentials/policy/policies.hpp"
#include "http/curl/curl.hpp"
@ -53,7 +53,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<SharedKeyPolicy>(credential));
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
@ -79,7 +79,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
credential, Azure::Storage::Details::c_StorageScope));
@ -104,7 +104,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
m_pipeline = std::make_shared<Azure::Core::Http::HttpPipeline>(policies);

View File

@ -3,11 +3,11 @@
#include "shares/share_service_client.hpp"
#include "common/common_headers_request_policy.hpp"
#include "common/constants.hpp"
#include "common/shared_key_policy.hpp"
#include "common/storage_common.hpp"
#include "common/storage_credential.hpp"
#include "common/storage_per_retry_policy.hpp"
#include "common/storage_version.hpp"
#include "credentials/policy/policies.hpp"
#include "http/curl/curl.hpp"
@ -50,7 +50,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<SharedKeyPolicy>(credential));
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
@ -76,7 +76,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
credential, Azure::Storage::Details::c_StorageScope));
@ -101,7 +101,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<CommonHeadersRequestPolicy>());
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));
m_pipeline = std::make_shared<Azure::Core::Http::HttpPipeline>(policies);