From d3cf8c4390ca61f129a04b83eff56d553b75df09 Mon Sep 17 00:00:00 2001 From: Mashhur <99575341+mashhurs@users.noreply.github.com> Date: Thu, 26 Jun 2025 14:07:16 -0700 Subject: [PATCH] Sync up with Elasticsearch GeoIp interface changes: IpDatabaseProvider#isValid and IpDatabaseProvider#getDatabase methods have now projectId additional params. (#309) (cherry picked from commit a005e94eff0ef7c5fd1c999d66333512c492df24) --- .../geoip/IpDatabaseProvider.java | 5 +++-- .../geoip/IpDatabaseProviderTest.java | 16 +++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/co/elastic/logstash/filters/elasticintegration/geoip/IpDatabaseProvider.java b/src/main/java/co/elastic/logstash/filters/elasticintegration/geoip/IpDatabaseProvider.java index d392266e..95397c3a 100644 --- a/src/main/java/co/elastic/logstash/filters/elasticintegration/geoip/IpDatabaseProvider.java +++ b/src/main/java/co/elastic/logstash/filters/elasticintegration/geoip/IpDatabaseProvider.java @@ -8,6 +8,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.elasticsearch.cluster.metadata.ProjectId; import org.elasticsearch.core.IOUtils; import org.elasticsearch.ingest.geoip.IpDatabase; @@ -33,13 +34,13 @@ public class IpDatabaseProvider implements org.elasticsearch.ingest.geoip.IpData } @Override - public Boolean isValid(String databaseIdentifierFileName) { + public Boolean isValid(ProjectId projectId, String databaseIdentifierFileName) { final IpDatabaseHolder holder = getDatabaseHolder(databaseIdentifierFileName); return Objects.nonNull(holder) && holder.isValid(); } @Override - public IpDatabase getDatabase(String databaseIdentifierFileName) { + public IpDatabase getDatabase(ProjectId projectId, String databaseIdentifierFileName) { final IpDatabaseHolder holder = getDatabaseHolder(databaseIdentifierFileName); if (Objects.isNull(holder)) { return null; diff --git a/src/test/java/co/elastic/logstash/filters/elasticintegration/geoip/IpDatabaseProviderTest.java b/src/test/java/co/elastic/logstash/filters/elasticintegration/geoip/IpDatabaseProviderTest.java index 139ff322..0238595f 100644 --- a/src/test/java/co/elastic/logstash/filters/elasticintegration/geoip/IpDatabaseProviderTest.java +++ b/src/test/java/co/elastic/logstash/filters/elasticintegration/geoip/IpDatabaseProviderTest.java @@ -9,6 +9,7 @@ import co.elastic.logstash.filters.elasticintegration.util.IngestDocumentUtil; import co.elastic.logstash.filters.elasticintegration.util.ResourcesUtil; +import org.elasticsearch.cluster.metadata.ProjectId; import org.elasticsearch.ingest.IngestDocument; import org.elasticsearch.ingest.Processor; import org.elasticsearch.ingest.geoip.GeoIpProcessor; @@ -35,16 +36,17 @@ class IpDatabaseProviderTest { @Test void loadTestVendoredDatabases() throws Exception { + withVendoredGeoIpDatabaseProvider(geoIpDatabaseProvider -> { assertAll("Loaded databases all report valid", - () -> assertThat(geoIpDatabaseProvider.isValid("GeoLite2-ASN.mmdb"), is(true)), - () -> assertThat(geoIpDatabaseProvider.isValid("GeoLite2-City.mmdb"), is(true)), - () -> assertThat(geoIpDatabaseProvider.isValid("GeoLite2-Country.mmdb"), is(true))); + () -> assertThat(geoIpDatabaseProvider.isValid(ProjectId.DEFAULT, "GeoLite2-ASN.mmdb"), is(true)), + () -> assertThat(geoIpDatabaseProvider.isValid(ProjectId.DEFAULT, "GeoLite2-City.mmdb"), is(true)), + () -> assertThat(geoIpDatabaseProvider.isValid(ProjectId.DEFAULT, "GeoLite2-Country.mmdb"), is(true))); assertAll("Non-loaded databases all report invalid", - () -> assertThat(geoIpDatabaseProvider.isValid("GeoLite2-Global.mmdb"), is(false)), - () -> assertThat(geoIpDatabaseProvider.isValid("Bananas.mmdb"), is(false)), - () -> assertThat(geoIpDatabaseProvider.isValid("Intergalactic.mmdb"), is(false))); + () -> assertThat(geoIpDatabaseProvider.isValid(ProjectId.DEFAULT, "GeoLite2-Global.mmdb"), is(false)), + () -> assertThat(geoIpDatabaseProvider.isValid(ProjectId.DEFAULT, "Bananas.mmdb"), is(false)), + () -> assertThat(geoIpDatabaseProvider.isValid(ProjectId.DEFAULT, "Intergalactic.mmdb"), is(false))); }); } @@ -131,7 +133,7 @@ static void withVendoredGeoIpDatabaseProvider(final ExceptionalConsumer config, ExceptionalConsumer geoIpProcessorConsumer) throws Exception { - Processor processor = new GeoIpProcessor.Factory("geoip", geoIpDatabaseProvider).create(Map.of(), null, null, config); + Processor processor = new GeoIpProcessor.Factory("geoip", geoIpDatabaseProvider).create(Map.of(), null, null, config, null); geoIpProcessorConsumer.accept(processor); }