Add allocation deciders in createComponents (#89836)

With this change we are adding the allocation deciders
in create components we can simplify the use in the
Autoscaling plugin and implement reserved state handler
in the future.
This commit is contained in:
Nikola Grcevski 2022-09-07 09:28:07 -04:00 committed by GitHub
parent cd8a7bdea1
commit fc819609a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
57 changed files with 172 additions and 83 deletions

View file

@ -102,6 +102,7 @@ import org.apache.lucene.util.SetOnce;
import org.elasticsearch.Version;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.logging.DeprecationCategory;
@ -164,7 +165,8 @@ public class CommonAnalysisPlugin extends Plugin implements AnalysisPlugin, Scri
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
this.scriptServiceHolder.set(scriptService);
return Collections.emptyList();

View file

@ -59,7 +59,7 @@ public class PredicateTokenScriptFilterTests extends ESTokenStreamTestCase {
};
CommonAnalysisPlugin plugin = new CommonAnalysisPlugin();
plugin.createComponents(null, null, null, null, scriptService, null, null, null, null, null, null, Tracer.NOOP);
plugin.createComponents(null, null, null, null, scriptService, null, null, null, null, null, null, Tracer.NOOP, null);
AnalysisModule module = new AnalysisModule(TestEnvironment.newEnvironment(settings), Collections.singletonList(plugin));
IndexAnalyzers analyzers = module.getAnalysisRegistry().build(idxSettings);

View file

@ -59,7 +59,7 @@ public class ScriptedConditionTokenFilterTests extends ESTokenStreamTestCase {
};
CommonAnalysisPlugin plugin = new CommonAnalysisPlugin();
plugin.createComponents(null, null, null, null, scriptService, null, null, null, null, null, null, Tracer.NOOP);
plugin.createComponents(null, null, null, null, scriptService, null, null, null, null, null, null, Tracer.NOOP, null);
AnalysisModule module = new AnalysisModule(TestEnvironment.newEnvironment(settings), Collections.singletonList(plugin));
IndexAnalyzers analyzers = module.getAnalysisRegistry().build(idxSettings);

View file

@ -11,6 +11,7 @@ package org.elasticsearch.tracing.apm;
import org.apache.lucene.util.SetOnce;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Setting;
@ -79,7 +80,8 @@ public class APM extends Plugin implements NetworkPlugin, TracerPlugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer unused
Tracer unused,
AllocationDeciders allocationDeciders
) {
final APMTracer apmTracer = tracer.get();

View file

@ -20,6 +20,7 @@ import org.elasticsearch.action.datastreams.PromoteDataStreamAction;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -120,7 +121,8 @@ public class DataStreamsPlugin extends Plugin implements ActionPlugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
if (IndexSettings.isTimeSeriesModeEnabled() == false) {
return List.of();

View file

@ -16,6 +16,7 @@ import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexMetadata;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -114,7 +115,8 @@ public class IngestGeoIpPlugin extends Plugin implements IngestPlugin, SystemInd
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
try {
String nodeId = nodeEnvironment.nodeId();

View file

@ -14,6 +14,7 @@ import org.elasticsearch.action.ActionResponse;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -144,7 +145,8 @@ public final class PainlessPlugin extends Plugin implements ScriptPlugin, Extens
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
// this is a hack to bind the painless script engine in guice (all components are added to guice), so that
// the painless context api. this is a temporary measure until transport actions do no require guice

View file

@ -13,6 +13,7 @@ import org.elasticsearch.action.ActionResponse;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -98,7 +99,8 @@ public class ReindexPlugin extends Plugin implements ActionPlugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return Collections.singletonList(new ReindexSslConfig(environment.settings(), environment, resourceWatcherService));
}

View file

@ -21,6 +21,7 @@ import org.elasticsearch.action.support.ActionFilterChain;
import org.elasticsearch.action.support.WriteRequest.RefreshPolicy;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.bytes.BytesArray;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -168,7 +169,8 @@ public class ReindexFromRemoteWithAuthTests extends ESSingleNodeTestCase {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
testFilter.set(new ReindexFromRemoteWithAuthTests.TestFilter(threadPool));
return Collections.emptyList();

View file

@ -13,6 +13,7 @@ import com.azure.core.util.serializer.JacksonAdapter;
import org.apache.lucene.util.SetOnce;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Setting;
@ -95,7 +96,8 @@ public class AzureRepositoryPlugin extends Plugin implements RepositoryPlugin, R
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
AzureClientProvider azureClientProvider = AzureClientProvider.create(threadPool, settings);
azureStoreService.set(createAzureStorageService(settings, azureClientProvider));

View file

@ -73,7 +73,7 @@ public class AzureStorageServiceTests extends ESTestCase {
private AzureRepositoryPlugin pluginWithSettingsValidation(Settings settings) {
final AzureRepositoryPlugin plugin = new AzureRepositoryPlugin(settings);
new SettingsModule(settings, plugin.getSettings(), Collections.emptyList(), Collections.emptySet());
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP);
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null);
return plugin;
}

View file

@ -15,6 +15,7 @@ import org.elasticsearch.SpecialPermission;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.RepositoryMetadata;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Setting;
@ -100,7 +101,8 @@ public class S3RepositoryPlugin extends Plugin implements RepositoryPlugin, Relo
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
service.set(s3Service(environment));
this.service.get().refreshAndClearCache(S3ClientSettings.load(settings));

View file

@ -11,6 +11,7 @@ package org.elasticsearch.plugin.repository.url;
import org.apache.lucene.util.SetOnce;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.blobstore.url.http.URLHttpClient;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -86,7 +87,8 @@ public class URLRepositoryPlugin extends Plugin implements RepositoryPlugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
final URLHttpClient.Factory apacheURLHttpClientFactory = new URLHttpClient.Factory();

View file

@ -10,6 +10,7 @@ package org.elasticsearch.runtimefields;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Setting;
@ -74,7 +75,8 @@ public final class RuntimeFieldsCommonPlugin extends Plugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
grokHelper.finishInitializing(threadPool);
return List.of();

View file

@ -14,6 +14,7 @@ import org.apache.lucene.util.SetOnce;
import org.elasticsearch.Build;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.core.TimeValue;
@ -89,7 +90,8 @@ public class SystemdPlugin extends Plugin implements ClusterPlugin {
final NamedWriteableRegistry namedWriteableRegistry,
final IndexNameExpressionResolver expressionResolver,
final Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
if (enabled == false) {
extender.set(null);

View file

@ -53,28 +53,28 @@ public class SystemdPluginTests extends ESTestCase {
public void testIsEnabled() {
final SystemdPlugin plugin = new SystemdPlugin(false, randomPackageBuildType, Boolean.TRUE.toString());
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP);
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null);
assertTrue(plugin.isEnabled());
assertNotNull(plugin.extender());
}
public void testIsNotPackageDistribution() {
final SystemdPlugin plugin = new SystemdPlugin(false, randomNonPackageBuildType, Boolean.TRUE.toString());
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP);
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null);
assertFalse(plugin.isEnabled());
assertNull(plugin.extender());
}
public void testIsImplicitlyNotEnabled() {
final SystemdPlugin plugin = new SystemdPlugin(false, randomPackageBuildType, null);
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP);
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null);
assertFalse(plugin.isEnabled());
assertNull(plugin.extender());
}
public void testIsExplicitlyNotEnabled() {
final SystemdPlugin plugin = new SystemdPlugin(false, randomPackageBuildType, Boolean.FALSE.toString());
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP);
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null);
assertFalse(plugin.isEnabled());
assertNull(plugin.extender());
}
@ -162,7 +162,7 @@ public class SystemdPluginTests extends ESTestCase {
}
};
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP);
plugin.createComponents(null, null, threadPool, null, null, null, null, null, null, null, null, Tracer.NOOP, null);
if (Boolean.TRUE.toString().equals(esSDNotify)) {
assertNotNull(plugin.extender());
} else {

View file

@ -14,6 +14,7 @@ import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.bytes.BytesArray;
import org.elasticsearch.common.bytes.BytesReference;
@ -97,7 +98,8 @@ public class AsyncIngestProcessorIT extends ESSingleNodeTestCase {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
this.threadPool = threadPool;
return List.of();

View file

@ -19,6 +19,7 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.MappingMetadata;
import org.elasticsearch.cluster.metadata.Metadata;
import org.elasticsearch.cluster.routing.RoutingTable;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.Priority;
import org.elasticsearch.common.Strings;
@ -441,7 +442,8 @@ public class SimpleClusterStateIT extends ESIntegTestCase {
final NamedWriteableRegistry namedWriteableRegistry,
final IndexNameExpressionResolver expressionResolver,
final Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
clusterService.addListener(event -> {
final ClusterState state = event.state();

View file

@ -11,6 +11,7 @@ package org.elasticsearch.cluster.metadata;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Setting;
@ -75,7 +76,8 @@ public class TemplateUpgradeServiceIT extends ESIntegTestCase {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
clusterService.getClusterSettings()
.addSettingsUpdateConsumer(
@ -94,7 +96,8 @@ public class TemplateUpgradeServiceIT extends ESIntegTestCase {
namedWriteableRegistry,
expressionResolver,
repositoriesServiceSupplier,
tracer
tracer,
allocationDeciders
);
}

View file

@ -12,6 +12,7 @@ import org.elasticsearch.ResourceNotFoundException;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.ClusterName;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Setting;
@ -101,7 +102,8 @@ public class GetHealthActionIT extends ESIntegTestCase {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
healthIndicatorServices.add(new IlmHealthIndicatorService(clusterService));
healthIndicatorServices.add(new SlmHealthIndicatorService(clusterService));

View file

@ -20,6 +20,7 @@ import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.support.WriteRequest;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.bytes.BytesArray;
import org.elasticsearch.common.bytes.BytesReference;
@ -348,7 +349,8 @@ public class FinalPipelineIT extends ESIntegTestCase {
final NamedWriteableRegistry namedWriteableRegistry,
final IndexNameExpressionResolver expressionResolver,
final Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return List.of();
}

View file

@ -9,6 +9,7 @@ package org.elasticsearch.index;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.inject.AbstractModule;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -73,7 +74,8 @@ public class SettingsListenerIT extends ESIntegTestCase {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return Collections.singletonList(service);
}

View file

@ -711,7 +711,8 @@ public class Node implements Closeable {
namedWriteableRegistry,
clusterModule.getIndexNameExpressionResolver(),
repositoriesServiceReference::get,
tracer
tracer,
clusterModule.getAllocationService().getAllocationDeciders()
)
).toList();

View file

@ -12,6 +12,7 @@ import org.elasticsearch.bootstrap.BootstrapCheck;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.IndexTemplateMetadata;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.component.LifecycleComponent;
import org.elasticsearch.common.io.stream.NamedWriteable;
@ -94,7 +95,8 @@ public abstract class Plugin implements Closeable {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return Collections.emptyList();
}

View file

@ -13,6 +13,7 @@ import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.SingleNodeShutdownMetadata;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.breaker.CircuitBreaker;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -270,7 +271,8 @@ public class PluginIntrospectorTests extends ESTestCase {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return null;
}

View file

@ -10,6 +10,7 @@ package org.elasticsearch.test;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.ShardRouting;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Setting;
@ -86,7 +87,8 @@ public final class MockIndexEventListener {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return Collections.singletonList(listener);
}

View file

@ -10,6 +10,7 @@ import org.elasticsearch.action.ActionRequest;
import org.elasticsearch.action.ActionResponse;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Setting;
@ -182,7 +183,8 @@ public class AnalyticsPlugin extends Plugin implements SearchPlugin, ActionPlugi
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return singletonList(usage);
}

View file

@ -11,6 +11,7 @@ import org.elasticsearch.client.internal.Client;
import org.elasticsearch.client.internal.OriginSettingClient;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Settings;
@ -71,7 +72,8 @@ public class AsyncResultsIndexPlugin extends Plugin implements SystemIndexPlugin
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
List<Object> components = new ArrayList<>();
if (DiscoveryNode.canContainData(environment.settings())) {

View file

@ -7,7 +7,6 @@
package org.elasticsearch.xpack.autoscaling;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.util.CollectionUtils;
@ -42,8 +41,8 @@ public class LocalStateAutoscaling extends LocalStateCompositeXPackPlugin {
}
@Override
public Set<AutoscalingDeciderService> createDeciderServices(AllocationDeciders allocationDeciders) {
Set<AutoscalingDeciderService> deciderServices = new HashSet<>(super.createDeciderServices(allocationDeciders));
public Set<AutoscalingDeciderService> createDeciderServices() {
Set<AutoscalingDeciderService> deciderServices = new HashSet<>(super.createDeciderServices());
deciderServices.add(syncDeciderService);
deciderServices.add(new AutoscalingCountTestDeciderService());
return deciderServices;

View file

@ -115,14 +115,13 @@ public class Autoscaling extends Plugin implements ActionPlugin, ExtensiblePlugi
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
this.clusterServiceHolder.set(clusterService);
return List.of(
new AutoscalingCalculateCapacityService.Holder(this),
autoscalingLicenseChecker,
new AutoscalingNodeInfoService(clusterService, client)
);
this.allocationDeciders.set(allocationDeciders);
var capacityServiceHolder = new AutoscalingCalculateCapacityService.Holder(this);
return List.of(capacityServiceHolder, autoscalingLicenseChecker, new AutoscalingNodeInfoService(clusterService, client));
}
@Override
@ -222,9 +221,7 @@ public class Autoscaling extends Plugin implements ActionPlugin, ExtensiblePlugi
);
}
public Set<AutoscalingDeciderService> createDeciderServices(AllocationDeciders deciders) {
this.allocationDeciders.set(deciders);
public Set<AutoscalingDeciderService> createDeciderServices() {
return autoscalingExtensions.stream().flatMap(p -> p.deciders().stream()).collect(Collectors.toSet());
}
}

View file

@ -16,7 +16,6 @@ import org.elasticsearch.cluster.ClusterInfoService;
import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.block.ClusterBlockException;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.license.LicenseUtils;
@ -58,7 +57,6 @@ public class TransportGetAutoscalingCapacityAction extends TransportMasterNodeAc
final ClusterInfoService clusterInfoService,
final SnapshotsInfoService snapshotsInfoService,
final AutoscalingNodeInfoService nodeInfoService,
final AllocationDeciders allocationDeciders,
final AutoscalingLicenseChecker autoscalingLicenseChecker
) {
super(
@ -74,7 +72,7 @@ public class TransportGetAutoscalingCapacityAction extends TransportMasterNodeAc
);
this.snapshotsInfoService = snapshotsInfoService;
this.nodeInfoService = nodeInfoService;
this.capacityService = capacityServiceHolder.get(allocationDeciders);
this.capacityService = capacityServiceHolder.get();
this.clusterInfoService = clusterInfoService;
this.autoscalingLicenseChecker = Objects.requireNonNull(autoscalingLicenseChecker);
assert this.capacityService != null;

View file

@ -20,7 +20,6 @@ import org.elasticsearch.cluster.block.ClusterBlockException;
import org.elasticsearch.cluster.block.ClusterBlockLevel;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.Metadata;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.core.SuppressForbidden;
@ -53,7 +52,6 @@ public class TransportPutAutoscalingPolicyAction extends AcknowledgedTransportMa
final ThreadPool threadPool,
final ActionFilters actionFilters,
final IndexNameExpressionResolver indexNameExpressionResolver,
final AllocationDeciders allocationDeciders,
final AutoscalingCalculateCapacityService.Holder policyValidatorHolder,
final AutoscalingLicenseChecker autoscalingLicenseChecker
) {
@ -63,7 +61,7 @@ public class TransportPutAutoscalingPolicyAction extends AcknowledgedTransportMa
threadPool,
actionFilters,
indexNameExpressionResolver,
policyValidatorHolder.get(allocationDeciders),
policyValidatorHolder.get(),
autoscalingLicenseChecker
);
}

View file

@ -13,7 +13,6 @@ import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.DiskUsage;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodeRole;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.common.settings.Setting;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.ByteSizeValue;
@ -92,13 +91,12 @@ public class AutoscalingCalculateCapacityService implements PolicyValidator {
this.autoscaling = autoscaling;
}
public AutoscalingCalculateCapacityService get(AllocationDeciders allocationDeciders) {
// defer constructing services until transport action creation time.
public AutoscalingCalculateCapacityService get() {
// defer constructing services until transport action creation time, so that other plugins
// can create their deciders in their createComponents.
AutoscalingCalculateCapacityService autoscalingCalculateCapacityService = servicesSetOnce.get();
if (autoscalingCalculateCapacityService == null) {
autoscalingCalculateCapacityService = new AutoscalingCalculateCapacityService(
autoscaling.createDeciderServices(allocationDeciders)
);
autoscalingCalculateCapacityService = new AutoscalingCalculateCapacityService(autoscaling.createDeciderServices());
servicesSetOnce.set(autoscalingCalculateCapacityService);
}
return autoscalingCalculateCapacityService;

View file

@ -17,6 +17,7 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.Metadata;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDecider;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -185,7 +186,8 @@ public class Ccr extends Plugin implements ActionPlugin, PersistentTaskPlugin, E
final NamedWriteableRegistry namedWriteableRegistry,
final IndexNameExpressionResolver expressionResolver,
final Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
this.client = client;
if (enabled == false) {

View file

@ -21,6 +21,7 @@ import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.DataTier;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDecider;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.logging.DeprecationCategory;
@ -305,7 +306,8 @@ public class XPackPlugin extends XPackClientPlugin
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
List<Object> components = new ArrayList<>();

View file

@ -28,6 +28,7 @@ import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.ExistingShardsAllocator;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDecider;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.CheckedBiConsumer;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -199,7 +200,8 @@ public class LocalStateCompositeXPackPlugin extends XPackPlugin
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
List<Object> components = new ArrayList<>();
components.addAll(
@ -215,7 +217,8 @@ public class LocalStateCompositeXPackPlugin extends XPackPlugin
namedWriteableRegistry,
expressionResolver,
repositoriesServiceSupplier,
tracer
tracer,
allocationDeciders
)
);
@ -234,7 +237,8 @@ public class LocalStateCompositeXPackPlugin extends XPackPlugin
namedWriteableRegistry,
expressionResolver,
repositoriesServiceSupplier,
tracer
tracer,
allocationDeciders
)
)
);

View file

@ -11,6 +11,7 @@ import org.elasticsearch.action.ActionResponse;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.logging.RateLimitingFilter;
@ -98,7 +99,8 @@ public class Deprecation extends Plugin implements ActionPlugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
final DeprecationIndexingTemplateRegistry templateRegistry = new DeprecationIndexingTemplateRegistry(
environment.settings(),

View file

@ -13,6 +13,7 @@ import org.elasticsearch.cluster.NamedDiff;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.Metadata;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -199,7 +200,8 @@ public class EnrichPlugin extends Plugin implements SystemIndexPlugin, IngestPlu
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
EnrichPolicyLocks enrichPolicyLocks = new EnrichPolicyLocks();
EnrichPolicyExecutor enrichPolicyExecutor = new EnrichPolicyExecutor(

View file

@ -12,6 +12,7 @@ import org.elasticsearch.action.ActionResponse;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.breaker.CircuitBreaker;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -81,7 +82,8 @@ public class EqlPlugin extends Plugin implements ActionPlugin, CircuitBreakerPlu
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return createComponents(client, environment.settings(), clusterService);
}

View file

@ -23,6 +23,7 @@ import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.Strings;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -93,7 +94,8 @@ public class Fleet extends Plugin implements SystemIndexPlugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
FleetTemplateRegistry registry = new FleetTemplateRegistry(
environment.settings(),

View file

@ -14,6 +14,7 @@ import org.elasticsearch.action.ActionResponse;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -96,7 +97,8 @@ public class IdentityProviderPlugin extends Plugin implements ActionPlugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
settings = environment.settings();
enabled = ENABLED_SETTING.get(settings);

View file

@ -12,6 +12,7 @@ import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.ClusterStateObserver;
import org.elasticsearch.cluster.metadata.IndexMetadata;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.inject.AbstractModule;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -72,7 +73,8 @@ public class UpdateSettingsStepTests extends ESSingleNodeTestCase {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return List.of(service);
}

View file

@ -15,6 +15,7 @@ import org.elasticsearch.client.internal.OriginSettingClient;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.Metadata;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry.Entry;
@ -210,7 +211,8 @@ public class IndexLifecycle extends Plugin implements ActionPlugin, HealthPlugin
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
final List<Object> components = new ArrayList<>();
ILMHistoryTemplateRegistry ilmTemplateRegistry = new ILMHistoryTemplateRegistry(

View file

@ -29,6 +29,7 @@ import org.elasticsearch.cluster.metadata.SingleNodeShutdownMetadata;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodeRole;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.breaker.CircuitBreaker;
import org.elasticsearch.common.collect.MapBuilder;
@ -825,7 +826,8 @@ public class MachineLearning extends Plugin
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
if (enabled == false) {
// special holder for @link(MachineLearningFeatureSetUsage) which needs access to job manager, empty if ML is disabled

View file

@ -12,6 +12,7 @@ import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.IndexTemplateMetadata;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -128,7 +129,8 @@ public class Monitoring extends Plugin implements ActionPlugin, ReloadablePlugin
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
final ClusterSettings clusterSettings = clusterService.getClusterSettings();
final CleanerService cleanerService = new CleanerService(settings, clusterSettings, threadPool, getLicenseState());

View file

@ -19,6 +19,7 @@ import org.elasticsearch.cluster.metadata.IndexMetadata;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDecider;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.UUIDs;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -97,7 +98,8 @@ public class OldLuceneVersions extends Plugin implements IndexStorePlugin, Clust
final NamedWriteableRegistry registry,
final IndexNameExpressionResolver resolver,
final Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
this.failShardsListener.set(new FailShardsOnInvalidLicenseClusterListener(getLicenseState(), clusterService.getRerouteService()));
if (DiscoveryNode.isMasterNode(environment.settings())) {

View file

@ -12,6 +12,7 @@ import org.elasticsearch.action.ActionResponse;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -114,7 +115,8 @@ public class Rollup extends Plugin implements ActionPlugin, PersistentTaskPlugin
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return emptyList();
}

View file

@ -25,6 +25,7 @@ import org.elasticsearch.cluster.routing.RerouteService;
import org.elasticsearch.cluster.routing.allocation.DataTier;
import org.elasticsearch.cluster.routing.allocation.ExistingShardsAllocator;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDecider;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.Priority;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -329,7 +330,8 @@ public class SearchableSnapshots extends Plugin implements IndexStorePlugin, Eng
final NamedWriteableRegistry registry,
final IndexNameExpressionResolver resolver,
final Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
final List<Object> components = new ArrayList<>();
this.repositoriesServiceSupplier = repositoriesServiceSupplier;

View file

@ -22,6 +22,7 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.IndexTemplateMetadata;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.CheckedBiConsumer;
import org.elasticsearch.common.Strings;
@ -547,7 +548,8 @@ public class Security extends Plugin
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
try {
return createComponents(

View file

@ -21,6 +21,7 @@ import org.elasticsearch.cluster.ClusterStateListener;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.SingleNodeShutdownMetadata;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.io.stream.StreamInput;
@ -144,7 +145,8 @@ public class NodeShutdownTasksIT extends ESIntegTestCase {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
taskExecutor = new TaskExecutor(client, clusterService, threadPool);
return Collections.singletonList(taskExecutor);

View file

@ -12,6 +12,7 @@ import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -51,7 +52,8 @@ public class ShutdownPlugin extends Plugin implements ActionPlugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
NodeSeenService nodeSeenService = new NodeSeenService(clusterService);

View file

@ -11,6 +11,7 @@ import org.elasticsearch.action.ActionResponse;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -97,7 +98,8 @@ public class SqlPlugin extends Plugin implements ActionPlugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
return createComponents(client, environment.settings(), clusterService, namedWriteableRegistry);

View file

@ -8,6 +8,7 @@ package org.elasticsearch.xpack.stack;
import org.elasticsearch.client.internal.Client;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.Setting;
@ -53,7 +54,8 @@ public class StackPlugin extends Plugin implements ActionPlugin {
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
StackTemplateRegistry templateRegistry = new StackTemplateRegistry(settings, clusterService, threadPool, client, xContentRegistry);
templateRegistry.initialize();

View file

@ -24,6 +24,7 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.IndexTemplateMetadata;
import org.elasticsearch.cluster.metadata.Metadata;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.settings.ClusterSettings;
@ -233,7 +234,8 @@ public class Transform extends Plugin implements SystemIndexPlugin, PersistentTa
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
TransformConfigManager configManager = new IndexBasedTransformConfigManager(
clusterService,

View file

@ -20,6 +20,7 @@ import org.elasticsearch.cluster.coordination.PublicationTransportHandler;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodeRole;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
import org.elasticsearch.common.io.stream.StreamInput;
@ -93,7 +94,8 @@ public class VotingOnlyNodePlugin extends Plugin implements DiscoveryPlugin, Net
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
this.threadPool.set(threadPool);
return Collections.emptyList();

View file

@ -24,6 +24,7 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.metadata.IndexTemplateMetadata;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.Strings;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -304,7 +305,8 @@ public class Watcher extends Plugin implements SystemIndexPlugin, ScriptPlugin,
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier,
Tracer tracer
Tracer tracer,
AllocationDeciders allocationDeciders
) {
if (enabled == false) {
return Collections.emptyList();

View file

@ -72,7 +72,10 @@ public class WatcherPluginTests extends ESTestCase {
watcher.onIndexModule(indexModule);
// also no component creation if not enabled
assertThat(watcher.createComponents(null, null, null, null, null, null, null, null, null, null, null, Tracer.NOOP), hasSize(0));
assertThat(
watcher.createComponents(null, null, null, null, null, null, null, null, null, null, null, Tracer.NOOP, null),
hasSize(0)
);
watcher.close();
}