|
|
@@ -9,7 +9,8 @@ package org.elasticsearch.xpack.watcher.transport.actions;
|
|
|
|
|
|
import org.elasticsearch.action.ActionListener;
|
|
|
import org.elasticsearch.action.support.ActionFilters;
|
|
|
-import org.elasticsearch.action.support.master.TransportMasterNodeAction;
|
|
|
+import org.elasticsearch.action.support.ChannelActionListener;
|
|
|
+import org.elasticsearch.action.support.local.TransportLocalClusterStateAction;
|
|
|
import org.elasticsearch.cluster.ClusterState;
|
|
|
import org.elasticsearch.cluster.block.ClusterBlockException;
|
|
|
import org.elasticsearch.cluster.block.ClusterBlockLevel;
|
|
|
@@ -18,9 +19,10 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
|
|
|
import org.elasticsearch.cluster.service.ClusterService;
|
|
|
import org.elasticsearch.common.settings.Settings;
|
|
|
import org.elasticsearch.common.util.concurrent.EsExecutors;
|
|
|
+import org.elasticsearch.core.UpdateForV10;
|
|
|
import org.elasticsearch.injection.guice.Inject;
|
|
|
+import org.elasticsearch.tasks.CancellableTask;
|
|
|
import org.elasticsearch.tasks.Task;
|
|
|
-import org.elasticsearch.threadpool.ThreadPool;
|
|
|
import org.elasticsearch.transport.TransportService;
|
|
|
import org.elasticsearch.xpack.core.watcher.transport.actions.put.GetWatcherSettingsAction;
|
|
|
|
|
|
@@ -30,40 +32,52 @@ import static org.elasticsearch.xpack.core.watcher.transport.actions.put.UpdateW
|
|
|
import static org.elasticsearch.xpack.watcher.transport.actions.TransportUpdateWatcherSettingsAction.WATCHER_INDEX_NAME;
|
|
|
import static org.elasticsearch.xpack.watcher.transport.actions.TransportUpdateWatcherSettingsAction.WATCHER_INDEX_REQUEST;
|
|
|
|
|
|
-public class TransportGetWatcherSettingsAction extends TransportMasterNodeAction<
|
|
|
+public class TransportGetWatcherSettingsAction extends TransportLocalClusterStateAction<
|
|
|
GetWatcherSettingsAction.Request,
|
|
|
GetWatcherSettingsAction.Response> {
|
|
|
|
|
|
private final IndexNameExpressionResolver indexNameExpressionResolver;
|
|
|
|
|
|
+ /**
|
|
|
+ * NB prior to 9.0 this was a TransportMasterNodeReadAction so for BwC it must be registered with the TransportService until
|
|
|
+ * we no longer need to support calling this action remotely.
|
|
|
+ */
|
|
|
+ @UpdateForV10(owner = UpdateForV10.Owner.DATA_MANAGEMENT)
|
|
|
+ @SuppressWarnings("this-escape")
|
|
|
@Inject
|
|
|
public TransportGetWatcherSettingsAction(
|
|
|
TransportService transportService,
|
|
|
ClusterService clusterService,
|
|
|
- ThreadPool threadPool,
|
|
|
ActionFilters actionFilters,
|
|
|
IndexNameExpressionResolver indexNameExpressionResolver
|
|
|
) {
|
|
|
super(
|
|
|
GetWatcherSettingsAction.NAME,
|
|
|
- transportService,
|
|
|
- clusterService,
|
|
|
- threadPool,
|
|
|
actionFilters,
|
|
|
- GetWatcherSettingsAction.Request::readFrom,
|
|
|
- GetWatcherSettingsAction.Response::new,
|
|
|
+ transportService.getTaskManager(),
|
|
|
+ clusterService,
|
|
|
EsExecutors.DIRECT_EXECUTOR_SERVICE
|
|
|
);
|
|
|
this.indexNameExpressionResolver = indexNameExpressionResolver;
|
|
|
+
|
|
|
+ transportService.registerRequestHandler(
|
|
|
+ actionName,
|
|
|
+ executor,
|
|
|
+ false,
|
|
|
+ true,
|
|
|
+ GetWatcherSettingsAction.Request::readFrom,
|
|
|
+ (request, channel, task) -> executeDirect(task, request, new ChannelActionListener<>(channel))
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- protected void masterOperation(
|
|
|
+ protected void localClusterStateOperation(
|
|
|
Task task,
|
|
|
GetWatcherSettingsAction.Request request,
|
|
|
ClusterState state,
|
|
|
ActionListener<GetWatcherSettingsAction.Response> listener
|
|
|
) {
|
|
|
+ ((CancellableTask) task).ensureNotCancelled();
|
|
|
IndexMetadata metadata = state.metadata().index(WATCHER_INDEX_NAME);
|
|
|
if (metadata == null) {
|
|
|
listener.onResponse(new GetWatcherSettingsAction.Response(Settings.EMPTY));
|