Skip to content

Commit 9ff0844

Browse files
authored
aws: (chore) remove redundant metadata inheritance (envoyproxy#39290)
Metadata inherited from cached credentials provider, which is no longer required due to curl deprecation. This patch removes the unused needsrefresh calls and test cases from metadata credential providers. Signed-off-by: Nigel Brittain <[email protected]>
1 parent a5b4c6e commit 9ff0844

11 files changed

+5
-53
lines changed

source/extensions/common/aws/cached_credentials_provider_base.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ namespace Extensions {
88
namespace Common {
99
namespace Aws {
1010

11-
constexpr std::chrono::hours REFRESH_INTERVAL{1};
12-
1311
class CachedCredentialsProviderBase : public CredentialsProvider,
1412
public Logger::Loggable<Logger::Id::aws> {
1513
public:

source/extensions/common/aws/credential_providers/container_credentials_provider.cc

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,6 @@ ContainerCredentialsProvider::ContainerCredentialsProvider(
2222
initialization_timer),
2323
credential_uri_(credential_uri), authorization_token_(authorization_token) {}
2424

25-
bool ContainerCredentialsProvider::needsRefresh() {
26-
const auto now = api_.timeSource().systemTime();
27-
auto expired = (now - last_updated_ > REFRESH_INTERVAL);
28-
29-
if (expiration_time_.has_value()) {
30-
return expired || (expiration_time_.value() - now < REFRESH_GRACE_PERIOD);
31-
} else {
32-
return expired;
33-
}
34-
}
35-
3625
void ContainerCredentialsProvider::refresh() {
3726

3827
absl::string_view host, path;

source/extensions/common/aws/credential_providers/container_credentials_provider.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ class ContainerCredentialsProvider : public MetadataCredentialsProviderBase,
4141
const std::string credential_uri_;
4242
const std::string authorization_token_;
4343

44-
bool needsRefresh() override;
4544
void refresh() override;
4645
void extractCredentials(const std::string&& credential_document_value);
4746
};

source/extensions/common/aws/credential_providers/instance_profile_credentials_provider.cc

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@ InstanceProfileCredentialsProvider::InstanceProfileCredentialsProvider(
2020
create_metadata_fetcher_cb, refresh_state,
2121
initialization_timer) {}
2222

23-
bool InstanceProfileCredentialsProvider::needsRefresh() {
24-
return api_.timeSource().systemTime() - last_updated_ > REFRESH_INTERVAL;
25-
}
26-
2723
void InstanceProfileCredentialsProvider::refresh() {
2824

2925
ENVOY_LOG(debug, "Getting AWS credentials from the EC2MetadataService");

source/extensions/common/aws/credential_providers/instance_profile_credentials_provider.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ class InstanceProfileCredentialsProvider : public MetadataCredentialsProviderBas
3838
std::string providerName() override { return "InstanceProfileCredentialsProvider"; };
3939

4040
private:
41-
bool needsRefresh() override;
4241
void refresh() override;
4342
void fetchInstanceRoleAsync(const std::string&& token);
4443
void fetchCredentialFromInstanceRoleAsync(const std::string&& instance_role,

source/extensions/common/aws/credential_providers/webidentity_credentials_provider.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,6 @@ class WebIdentityCredentialsProvider : public MetadataCredentialsProviderBase,
4848
const std::string role_arn_;
4949
const std::string role_session_name_;
5050

51-
// This is required because of the base class handling non-async case, which can never be used for
52-
// web identity provider
53-
bool needsRefresh() override { return true; };
5451
void refresh() override;
5552
void extractCredentials(const std::string&& credential_document_value);
5653
};

source/extensions/common/aws/credentials_provider.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ namespace Aws {
1616
constexpr char AWS_ACCESS_KEY_ID[] = "AWS_ACCESS_KEY_ID";
1717
constexpr char AWS_SECRET_ACCESS_KEY[] = "AWS_SECRET_ACCESS_KEY";
1818
constexpr char AWS_SESSION_TOKEN[] = "AWS_SESSION_TOKEN";
19+
constexpr std::chrono::hours REFRESH_INTERVAL{1};
1920

2021
/**
2122
* AWS credentials containers

source/extensions/common/aws/metadata_credentials_provider_base.cc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,8 @@ void MetadataCredentialsProviderBase::credentialsRetrievalError() {
5353
handleFetchDone();
5454
}
5555

56-
// Async provider uses its own refresh mechanism. Calling refreshIfNeeded() here is not thread safe.
5756
bool MetadataCredentialsProviderBase::credentialsPending() { return credentials_pending_; }
5857

59-
// Async provider uses its own refresh mechanism. Calling refreshIfNeeded() here is not thread safe.
6058
Credentials MetadataCredentialsProviderBase::getCredentials() {
6159

6260
if (tls_slot_) {

source/extensions/common/aws/metadata_credentials_provider_base.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#pragma once
22

33
#include "source/extensions/common/aws/aws_cluster_manager.h"
4-
#include "source/extensions/common/aws/cached_credentials_provider_base.h"
54
#include "source/extensions/common/aws/credentials_provider.h"
65
#include "source/extensions/common/aws/metadata_fetcher.h"
76

@@ -32,7 +31,8 @@ struct MetadataCredentialsProviderStats {
3231
using CreateMetadataFetcherCb =
3332
std::function<MetadataFetcherPtr(Upstream::ClusterManager&, absl::string_view)>;
3433

35-
class MetadataCredentialsProviderBase : public CachedCredentialsProviderBase,
34+
class MetadataCredentialsProviderBase : public CredentialsProvider,
35+
public Logger::Loggable<Logger::Id::aws>,
3636
public AwsManagedClusterUpdateCallbacks {
3737
public:
3838
friend class MetadataCredentialsProviderBaseFriend;
@@ -84,6 +84,8 @@ class MetadataCredentialsProviderBase : public CachedCredentialsProviderBase,
8484
// Set Credentials shared_ptr on all threads.
8585
void setCredentialsToAllThreads(CredentialsConstUniquePtr&& creds);
8686

87+
virtual void refresh() PURE;
88+
8789
Api::Api& api_;
8890
// The optional server factory context.
8991
Server::Configuration::ServerFactoryContext& context_;

test/extensions/common/aws/credential_providers/webidentity_credentials_provider_test.cc

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -616,32 +616,6 @@ TEST_F(WebIdentityCredentialsProviderTest, UnexpectedResponseDuringStartup) {
616616
EXPECT_FALSE(credentials.sessionToken().has_value());
617617
}
618618

619-
TEST_F(WebIdentityCredentialsProviderTest, Coverage) {
620-
621-
// Setup timer.
622-
timer_ = new NiceMock<Event::MockTimer>(&context_.dispatcher_);
623-
expectDocument(200, std::move(R"EOF(
624-
{
625-
"AssumeRoleWithWebIdentityResponse": {
626-
"UnexpectedResponse": ""
627-
}
628-
}
629-
)EOF"));
630-
631-
setupProvider(MetadataFetcher::MetadataReceiver::RefreshState::FirstRefresh,
632-
std::chrono::seconds(2));
633-
timer_->enableTimer(std::chrono::milliseconds(1), nullptr);
634-
635-
EXPECT_CALL(*timer_, enableTimer(std::chrono::milliseconds(std::chrono::seconds(2)), nullptr));
636-
637-
// Kick off a refresh
638-
auto provider_friend = MetadataCredentialsProviderBaseFriend(provider_);
639-
provider_friend.onClusterAddOrUpdate();
640-
timer_->invokeCallback();
641-
642-
EXPECT_TRUE(provider_friend.needsRefresh());
643-
}
644-
645619
} // namespace Aws
646620
} // namespace Common
647621
} // namespace Extensions

0 commit comments

Comments
 (0)