Skip to content

Commit 51bf358

Browse files
authored
Adding a cleanup method to EnterpriseGeoIpDownloaderIT (#125958) (#125990)
(cherry picked from commit 7a9edb5) # Conflicts: # modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/EnterpriseGeoIpDownloaderIT.java
1 parent af99307 commit 51bf358

File tree

1 file changed

+33
-2
lines changed

1 file changed

+33
-2
lines changed

modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/EnterpriseGeoIpDownloaderIT.java

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.elasticsearch.ExceptionsHelper;
1515
import org.elasticsearch.ResourceAlreadyExistsException;
1616
import org.elasticsearch.action.ActionListener;
17+
import org.elasticsearch.action.LatchedActionListener;
1718
import org.elasticsearch.action.bulk.BulkItemResponse;
1819
import org.elasticsearch.action.bulk.BulkRequest;
1920
import org.elasticsearch.action.bulk.BulkResponse;
@@ -23,6 +24,8 @@
2324
import org.elasticsearch.action.ingest.PutPipelineRequest;
2425
import org.elasticsearch.action.search.SearchRequest;
2526
import org.elasticsearch.action.search.SearchResponse;
27+
import org.elasticsearch.action.support.SubscribableListener;
28+
import org.elasticsearch.action.support.master.AcknowledgedResponse;
2629
import org.elasticsearch.common.Strings;
2730
import org.elasticsearch.common.bytes.BytesReference;
2831
import org.elasticsearch.common.settings.MockSecureSettings;
@@ -31,6 +34,7 @@
3134
import org.elasticsearch.core.TimeValue;
3235
import org.elasticsearch.ingest.EnterpriseGeoIpTask;
3336
import org.elasticsearch.ingest.geoip.direct.DatabaseConfiguration;
37+
import org.elasticsearch.ingest.geoip.direct.DeleteDatabaseConfigurationAction;
3438
import org.elasticsearch.ingest.geoip.direct.PutDatabaseConfigurationAction;
3539
import org.elasticsearch.persistent.PersistentTasksService;
3640
import org.elasticsearch.plugins.Plugin;
@@ -42,12 +46,15 @@
4246
import org.elasticsearch.xcontent.XContentBuilder;
4347
import org.elasticsearch.xcontent.XContentType;
4448
import org.elasticsearch.xcontent.json.JsonXContent;
49+
import org.junit.After;
4550
import org.junit.ClassRule;
4651

4752
import java.io.IOException;
4853
import java.util.Collection;
4954
import java.util.List;
5055
import java.util.Map;
56+
import java.util.concurrent.CountDownLatch;
57+
import java.util.concurrent.TimeUnit;
5158

5259
import static org.elasticsearch.ingest.EnterpriseGeoIpTask.ENTERPRISE_GEOIP_DOWNLOADER;
5360
import static org.elasticsearch.ingest.geoip.EnterpriseGeoIpDownloaderTaskExecutor.IPINFO_TOKEN_SETTING;
@@ -59,6 +66,8 @@ public class EnterpriseGeoIpDownloaderIT extends ESIntegTestCase {
5966

6067
private static final String MAXMIND_DATABASE_TYPE = "GeoIP2-City";
6168
private static final String IPINFO_DATABASE_TYPE = "asn";
69+
private static final String MAXMIND_CONFIGURATION = "test-1";
70+
private static final String IPINFO_CONFIGURATION = "test-2";
6271

6372
@ClassRule
6473
public static final EnterpriseGeoIpHttpFixture fixture = new EnterpriseGeoIpHttpFixture(
@@ -145,6 +154,28 @@ public void testEnterpriseDownloaderTask() throws Exception {
145154
});
146155
}
147156

157+
@After
158+
public void cleanup() throws InterruptedException {
159+
/*
160+
* This method cleans up the database configurations that the test created. This allows the test to be run repeatedly.
161+
*/
162+
CountDownLatch latch = new CountDownLatch(1);
163+
LatchedActionListener<AcknowledgedResponse> listener = new LatchedActionListener<>(ActionListener.noop(), latch);
164+
SubscribableListener.<AcknowledgedResponse>newForked(l -> deleteDatabaseConfiguration(MAXMIND_CONFIGURATION, l))
165+
.<AcknowledgedResponse>andThen(l -> deleteDatabaseConfiguration(IPINFO_CONFIGURATION, l))
166+
.addListener(listener);
167+
latch.await(10, TimeUnit.SECONDS);
168+
}
169+
170+
private void deleteDatabaseConfiguration(String configurationName, ActionListener<AcknowledgedResponse> listener) {
171+
admin().cluster()
172+
.execute(
173+
DeleteDatabaseConfigurationAction.INSTANCE,
174+
new DeleteDatabaseConfigurationAction.Request(TimeValue.MAX_VALUE, TimeValue.timeValueSeconds(10), configurationName),
175+
listener
176+
);
177+
}
178+
148179
private void startEnterpriseGeoIpDownloaderTask() {
149180
PersistentTasksService persistentTasksService = internalCluster().getInstance(PersistentTasksService.class);
150181
persistentTasksService.sendStartRequest(
@@ -168,7 +199,7 @@ private void configureMaxmindDatabase(String databaseType) {
168199
new PutDatabaseConfigurationAction.Request(
169200
TimeValue.MAX_VALUE,
170201
TimeValue.MAX_VALUE,
171-
new DatabaseConfiguration("test-1", databaseType, new DatabaseConfiguration.Maxmind("test_account"))
202+
new DatabaseConfiguration(MAXMIND_CONFIGURATION, databaseType, new DatabaseConfiguration.Maxmind("test_account"))
172203
)
173204
)
174205
.actionGet();
@@ -181,7 +212,7 @@ private void configureIpinfoDatabase(String databaseType) {
181212
new PutDatabaseConfigurationAction.Request(
182213
TimeValue.MAX_VALUE,
183214
TimeValue.MAX_VALUE,
184-
new DatabaseConfiguration("test-2", databaseType, new DatabaseConfiguration.Ipinfo())
215+
new DatabaseConfiguration(IPINFO_CONFIGURATION, databaseType, new DatabaseConfiguration.Ipinfo())
185216
)
186217
)
187218
.actionGet();

0 commit comments

Comments
 (0)