diff --git a/src/main/java/co/elastic/logstash/filters/elasticintegration/EventProcessorBuilder.java b/src/main/java/co/elastic/logstash/filters/elasticintegration/EventProcessorBuilder.java index 7f1548dd..0a3f925d 100644 --- a/src/main/java/co/elastic/logstash/filters/elasticintegration/EventProcessorBuilder.java +++ b/src/main/java/co/elastic/logstash/filters/elasticintegration/EventProcessorBuilder.java @@ -17,6 +17,7 @@ import co.elastic.logstash.filters.elasticintegration.resolver.ResolverCache; import co.elastic.logstash.filters.elasticintegration.util.Exceptions; import co.elastic.logstash.filters.elasticintegration.util.PluginContext; +import co.elastic.logstash.filters.elasticintegration.util.PluginProjectResolver; import com.google.common.util.concurrent.Service; import com.google.common.util.concurrent.ServiceManager; import org.elasticsearch.client.RestClient; @@ -33,7 +34,6 @@ import org.elasticsearch.painless.PainlessPlugin; import org.elasticsearch.painless.PainlessScriptEngine; import org.elasticsearch.painless.spi.PainlessExtension; -import org.elasticsearch.painless.spi.Whitelist; import org.elasticsearch.plugins.ExtensiblePlugin; import org.elasticsearch.plugins.IngestPlugin; import org.elasticsearch.script.IngestConditionalScript; @@ -318,7 +318,13 @@ private static ScriptService initScriptService(final Settings settings, final Th Map engines = new HashMap<>(); engines.put(PainlessScriptEngine.NAME, getPainlessScriptEngine(settings)); engines.put(MustacheScriptEngine.NAME, new MustacheScriptEngine(settings)); - return new ScriptService(settings, engines, ScriptModule.CORE_CONTEXTS, threadPool::absoluteTimeInMillis); + + return new ScriptService( + settings, + engines, + ScriptModule.CORE_CONTEXTS, + threadPool::absoluteTimeInMillis, + new PluginProjectResolver()); } /** diff --git a/src/main/java/co/elastic/logstash/filters/elasticintegration/util/PluginProjectResolver.java b/src/main/java/co/elastic/logstash/filters/elasticintegration/util/PluginProjectResolver.java new file mode 100644 index 00000000..352ba66d --- /dev/null +++ b/src/main/java/co/elastic/logstash/filters/elasticintegration/util/PluginProjectResolver.java @@ -0,0 +1,21 @@ +package co.elastic.logstash.filters.elasticintegration.util; + +import org.elasticsearch.cluster.metadata.ProjectId; +import org.elasticsearch.cluster.project.ProjectResolver; +import org.elasticsearch.core.CheckedRunnable; + +public class PluginProjectResolver implements ProjectResolver { + @Override + public ProjectId getProjectId() { + return null; + } + + @Override + public void executeOnProject(ProjectId projectId, CheckedRunnable checkedRunnable) throws E { + if (projectId.equals(ProjectId.DEFAULT)) { + checkedRunnable.run(); + } else { + throw new IllegalArgumentException("Cannot execute on a project other than [" + ProjectId.DEFAULT + "]"); + } + } +}