|
@@ -6,10 +6,16 @@
|
|
|
package org.elasticsearch.xpack.enrich;
|
|
|
|
|
|
import org.elasticsearch.ElasticsearchParseException;
|
|
|
+import org.elasticsearch.Version;
|
|
|
+import org.elasticsearch.cluster.metadata.AliasMetaData;
|
|
|
+import org.elasticsearch.cluster.metadata.IndexMetaData;
|
|
|
+import org.elasticsearch.cluster.metadata.MetaData;
|
|
|
import org.elasticsearch.common.collect.Tuple;
|
|
|
+import org.elasticsearch.common.settings.Settings;
|
|
|
import org.elasticsearch.test.ESTestCase;
|
|
|
import org.elasticsearch.xpack.core.enrich.EnrichPolicy;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
@@ -27,7 +33,7 @@ public class EnrichProcessorFactoryTests extends ESTestCase {
|
|
|
EnrichPolicy policy = new EnrichPolicy(EnrichPolicy.EXACT_MATCH_TYPE, null, List.of("source_index"), "my_key",
|
|
|
enrichValues);
|
|
|
EnrichProcessorFactory factory = new EnrichProcessorFactory(null);
|
|
|
- factory.policies = Map.of("majestic", policy);
|
|
|
+ factory.metaData = createMetaData("majestic", policy);
|
|
|
|
|
|
Map<String, Object> config = new HashMap<>();
|
|
|
config.put("policy_name", "majestic");
|
|
@@ -66,6 +72,7 @@ public class EnrichProcessorFactoryTests extends ESTestCase {
|
|
|
public void testPolicyDoesNotExist() {
|
|
|
List<String> enrichValues = List.of("globalRank", "tldRank", "tld");
|
|
|
EnrichProcessorFactory factory = new EnrichProcessorFactory(null);
|
|
|
+ factory.metaData = MetaData.builder().build();
|
|
|
|
|
|
Map<String, Object> config = new HashMap<>();
|
|
|
config.put("policy_name", "majestic");
|
|
@@ -88,15 +95,12 @@ public class EnrichProcessorFactoryTests extends ESTestCase {
|
|
|
config.put("set_from", valuesConfig);
|
|
|
|
|
|
Exception e = expectThrows(IllegalArgumentException.class, () -> factory.create(Collections.emptyMap(), "_tag", config));
|
|
|
- assertThat(e.getMessage(), equalTo("policy [majestic] does not exists"));
|
|
|
+ assertThat(e.getMessage(), equalTo("no enrich index exists for policy with name [majestic]"));
|
|
|
}
|
|
|
|
|
|
public void testPolicyNameMissing() {
|
|
|
List<String> enrichValues = List.of("globalRank", "tldRank", "tld");
|
|
|
- EnrichPolicy policy = new EnrichPolicy(EnrichPolicy.EXACT_MATCH_TYPE, null, List.of("source_index"), "my_key",
|
|
|
- enrichValues);
|
|
|
EnrichProcessorFactory factory = new EnrichProcessorFactory(null);
|
|
|
- factory.policies = Map.of("_name", policy);
|
|
|
|
|
|
Map<String, Object> config = new HashMap<>();
|
|
|
config.put("enrich_key", "host");
|
|
@@ -121,11 +125,11 @@ public class EnrichProcessorFactoryTests extends ESTestCase {
|
|
|
assertThat(e.getMessage(), equalTo("[policy_name] required property is missing"));
|
|
|
}
|
|
|
|
|
|
- public void testUnsupportedPolicy() {
|
|
|
+ public void testUnsupportedPolicy() throws Exception {
|
|
|
List<String> enrichValues = List.of("globalRank", "tldRank", "tld");
|
|
|
EnrichPolicy policy = new EnrichPolicy("unsupported", null, List.of("source_index"), "my_key", enrichValues);
|
|
|
EnrichProcessorFactory factory = new EnrichProcessorFactory(null);
|
|
|
- factory.policies = Map.of("majestic", policy);
|
|
|
+ factory.metaData = createMetaData("majestic", policy);
|
|
|
|
|
|
Map<String, Object> config = new HashMap<>();
|
|
|
config.put("policy_name", "majestic");
|
|
@@ -145,7 +149,7 @@ public class EnrichProcessorFactoryTests extends ESTestCase {
|
|
|
EnrichPolicy policy = new EnrichPolicy(EnrichPolicy.EXACT_MATCH_TYPE, null, List.of("source_index"), "host",
|
|
|
enrichValues);
|
|
|
EnrichProcessorFactory factory = new EnrichProcessorFactory(null);
|
|
|
- factory.policies = Map.of("majestic", policy);
|
|
|
+ factory.metaData = createMetaData("majestic", policy);
|
|
|
|
|
|
Map<String, Object> config = new HashMap<>();
|
|
|
config.put("policy_name", "majestic");
|
|
@@ -164,7 +168,7 @@ public class EnrichProcessorFactoryTests extends ESTestCase {
|
|
|
EnrichPolicy policy = new EnrichPolicy(EnrichPolicy.EXACT_MATCH_TYPE, null, List.of("source_index"), "host",
|
|
|
enrichValues);
|
|
|
EnrichProcessorFactory factory = new EnrichProcessorFactory(null);
|
|
|
- factory.policies = Map.of("majestic", policy);
|
|
|
+ factory.metaData = createMetaData("majestic", policy);
|
|
|
|
|
|
Map<String, Object> config1 = new HashMap<>();
|
|
|
config1.put("policy_name", "majestic");
|
|
@@ -174,4 +178,18 @@ public class EnrichProcessorFactoryTests extends ESTestCase {
|
|
|
assertThat(e.getMessage(), equalTo("[target_field] required property is missing"));
|
|
|
}
|
|
|
|
|
|
+ static MetaData createMetaData(String name, EnrichPolicy policy) throws IOException {
|
|
|
+ Settings settings = Settings.builder()
|
|
|
+ .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT)
|
|
|
+ .put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, 1)
|
|
|
+ .put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 0)
|
|
|
+ .build();
|
|
|
+ IndexMetaData.Builder builder = IndexMetaData.builder(EnrichPolicy.getBaseName(name) + "-1");
|
|
|
+ builder.settings(settings);
|
|
|
+ builder.putMapping("_doc", "{\"_meta\": {\"enrich_match_field\": \"" + policy.getMatchField() +
|
|
|
+ "\", \"enrich_policy_type\": \"" + policy.getType() + "\"}}");
|
|
|
+ builder.putAlias(AliasMetaData.builder(EnrichPolicy.getBaseName(name)).build());
|
|
|
+ return MetaData.builder().put(builder).build();
|
|
|
+ }
|
|
|
+
|
|
|
}
|