Integrate storage retry policy. (#722)

* Integrate storage retry policy.

* Removed the logic to make URL empty when '.blob.' is not found in URL.
This commit is contained in:
Kan Tang 2020-10-08 23:30:35 -07:00 committed by GitHub
parent 1b351de2d8
commit f59ab214a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 137 additions and 61 deletions

View File

@ -25,6 +25,11 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerOperationPolicies;
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerRetryPolicies;
/**
* @brief Specify the number of retries and other retry-related options.
*/
StorageRetryWithSecondaryOptions RetryOptions;
};
/**
@ -34,6 +39,11 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerOperationPolicies;
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerRetryPolicies;
/**
* @brief Specify the number of retries and other retry-related options.
*/
StorageRetryWithSecondaryOptions RetryOptions;
};
/**
@ -43,6 +53,11 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerOperationPolicies;
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerRetryPolicies;
/**
* @brief Specify the number of retries and other retry-related options.
*/
StorageRetryWithSecondaryOptions RetryOptions;
};
/**

View File

@ -10,6 +10,7 @@
#include "azure/storage/common/shared_key_policy.hpp"
#include "azure/storage/common/storage_common.hpp"
#include "azure/storage/common/storage_per_retry_policy.hpp"
#include "azure/storage/common/storage_retry_policy.hpp"
#include "azure/storage/common/storage_version.hpp"
#include "azure/storage/files/datalake/datalake_file_client.hpp"
#include "azure/storage/files/datalake/datalake_utilities.hpp"
@ -55,12 +56,15 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
}
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>(
@ -82,8 +86,10 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -110,8 +116,10 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());

View File

@ -10,6 +10,7 @@
#include "azure/storage/common/shared_key_policy.hpp"
#include "azure/storage/common/storage_common.hpp"
#include "azure/storage/common/storage_per_retry_policy.hpp"
#include "azure/storage/common/storage_retry_policy.hpp"
#include "azure/storage/common/storage_version.hpp"
#include "azure/storage/files/datalake/datalake_utilities.hpp"
@ -133,12 +134,15 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
}
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>(
@ -161,12 +165,15 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
@ -187,12 +194,15 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));

View File

@ -11,6 +11,7 @@
#include "azure/storage/common/shared_key_policy.hpp"
#include "azure/storage/common/storage_common.hpp"
#include "azure/storage/common/storage_per_retry_policy.hpp"
#include "azure/storage/common/storage_retry_policy.hpp"
#include "azure/storage/common/storage_version.hpp"
#include "azure/storage/files/datalake/datalake_directory_client.hpp"
#include "azure/storage/files/datalake/datalake_file_client.hpp"
@ -31,6 +32,9 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
blobOptions.PerRetryPolicies.emplace_back(p->Clone());
}
blobOptions.RetryOptions = options.RetryOptions;
blobOptions.RetryOptions.SecondaryHostForRetryReads
= Details::GetBlobUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
return blobOptions;
}
} // namespace
@ -74,12 +78,15 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
}
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>(
@ -105,12 +112,15 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
@ -136,12 +146,15 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(std::make_unique<Azure::Core::Http::TransportPolicy>(
std::make_shared<Azure::Core::Http::CurlTransport>()));

View File

@ -10,6 +10,7 @@
#include "azure/storage/common/shared_key_policy.hpp"
#include "azure/storage/common/storage_common.hpp"
#include "azure/storage/common/storage_per_retry_policy.hpp"
#include "azure/storage/common/storage_retry_policy.hpp"
#include "azure/storage/common/storage_version.hpp"
#include "azure/storage/files/datalake/datalake_utilities.hpp"
@ -29,6 +30,9 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
blobOptions.PerRetryPolicies.emplace_back(p->Clone());
}
blobOptions.RetryOptions = options.RetryOptions;
blobOptions.RetryOptions.SecondaryHostForRetryReads
= Details::GetBlobUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
return blobOptions;
}
@ -114,12 +118,15 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
}
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>(
@ -142,12 +149,15 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
policies.emplace_back(
std::make_unique<Core::Credentials::Policy::BearerTokenAuthenticationPolicy>(
@ -169,13 +179,16 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
}
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

@ -11,6 +11,7 @@
#include "azure/storage/common/storage_common.hpp"
#include "azure/storage/common/storage_credential.hpp"
#include "azure/storage/common/storage_per_retry_policy.hpp"
#include "azure/storage/common/storage_retry_policy.hpp"
#include "azure/storage/common/storage_version.hpp"
#include "azure/storage/files/datalake/datalake_file_system_client.hpp"
#include "azure/storage/files/datalake/datalake_utilities.hpp"
@ -28,6 +29,9 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
blobOptions.PerRetryPolicies.emplace_back(p->Clone());
}
blobOptions.RetryOptions = options.RetryOptions;
blobOptions.RetryOptions.SecondaryHostForRetryReads
= Details::GetBlobUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
return blobOptions;
}
@ -82,8 +86,10 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -112,8 +118,10 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -140,8 +148,10 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
StorageRetryWithSecondaryOptions dfsRetryOptions = options.RetryOptions;
dfsRetryOptions.SecondaryHostForRetryReads
= Details::GetDfsUriFromUri(options.RetryOptions.SecondaryHostForRetryReads);
policies.emplace_back(std::make_unique<StorageRetryPolicy>(dfsRetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());

View File

@ -30,12 +30,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { nam
{
result.replace(pos, c_BlobEndPointIdentifier.size(), c_DfsEndPointIdentifier);
}
// DfsUri will be empty if there is no dfs endpoint.
pos = result.find(c_DfsEndPointIdentifier);
if (pos == std::string::npos)
{
result.clear();
}
return result;
}

View File

@ -5,6 +5,7 @@
#include "azure/core/nullable.hpp"
#include "azure/storage/common/access_conditions.hpp"
#include "azure/storage/common/storage_retry_policy.hpp"
#include "azure/storage/files/shares/protocol/share_rest_client.hpp"
#include "azure/storage/files/shares/share_responses.hpp"
@ -22,6 +23,11 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerOperationPolicies;
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerRetryPolicies;
/**
* @brief Specify the number of retries and other retry-related options.
*/
StorageRetryOptions RetryOptions;
};
/**
@ -31,6 +37,11 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerOperationPolicies;
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerRetryPolicies;
/**
* @brief Specify the number of retries and other retry-related options.
*/
StorageRetryOptions RetryOptions;
};
/**
@ -40,6 +51,11 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerOperationPolicies;
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerRetryPolicies;
/**
* @brief Specify the number of retries and other retry-related options.
*/
StorageRetryOptions RetryOptions;
};
/**
@ -49,6 +65,11 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerOperationPolicies;
std::vector<std::unique_ptr<Azure::Core::Http::HttpPolicy>> PerRetryPolicies;
/**
* @brief Specify the number of retries and other retry-related options.
*/
StorageRetryOptions RetryOptions;
};
struct ListSharesSegmentOptions

