Convert native script uses to mock scripts (elastic/x-pack-elasticsearch#1465)
This is the xpack side of elastic/elasticsearch#24726 Original commit: elastic/x-pack-elasticsearch@0428fe1d16
This commit is contained in:
parent
f7705eac86
commit
4c3e82604d
|
@ -45,7 +45,10 @@ public class LatchScriptEngine implements ScriptEngine {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ExecutableScript executable(CompiledScript compiledScript, @Nullable Map<String, Object> vars) {
|
public ExecutableScript executable(CompiledScript compiledScript, @Nullable Map<String, Object> vars) {
|
||||||
return new AbstractSearchScript() {
|
return new ExecutableScript() {
|
||||||
|
@Override
|
||||||
|
public void setNextVar(String name, Object value) {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object run() {
|
public Object run() {
|
||||||
scriptStartedLatch.countDown();
|
scriptStartedLatch.countDown();
|
||||||
|
|
|
@ -13,10 +13,7 @@ import org.elasticsearch.common.unit.TimeValue;
|
||||||
import org.elasticsearch.index.query.QueryBuilders;
|
import org.elasticsearch.index.query.QueryBuilders;
|
||||||
import org.elasticsearch.index.query.ScriptQueryBuilder;
|
import org.elasticsearch.index.query.ScriptQueryBuilder;
|
||||||
import org.elasticsearch.plugins.Plugin;
|
import org.elasticsearch.plugins.Plugin;
|
||||||
import org.elasticsearch.plugins.ScriptPlugin;
|
import org.elasticsearch.script.MockScriptPlugin;
|
||||||
import org.elasticsearch.script.AbstractSearchScript;
|
|
||||||
import org.elasticsearch.script.ExecutableScript;
|
|
||||||
import org.elasticsearch.script.NativeScriptFactory;
|
|
||||||
import org.elasticsearch.script.Script;
|
import org.elasticsearch.script.Script;
|
||||||
import org.elasticsearch.script.ScriptType;
|
import org.elasticsearch.script.ScriptType;
|
||||||
import org.elasticsearch.xpack.XPackPlugin;
|
import org.elasticsearch.xpack.XPackPlugin;
|
||||||
|
@ -32,8 +29,8 @@ import org.elasticsearch.xpack.graph.action.VertexRequest;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_REPLICAS;
|
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_REPLICAS;
|
||||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_SHARDS;
|
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_SHARDS;
|
||||||
|
@ -212,8 +209,8 @@ public class GraphTests extends XPackSingleNodeTestCase {
|
||||||
//00s friends of beatles
|
//00s friends of beatles
|
||||||
grb.createNextHop(QueryBuilders.termQuery("decade", "00s")).addVertexRequest("people").size(100).minDocCount(1);
|
grb.createNextHop(QueryBuilders.termQuery("decade", "00s")).addVertexRequest("people").size(100).minDocCount(1);
|
||||||
// A query that should cause a timeout
|
// A query that should cause a timeout
|
||||||
ScriptQueryBuilder timeoutQuery = QueryBuilders.scriptQuery(new Script(ScriptType.INLINE, "native",
|
ScriptQueryBuilder timeoutQuery = QueryBuilders.scriptQuery(new Script(ScriptType.INLINE, "mockscript",
|
||||||
NativeTestScriptedTimeout.TEST_NATIVE_SCRIPT_TIMEOUT, Collections.emptyMap()));
|
"graph_timeout", Collections.emptyMap()));
|
||||||
grb.createNextHop(timeoutQuery).addVertexRequest("people").size(100).minDocCount(1);
|
grb.createNextHop(timeoutQuery).addVertexRequest("people").size(100).minDocCount(1);
|
||||||
|
|
||||||
GraphExploreResponse response = grb.get();
|
GraphExploreResponse response = grb.get();
|
||||||
|
@ -345,44 +342,17 @@ public class GraphTests extends XPackSingleNodeTestCase {
|
||||||
assertThat(why, strongVertex.getWeight(), greaterThan(weakVertex.getWeight()));
|
assertThat(why, strongVertex.getWeight(), greaterThan(weakVertex.getWeight()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class ScriptedTimeoutPlugin extends Plugin implements ScriptPlugin {
|
public static class ScriptedTimeoutPlugin extends MockScriptPlugin {
|
||||||
@Override
|
@Override
|
||||||
public List<NativeScriptFactory> getNativeScripts() {
|
public Map<String, Function<Map<String, Object>, Object>> pluginScripts() {
|
||||||
return Collections.singletonList(new NativeTestScriptedTimeout.Factory());
|
return Collections.singletonMap("graph_timeout", params -> {
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class NativeTestScriptedTimeout extends AbstractSearchScript {
|
|
||||||
|
|
||||||
public static final String TEST_NATIVE_SCRIPT_TIMEOUT = "native_test_graph_timeout_script";
|
|
||||||
|
|
||||||
public static class Factory implements NativeScriptFactory {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ExecutableScript newScript(Map<String, Object> params) {
|
|
||||||
return new NativeTestScriptedTimeout();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean needsScores() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return TEST_NATIVE_SCRIPT_TIMEOUT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object run() {
|
|
||||||
try {
|
try {
|
||||||
Thread.sleep(750);
|
Thread.sleep(750);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue