From f97851ae238e6164d73f4f827d2cb16afdb10410 Mon Sep 17 00:00:00 2001 From: Przemko Robakowski Date: Wed, 7 Apr 2021 00:50:35 +0200 Subject: [PATCH 1/2] Add GeoIP cli IT --- .../ingest/geoip/GeoIpDownloaderIT.java | 14 +++++-- test/fixtures/geoip-fixture/build.gradle | 3 ++ .../java/fixture/geoip/GeoIpHttpFixture.java | 37 ++++++++++++++++++ .../src/main/resources/GeoLite2-City.mmdb | Bin 0 -> 20809 bytes .../src/main/resources/GeoLite2-Country.mmdb | Bin 0 -> 17952 bytes 5 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 test/fixtures/geoip-fixture/src/main/resources/GeoLite2-City.mmdb create mode 100644 test/fixtures/geoip-fixture/src/main/resources/GeoLite2-Country.mmdb diff --git a/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderIT.java b/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderIT.java index 3f968b68ae36e..f31256336c0a4 100644 --- a/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderIT.java +++ b/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderIT.java @@ -31,6 +31,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.sort.SortOrder; +import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.junit.annotations.TestLogging; import org.junit.After; @@ -59,6 +60,7 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; +@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST) public class GeoIpDownloaderIT extends AbstractGeoIpIT { private static final String ENDPOINT = System.getProperty("geoip_endpoint"); @@ -72,7 +74,8 @@ protected Collection> nodePlugins() { protected Settings nodeSettings(int nodeOrdinal, Settings otherSettings) { Settings.Builder settings = Settings.builder().put(super.nodeSettings(nodeOrdinal, otherSettings)); if (ENDPOINT != null) { - settings.put(GeoIpDownloader.ENDPOINT_SETTING.getKey(), ENDPOINT); + String endpoint = getTestName().endsWith("Cli") ? ENDPOINT + "cli/overview.json" : ENDPOINT; + settings.put(GeoIpDownloader.ENDPOINT_SETTING.getKey(), endpoint); } return settings.build(); } @@ -86,6 +89,11 @@ public void disableDownloader() { assertTrue(settingsResponse.isAcknowledged()); } + public void testGeoIpDatabasesDownloadCli() throws Exception { + assumeTrue("cli endpoint only available through fixture", ENDPOINT != null); + testGeoIpDatabasesDownload(); + } + public void testGeoIpDatabasesDownload() throws Exception { ClusterUpdateSettingsResponse settingsResponse = client().admin().cluster() .prepareUpdateSettings() @@ -247,8 +255,8 @@ public void testUseGeoIpProcessorWithDownloadedDBs() throws Exception { try (Stream list = Files.list(geoipTmpDir)) { List files = list.map(Path::getFileName).map(Path::toString).collect(Collectors.toList()); assertThat(files, containsInAnyOrder("GeoLite2-City.mmdb", "GeoLite2-Country.mmdb", "GeoLite2-ASN.mmdb", - "GeoLite2-City.mmdb_COPYRIGHT.txt","GeoLite2-Country.mmdb_COPYRIGHT.txt","GeoLite2-ASN.mmdb_COPYRIGHT.txt", - "GeoLite2-City.mmdb_LICENSE.txt","GeoLite2-Country.mmdb_LICENSE.txt","GeoLite2-ASN.mmdb_LICENSE.txt", + "GeoLite2-City.mmdb_COPYRIGHT.txt", "GeoLite2-Country.mmdb_COPYRIGHT.txt", "GeoLite2-ASN.mmdb_COPYRIGHT.txt", + "GeoLite2-City.mmdb_LICENSE.txt", "GeoLite2-Country.mmdb_LICENSE.txt", "GeoLite2-ASN.mmdb_LICENSE.txt", "GeoLite2-ASN.mmdb_README.txt")); } } diff --git a/test/fixtures/geoip-fixture/build.gradle b/test/fixtures/geoip-fixture/build.gradle index d8f85759cf7f8..d6935624046d4 100644 --- a/test/fixtures/geoip-fixture/build.gradle +++ b/test/fixtures/geoip-fixture/build.gradle @@ -13,6 +13,9 @@ tasks.named("test").configure { enabled = false } dependencies { api project(':server') + api project(':distribution:tools:geoip-cli') + api project(":libs:elasticsearch-cli") + api project(":libs:elasticsearch-x-content") } tasks.named("preProcessFixture").configure { diff --git a/test/fixtures/geoip-fixture/src/main/java/fixture/geoip/GeoIpHttpFixture.java b/test/fixtures/geoip-fixture/src/main/java/fixture/geoip/GeoIpHttpFixture.java index f5573e36dce54..c195c0a59fb53 100644 --- a/test/fixtures/geoip-fixture/src/main/java/fixture/geoip/GeoIpHttpFixture.java +++ b/test/fixtures/geoip-fixture/src/main/java/fixture/geoip/GeoIpHttpFixture.java @@ -9,6 +9,8 @@ package fixture.geoip; import com.sun.net.httpserver.HttpServer; +import org.elasticsearch.cli.Terminal; +import org.elasticsearch.geoip.GeoIpCli; import java.io.BufferedWriter; import java.io.InputStream; @@ -17,12 +19,15 @@ import java.net.InetAddress; import java.net.InetSocketAddress; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; public class GeoIpHttpFixture { private final HttpServer server; GeoIpHttpFixture(final String[] args) throws Exception { + copyFiles(); String data = new String(GeoIpHttpFixture.class.getResourceAsStream("/data.json").readAllBytes(), StandardCharsets.UTF_8); this.server = HttpServer.create(new InetSocketAddress(InetAddress.getByName(args[0]), Integer.parseInt(args[1])), 0); this.server.createContext("/", exchange -> { @@ -45,6 +50,38 @@ public class GeoIpHttpFixture { db.transferTo(outputStream); } }); + this.server.createContext("/cli", exchange -> { + String fileName = exchange.getRequestURI().getPath().replaceAll(".*/cli/", ""); + Path target = Path.of("target").resolve(fileName); + if (Files.isRegularFile(target)) { + try (OutputStream outputStream = exchange.getResponseBody(); + InputStream db = Files.newInputStream(target)) { + exchange.sendResponseHeaders(200, 0); + db.transferTo(outputStream); + } catch (Exception e) { + exchange.sendResponseHeaders(500, 0); + exchange.getResponseBody().close(); + } + } else { + exchange.sendResponseHeaders(404, 0); + exchange.getResponseBody().close(); + } + }); + } + + private void copyFiles() throws Exception { + Path source = Path.of("source"); + Files.createDirectory(source); + + Path target = Path.of("target"); + Files.createDirectory(target); + + Files.copy(GeoIpHttpFixture.class.getResourceAsStream("/GeoLite2-ASN.tgz"), source.resolve("GeoLite2-ASN.tgz")); + Files.copy(GeoIpHttpFixture.class.getResourceAsStream("/GeoLite2-City.mmdb"), source.resolve("GeoLite2-City.mmdb")); + Files.copy(GeoIpHttpFixture.class.getResourceAsStream("/GeoLite2-Country.mmdb"), source.resolve("GeoLite2-Country.mmdb")); + + new GeoIpCli().main(new String[]{"-s", source.toAbsolutePath().toString(), "-t", target.toAbsolutePath().toString()}, + Terminal.DEFAULT); } final void start() throws Exception { diff --git a/test/fixtures/geoip-fixture/src/main/resources/GeoLite2-City.mmdb b/test/fixtures/geoip-fixture/src/main/resources/GeoLite2-City.mmdb new file mode 100644 index 0000000000000000000000000000000000000000..0809201619b5915fa6189200e4c53e6088f437da GIT binary patch literal 20809 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 Hb-n)&VkY@P literal 0 HcmV?d00001 From 5e4baf287ca12309c34598b89f5c00f1f816e091 Mon Sep 17 00:00:00 2001 From: Przemko Robakowski Date: Thu, 8 Apr 2021 11:40:23 +0200 Subject: [PATCH 2/2] rework tests --- .../ingest/geoip/GeoIpDownloaderCliIT.java | 27 +++++++++++++++++++ .../ingest/geoip/GeoIpDownloaderIT.java | 12 ++------- 2 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderCliIT.java diff --git a/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderCliIT.java b/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderCliIT.java new file mode 100644 index 0000000000000..28db1ef5cb699 --- /dev/null +++ b/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderCliIT.java @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.ingest.geoip; + +import org.elasticsearch.common.settings.Settings; + +public class GeoIpDownloaderCliIT extends GeoIpDownloaderIT { + + @Override + protected Settings nodeSettings(int nodeOrdinal, Settings otherSettings) { + Settings.Builder settings = Settings.builder().put(super.nodeSettings(nodeOrdinal, otherSettings)); + if (ENDPOINT != null) { + settings.put(GeoIpDownloader.ENDPOINT_SETTING.getKey(), ENDPOINT + "cli/overview.json"); + } + return settings.build(); + } + + public void testUseGeoIpProcessorWithDownloadedDBs() { + assumeTrue("this test can't work with CLI (some expected files are missing)", false); + } +} diff --git a/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderIT.java b/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderIT.java index f31256336c0a4..cda786da1e1fc 100644 --- a/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderIT.java +++ b/modules/ingest-geoip/src/internalClusterTest/java/org/elasticsearch/ingest/geoip/GeoIpDownloaderIT.java @@ -31,7 +31,6 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.sort.SortOrder; -import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.junit.annotations.TestLogging; import org.junit.After; @@ -60,10 +59,9 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; -@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST) public class GeoIpDownloaderIT extends AbstractGeoIpIT { - private static final String ENDPOINT = System.getProperty("geoip_endpoint"); + protected static final String ENDPOINT = System.getProperty("geoip_endpoint"); @Override protected Collection> nodePlugins() { @@ -74,8 +72,7 @@ protected Collection> nodePlugins() { protected Settings nodeSettings(int nodeOrdinal, Settings otherSettings) { Settings.Builder settings = Settings.builder().put(super.nodeSettings(nodeOrdinal, otherSettings)); if (ENDPOINT != null) { - String endpoint = getTestName().endsWith("Cli") ? ENDPOINT + "cli/overview.json" : ENDPOINT; - settings.put(GeoIpDownloader.ENDPOINT_SETTING.getKey(), endpoint); + settings.put(GeoIpDownloader.ENDPOINT_SETTING.getKey(), ENDPOINT); } return settings.build(); } @@ -89,11 +86,6 @@ public void disableDownloader() { assertTrue(settingsResponse.isAcknowledged()); } - public void testGeoIpDatabasesDownloadCli() throws Exception { - assumeTrue("cli endpoint only available through fixture", ENDPOINT != null); - testGeoIpDatabasesDownload(); - } - public void testGeoIpDatabasesDownload() throws Exception { ClusterUpdateSettingsResponse settingsResponse = client().admin().cluster() .prepareUpdateSettings()