View File

@ -10,6 +10,7 @@
#include "azure/storage/common/shared_key_policy.hpp"
#include "azure/storage/common/storage_common.hpp"
#include "azure/storage/common/storage_per_retry_policy.hpp"
#include "azure/storage/common/storage_retry_policy.hpp"
#include "azure/storage/common/storage_version.hpp"
#include "azure/storage/files/shares/share_directory_client.hpp"
#include "azure/storage/files/shares/share_file_client.hpp"
@ -50,8 +51,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StorageRetryPolicy>(options.RetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -77,8 +77,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StorageRetryPolicy>(options.RetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -103,8 +102,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StorageRetryPolicy>(options.RetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());

View File

@ -10,6 +10,7 @@
#include "azure/storage/common/shared_key_policy.hpp"
#include "azure/storage/common/storage_common.hpp"
#include "azure/storage/common/storage_per_retry_policy.hpp"
#include "azure/storage/common/storage_retry_policy.hpp"
#include "azure/storage/common/storage_version.hpp"
#include "azure/storage/files/shares/share_file_client.hpp"
@ -51,8 +52,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StorageRetryPolicy>(options.RetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -78,8 +78,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StorageRetryPolicy>(options.RetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -106,8 +105,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StorageRetryPolicy>(options.RetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());

View File

@ -13,6 +13,7 @@
#include "azure/storage/common/shared_key_policy.hpp"
#include "azure/storage/common/storage_common.hpp"
#include "azure/storage/common/storage_per_retry_policy.hpp"
#include "azure/storage/common/storage_retry_policy.hpp"
#include "azure/storage/common/storage_version.hpp"
#include "azure/storage/files/shares/share_constants.hpp"
@ -54,8 +55,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StorageRetryPolicy>(options.RetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -81,8 +81,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StorageRetryPolicy>(options.RetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -107,8 +106,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());

View File

@ -10,6 +10,7 @@
#include "azure/storage/common/storage_common.hpp"
#include "azure/storage/common/storage_credential.hpp"
#include "azure/storage/common/storage_per_retry_policy.hpp"
#include "azure/storage/common/storage_retry_policy.hpp"
#include "azure/storage/common/storage_version.hpp"
#include "azure/storage/files/shares/share_client.hpp"
@ -46,8 +47,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StorageRetryPolicy>(options.RetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -73,8 +73,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StorageRetryPolicy>(options.RetryOptions));
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());
@ -99,8 +98,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
{
policies.emplace_back(p->Clone());
}
policies.emplace_back(
std::make_unique<Azure::Core::Http::RetryPolicy>(Azure::Core::Http::RetryOptions()));
policies.emplace_back(std::make_unique<StoragePerRetryPolicy>());
for (const auto& p : options.PerRetryPolicies)
{
policies.emplace_back(p->Clone());