Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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)));
});
}

Expand Down Expand Up @@ -131,7 +133,7 @@ static void withVendoredGeoIpDatabaseProvider(final ExceptionalConsumer<IpDataba
}

static void withGeoipProcessor(final IpDatabaseProvider geoIpDatabaseProvider, Map<String, Object> config, ExceptionalConsumer<Processor> 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);
}

Expand Down