Skip to content

Commit 48c3c08

Browse files
committed
Create IMDS-specific retry strategy in ClientConfiguration during setup
1 parent 01a4937 commit 48c3c08

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

src/aws-cpp-sdk-core/include/aws/core/client/ClientConfiguration.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,8 +507,12 @@ namespace Aws
507507
*/
508508
long metadataServiceTimeout = 1;
509509

510-
511510
} imdsConfig;
511+
512+
/**
513+
* IMDS-specific retry strategy based on metadata_service_num_attempts
514+
*/
515+
std::shared_ptr<RetryStrategy> imdsRetryStrategy = nullptr;
512516
}credentialProviderConfig;
513517
};
514518

src/aws-cpp-sdk-core/source/client/ClientConfiguration.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,11 @@ void setConfigFromEnvOrProfile(ClientConfiguration &config)
314314
// Parse and set IMDS num attempts
315315
long attempts = static_cast<long>(Aws::Utils::StringUtils::ConvertToInt32(numAttemptsStr.c_str()));
316316
config.credentialProviderConfig.imdsConfig.metadataServiceNumAttempts = attempts;
317-
317+
318+
// Create IMDS-specific retry strategy based on configured attempts
319+
if (attempts > 0) {
320+
config.credentialProviderConfig.imdsRetryStrategy = Aws::MakeShared<DefaultRetryStrategy>(CLIENT_CONFIG_TAG, attempts - 1, 1000);
321+
}
318322
}
319323

320324
ClientConfiguration::ClientConfiguration()

src/aws-cpp-sdk-core/source/internal/AWSHttpResourceClient.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ namespace Aws
4747

4848
namespace Internal
4949
{
50-
static ClientConfiguration MakeDefaultHttpResourceClientConfiguration(const char *logtag)
50+
static ClientConfiguration MakeDefaultHttpResourceClientConfiguration(const char *logtag, const Aws::Client::ClientConfiguration* clientConfig = nullptr)
5151
{
5252
ClientConfiguration res;
5353

@@ -196,7 +196,7 @@ namespace Aws
196196

197197
EC2MetadataClient::EC2MetadataClient(const Aws::Client::ClientConfiguration &clientConfiguration,
198198
const char *endpoint) :
199-
AWSHttpResourceClient(clientConfiguration, EC2_METADATA_CLIENT_LOG_TAG),
199+
AWSHttpResourceClient(MakeDefaultHttpResourceClientConfiguration(EC2_METADATA_CLIENT_LOG_TAG, &clientConfiguration), EC2_METADATA_CLIENT_LOG_TAG),
200200
m_endpoint(endpoint),
201201
m_disableIMDS(clientConfiguration.disableIMDS),
202202
m_tokenRequired(true),

0 commit comments

Comments
 (0)