2121import org .elasticsearch .test .rest .yaml .ClientYamlTestCandidate ;
2222import org .elasticsearch .test .rest .yaml .ESClientYamlSuiteTestCase ;
2323import org .junit .Before ;
24+ import org .junit .BeforeClass ;
2425import org .junit .ClassRule ;
2526import org .junit .rules .RuleChain ;
27+ import org .junit .rules .TemporaryFolder ;
2628import org .junit .rules .TestRule ;
2729
30+ import java .nio .file .Files ;
31+ import java .nio .file .Path ;
32+ import java .util .Objects ;
33+
2834import static org .elasticsearch .ingest .geoip .IngestGeoIpClientYamlTestSuiteIT .assertDatabasesLoaded ;
35+ import static org .elasticsearch .ingest .geoip .IngestGeoIpClientYamlTestSuiteIT .getRootPath ;
2936import static org .elasticsearch .ingest .geoip .IngestGeoIpClientYamlTestSuiteIT .putGeoipPipeline ;
37+ import static org .hamcrest .Matchers .is ;
3038
3139@ FixForMultiProject (description = "Potentially remove this test after https://elasticco.atlassian.net/browse/ES-12094 is implemented" )
3240public class IngestGeoIpClientMultiProjectYamlTestSuiteIT extends MultipleProjectsClientYamlSuiteTestCase {
@@ -35,7 +43,10 @@ public class IngestGeoIpClientMultiProjectYamlTestSuiteIT extends MultipleProjec
3543
3644 private static GeoIpHttpFixture fixture = new GeoIpHttpFixture (useFixture );
3745
46+ public static TemporaryFolder configDir = new TemporaryFolder ();
47+
3848 private static ElasticsearchCluster cluster = ElasticsearchCluster .local ()
49+ .withConfigDir (() -> getRootPath (configDir ))
3950 .module ("reindex" )
4051 .module ("ingest-geoip" )
4152 .systemProperty ("ingest.geoip.downloader.enabled.default" , "true" )
@@ -51,7 +62,7 @@ public class IngestGeoIpClientMultiProjectYamlTestSuiteIT extends MultipleProjec
5162 .build ();
5263
5364 @ ClassRule
54- public static TestRule ruleChain = RuleChain .outerRule (fixture ).around (cluster );
65+ public static TestRule ruleChain = RuleChain .outerRule (fixture ).around (configDir ). around ( cluster );
5566
5667 @ Override
5768 protected String getTestRestCluster () {
@@ -67,6 +78,19 @@ public static Iterable<Object[]> parameters() throws Exception {
6778 return ESClientYamlSuiteTestCase .createParameters ();
6879 }
6980
81+ @ BeforeClass
82+ public static void copyExtraDatabase () throws Exception {
83+ Path configPath = getRootPath (configDir );
84+ assertThat (Files .exists (configPath ), is (true ));
85+ Path ingestGeoipDatabaseDir = configPath .resolve ("ingest-geoip" );
86+ Files .createDirectory (ingestGeoipDatabaseDir );
87+ final var clazz = IngestGeoIpClientYamlTestSuiteIT .class ; // long line prevention
88+ Files .copy (
89+ Objects .requireNonNull (clazz .getResourceAsStream ("/ipinfo/asn_sample.mmdb" )),
90+ ingestGeoipDatabaseDir .resolve ("asn.mmdb" )
91+ );
92+ }
93+
7094 @ Before
7195 public void waitForDatabases () throws Exception {
7296 putGeoipPipeline ("pipeline-with-geoip" );
0 commit comments