From fb109cb585193324f6dcbc0041e4924a26da8af2 Mon Sep 17 00:00:00 2001 From: Armin Braun Date: Fri, 3 Jan 2020 15:47:36 +0100 Subject: [PATCH] Make EC2 Discovery Cache Empty Seed Hosts List Follow up to #50550. Cache empty nodes lists (`fetchDynamicNodes` will return an empty list in case of failure) now that the plugin properly retries requests to AWS EC2 APIs. --- .../discovery/ec2/AwsEc2SeedHostsProvider.java | 13 ++----------- .../discovery/ec2/Ec2DiscoveryTests.java | 4 ++-- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/plugins/discovery-ec2/src/main/java/org/elasticsearch/discovery/ec2/AwsEc2SeedHostsProvider.java b/plugins/discovery-ec2/src/main/java/org/elasticsearch/discovery/ec2/AwsEc2SeedHostsProvider.java index 515aef8408b01..dd4ef02c0b318 100644 --- a/plugins/discovery-ec2/src/main/java/org/elasticsearch/discovery/ec2/AwsEc2SeedHostsProvider.java +++ b/plugins/discovery-ec2/src/main/java/org/elasticsearch/discovery/ec2/AwsEc2SeedHostsProvider.java @@ -53,7 +53,7 @@ import static org.elasticsearch.discovery.ec2.AwsEc2Service.HostType.TAG_PREFIX; class AwsEc2SeedHostsProvider implements SeedHostsProvider { - + private static final Logger logger = LogManager.getLogger(AwsEc2SeedHostsProvider.class); private final TransportService transportService; @@ -221,22 +221,13 @@ private DescribeInstancesRequest buildDescribeInstancesRequest() { private final class TransportAddressesCache extends SingleObjectCache> { - private boolean empty = true; - protected TransportAddressesCache(TimeValue refreshInterval) { super(refreshInterval, new ArrayList<>()); } - @Override - protected boolean needsRefresh() { - return (empty || super.needsRefresh()); - } - @Override protected List refresh() { - final List nodes = fetchDynamicNodes(); - empty = nodes.isEmpty(); - return nodes; + return fetchDynamicNodes(); } } } diff --git a/plugins/discovery-ec2/src/test/java/org/elasticsearch/discovery/ec2/Ec2DiscoveryTests.java b/plugins/discovery-ec2/src/test/java/org/elasticsearch/discovery/ec2/Ec2DiscoveryTests.java index 6703812a4ec0c..ba31848464310 100644 --- a/plugins/discovery-ec2/src/test/java/org/elasticsearch/discovery/ec2/Ec2DiscoveryTests.java +++ b/plugins/discovery-ec2/src/test/java/org/elasticsearch/discovery/ec2/Ec2DiscoveryTests.java @@ -306,10 +306,10 @@ protected List fetchDynamicNodes() { return new ArrayList<>(); } }; - for (int i=0; i<3; i++) { + for (int i = 0; i < 3; i++) { provider.getSeedAddresses(null); } - assertThat(provider.fetchCount, is(3)); + assertThat(provider.fetchCount, is(1)); } public void testGetNodeListCached() throws Exception {