Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
eea5e77
remove v_7
JVerwolf Dec 5, 2024
9fd4f0c
Reformat deprecation comment
JVerwolf Dec 5, 2024
2b57954
Move deprecation annotation to type source
JVerwolf Dec 5, 2024
0fa61bd
Update docs/changelog/118103.yaml
JVerwolf Dec 5, 2024
1e26b2f
Update docs/changelog/118103.yaml
JVerwolf Dec 5, 2024
c44ae1a
Update changelog
JVerwolf Dec 5, 2024
1d9983d
Update docs/changelog/118103.yaml
JVerwolf Dec 5, 2024
c9ec238
Update changelog
JVerwolf Dec 5, 2024
0ad58f3
Merge branch 'main' of github.com:elastic/elasticsearch into enhancem…
JVerwolf Dec 5, 2024
68d9c80
Fix broken test
JVerwolf Dec 6, 2024
e28d697
Merge branch 'main' of github.com:elastic/elasticsearch into enhancem…
JVerwolf Dec 6, 2024
e003c4a
Update 118103.yaml
JVerwolf Dec 9, 2024
217a340
Merge branch 'main' of github.com:elastic/elasticsearch into enhancem…
JVerwolf Dec 9, 2024
2022664
Merge branch 'enhancement/remove-rest-api-v-7-references' of github.c…
JVerwolf Dec 9, 2024
264d168
PR Feedback: keep _type
JVerwolf Dec 10, 2024
8455509
Merge branch 'main' of github.com:elastic/elasticsearch into enhancem…
JVerwolf Dec 10, 2024
b6d46c6
Add null check
JVerwolf Dec 10, 2024
0b8cbcb
PR Feedback: Update predicate
JVerwolf Dec 11, 2024
c5d4838
Merge branch 'main' into enhancement/remove-rest-api-v-7-references
JVerwolf Dec 11, 2024
8573b99
PR Feedback: Update conditional
JVerwolf Dec 11, 2024
779b791
Merge branch 'enhancement/remove-rest-api-v-7-references' of github.c…
JVerwolf Dec 11, 2024
edd7136
Merge branch 'main' into enhancement/remove-rest-api-v-7-references
JVerwolf Dec 11, 2024
bfed199
Update conditional
JVerwolf Dec 11, 2024
2e2b876
Merge branch 'enhancement/remove-rest-api-v-7-references' of github.c…
JVerwolf Dec 11, 2024
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions docs/changelog/118103.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
pr: 118103
summary: "Remove any references to org.elasticsearch.core.RestApiVersion#V_7"
area: Infra/Core
type: breaking
issues: []
breaking:
title: "Remove any references to org.elasticsearch.core.RestApiVersion#V_7"
area: REST API
details: "This PR removes all references to V_7 in the Rest API. V7 features marked for deprecation have been removed."
impact: "This change is breaking for any external plugins/clients that rely on the V_7 enum or deprecated version 7 functionality"
notable: false
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@ public enum RestApiVersion {

V_9(9),

V_8(8),

@UpdateForV9(owner = UpdateForV9.Owner.CORE_INFRA) // remove all references to V_7 then delete this annotation
V_7(7);
V_8(8);

public final byte major;

Expand Down Expand Up @@ -54,23 +51,18 @@ public static Predicate<RestApiVersion> equalTo(RestApiVersion restApiVersion) {
return switch (restApiVersion) {
case V_9 -> r -> r.major == V_9.major;
case V_8 -> r -> r.major == V_8.major;
case V_7 -> r -> r.major == V_7.major;
};
}

public static Predicate<RestApiVersion> onOrAfter(RestApiVersion restApiVersion) {
return switch (restApiVersion) {
case V_9 -> r -> r.major >= V_9.major;
case V_8 -> r -> r.major >= V_8.major;
case V_7 -> r -> r.major >= V_7.major;
};
}

public static RestApiVersion forMajor(int major) {
switch (major) {
case 7 -> {
return V_7;
}
case 8 -> {
return V_8;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ private static List<IngestDocument> parseDocs(Map<String, Object> config, RestAp
String index = ConfigurationUtils.readStringOrIntProperty(null, null, dataMap, Metadata.INDEX.getFieldName(), "_index");
String id = ConfigurationUtils.readStringOrIntProperty(null, null, dataMap, Metadata.ID.getFieldName(), "_id");
String routing = ConfigurationUtils.readOptionalStringOrIntProperty(null, null, dataMap, Metadata.ROUTING.getFieldName());
if (restApiVersion != RestApiVersion.V_8 && dataMap.containsKey(Metadata.TYPE.getFieldName())) {
if (dataMap.containsKey(Metadata.TYPE.getFieldName())) {
deprecationLogger.compatibleCritical(
"simulate_pipeline_with_types",
"[types removal] specifying _type in pipeline simulation requests is deprecated"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ static ChunkedToXContentBuilder builder(ToXContent.Params params) {
*/
default Iterator<? extends ToXContent> toXContentChunked(RestApiVersion restApiVersion, ToXContent.Params params) {
return switch (restApiVersion) {
case V_7 -> throw new AssertionError("v7 API not supported");
case V_8 -> toXContentChunkedV8(params);
case V_9 -> toXContentChunked(params);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import org.elasticsearch.common.util.CollectionUtils;
import org.elasticsearch.common.util.Maps;
import org.elasticsearch.common.util.set.Sets;
import org.elasticsearch.core.UpdateForV10;
import org.elasticsearch.index.VersionType;
import org.elasticsearch.index.mapper.IdFieldMapper;
import org.elasticsearch.index.mapper.IndexFieldMapper;
Expand Down Expand Up @@ -957,6 +958,8 @@ void resetTerminate() {
terminate = false;
}

// Unconditionally deprecate the _type field once V7 BWC support is removed
@UpdateForV10(owner = UpdateForV10.Owner.DATA_MANAGEMENT)
public enum Metadata {
INDEX(IndexFieldMapper.NAME),
TYPE("_type"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class BulkRequestParserTests extends ESTestCase {

@UpdateForV10(owner = UpdateForV10.Owner.DATA_MANAGEMENT) // Replace with just RestApiVersion.values() when V8 no longer exists
public static final List<RestApiVersion> REST_API_VERSIONS_POST_V8 = Stream.of(RestApiVersion.values())
.filter(v -> v.compareTo(RestApiVersion.V_8) > 0)
.filter(v -> v.matches(RestApiVersion.onOrAfter(RestApiVersion.V_9)))
.toList();

public void testParserCannotBeReusedAfterFailure() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ public void testIngestPipelineWithDocumentsWithType() throws Exception {
requestContent,
false,
ingestService,
RestApiVersion.V_7
RestApiVersion.V_8
);
assertThat(actualRequest.verbose(), equalTo(false));
assertThat(actualRequest.documents().size(), equalTo(numDocs));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.xcontent.LoggingDeprecationHandler;
import org.elasticsearch.common.xcontent.XContentHelper;
import org.elasticsearch.core.RestApiVersion;
import org.elasticsearch.core.UpdateForV9;
import org.elasticsearch.features.NodeFeature;
import org.elasticsearch.xcontent.ToXContentObject;
Expand Down Expand Up @@ -142,7 +141,7 @@ static boolean isEnterprise(String typeName) {
*/
public static final String LICENSE_VERSION_MODE = "license_version";
/**
* Set for {@link RestApiVersion#V_7} requests only
* Set for RestApiVersion#V_7 requests only
* XContent param name to map the "enterprise" license type to "platinum"
* for backwards compatibility with older clients
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@

public final class MachineLearningField {

public static final String DEPRECATED_ALLOW_NO_JOBS_PARAM = "allow_no_jobs";
public static final String DEPRECATED_ALLOW_NO_DATAFEEDS_PARAM = "allow_no_datafeeds";

public static final Setting<Boolean> AUTODETECT_PROCESS = Setting.boolSetting(
"xpack.ml.autodetect_process",
true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.io.stream.Writeable;
import org.elasticsearch.core.RestApiVersion;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.core.UpdateForV9;
import org.elasticsearch.tasks.Task;
import org.elasticsearch.xcontent.ObjectParser;
import org.elasticsearch.xcontent.ParseField;
Expand All @@ -27,10 +25,6 @@
import java.io.IOException;
import java.util.Objects;

import static org.elasticsearch.core.RestApiVersion.equalTo;
import static org.elasticsearch.core.RestApiVersion.onOrAfter;
import static org.elasticsearch.xpack.core.ml.MachineLearningField.DEPRECATED_ALLOW_NO_JOBS_PARAM;

public class CloseJobAction extends ActionType<CloseJobAction.Response> {

public static final CloseJobAction INSTANCE = new CloseJobAction();
Expand All @@ -45,11 +39,7 @@ public static class Request extends BaseTasksRequest<Request> implements ToXCont
public static final ParseField TIMEOUT = new ParseField("timeout");
public static final ParseField FORCE = new ParseField("force");

@UpdateForV9(owner = UpdateForV9.Owner.MACHINE_LEARNING) // v7 REST API no longer exists: eliminate forRestApiVersion
public static final ParseField ALLOW_NO_MATCH = new ParseField("allow_no_match").forRestApiVersion(onOrAfter(RestApiVersion.V_8));
@UpdateForV9(owner = UpdateForV9.Owner.MACHINE_LEARNING) // v7 REST API no longer exists: eliminate ref to RestApiVersion.V_7
public static final ParseField ALLOW_NO_MATCH_V7 = new ParseField("allow_no_match", DEPRECATED_ALLOW_NO_JOBS_PARAM)
.forRestApiVersion(equalTo(RestApiVersion.V_7));
public static final ParseField ALLOW_NO_MATCH = new ParseField("allow_no_match");
public static final ObjectParser<Request, Void> PARSER = new ObjectParser<>(NAME, Request::new);

static {
Expand All @@ -60,7 +50,6 @@ public static class Request extends BaseTasksRequest<Request> implements ToXCont
);
PARSER.declareBoolean(Request::setForce, FORCE);
PARSER.declareBoolean(Request::setAllowNoMatch, ALLOW_NO_MATCH);
PARSER.declareBoolean(Request::setAllowNoMatch, ALLOW_NO_MATCH_V7);
}

public static Request parseRequest(String jobId, XContentParser parser) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.io.stream.Writeable;
import org.elasticsearch.core.Nullable;
import org.elasticsearch.core.UpdateForV9;
import org.elasticsearch.persistent.PersistentTasksCustomMetadata;
import org.elasticsearch.tasks.CancellableTask;
import org.elasticsearch.tasks.Task;
Expand Down Expand Up @@ -62,6 +63,7 @@ private GetDatafeedsStatsAction() {
// serialized to older nodes where the transport action was a MasterNodeReadAction.
// TODO: Make this a simple request in a future version where there is no possibility
// of this request being serialized to another node.
@UpdateForV9(owner = UpdateForV9.Owner.MACHINE_LEARNING)
Copy link
Contributor Author

@JVerwolf JVerwolf Dec 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ML Folks: As per the comment above, can this now be updated for V9? If so I'll leave the annotation.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 thanks for creating the annotation

public static class Request extends MasterNodeReadRequest<Request> {

public static final String ALLOW_NO_MATCH = "allow_no_match";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.time.DateMathParser;
import org.elasticsearch.core.RestApiVersion;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.core.UpdateForV9;
import org.elasticsearch.index.mapper.DateFieldMapper;
import org.elasticsearch.xcontent.ObjectParser;
import org.elasticsearch.xcontent.ParseField;
Expand All @@ -33,10 +31,6 @@
import java.util.Objects;
import java.util.function.LongSupplier;

import static org.elasticsearch.core.RestApiVersion.equalTo;
import static org.elasticsearch.core.RestApiVersion.onOrAfter;
import static org.elasticsearch.xpack.core.ml.MachineLearningField.DEPRECATED_ALLOW_NO_JOBS_PARAM;

/**
* <p>
* This action returns summarized bucket results over multiple jobs.
Expand Down Expand Up @@ -68,11 +62,7 @@ public static class Request extends ActionRequest implements ToXContentObject {
public static final ParseField EXCLUDE_INTERIM = new ParseField("exclude_interim");
public static final ParseField START = new ParseField("start");
public static final ParseField END = new ParseField("end");
@UpdateForV9(owner = UpdateForV9.Owner.MACHINE_LEARNING) // v7 REST API no longer exists: eliminate forRestApiVersion
public static final ParseField ALLOW_NO_MATCH = new ParseField("allow_no_match").forRestApiVersion(onOrAfter(RestApiVersion.V_8));
@UpdateForV9(owner = UpdateForV9.Owner.MACHINE_LEARNING) // v7 REST API no longer exists: eliminate ref to RestApiVersion.V_7
public static final ParseField ALLOW_NO_MATCH_V7 = new ParseField("allow_no_match", DEPRECATED_ALLOW_NO_JOBS_PARAM)
.forRestApiVersion(equalTo(RestApiVersion.V_7));
public static final ParseField ALLOW_NO_MATCH = new ParseField("allow_no_match");

private static final ObjectParser<Request, Void> PARSER = new ObjectParser<>(NAME, Request::new);

Expand All @@ -88,7 +78,6 @@ public static class Request extends ActionRequest implements ToXContentObject {
);
PARSER.declareString((request, endTime) -> request.setEnd(parseDateOrThrow(endTime, END, System::currentTimeMillis)), END);
PARSER.declareBoolean(Request::setAllowNoMatch, ALLOW_NO_MATCH);
PARSER.declareBoolean(Request::setAllowNoMatch, ALLOW_NO_MATCH_V7);
}

static long parseDateOrThrow(String date, ParseField paramName, LongSupplier now) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.io.stream.Writeable;
import org.elasticsearch.core.RestApiVersion;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.core.UpdateForV9;
import org.elasticsearch.tasks.Task;
import org.elasticsearch.xcontent.ObjectParser;
import org.elasticsearch.xcontent.ParseField;
Expand All @@ -29,10 +27,6 @@
import java.io.IOException;
import java.util.Objects;

import static org.elasticsearch.core.RestApiVersion.equalTo;
import static org.elasticsearch.core.RestApiVersion.onOrAfter;
import static org.elasticsearch.xpack.core.ml.MachineLearningField.DEPRECATED_ALLOW_NO_DATAFEEDS_PARAM;

public class StopDatafeedAction extends ActionType<StopDatafeedAction.Response> {

public static final StopDatafeedAction INSTANCE = new StopDatafeedAction();
Expand All @@ -47,11 +41,7 @@ public static class Request extends BaseTasksRequest<Request> implements ToXCont

public static final ParseField TIMEOUT = new ParseField("timeout");
public static final ParseField FORCE = new ParseField("force");
@UpdateForV9(owner = UpdateForV9.Owner.MACHINE_LEARNING) // v7 REST API no longer exists: eliminate forRestApiVersion
public static final ParseField ALLOW_NO_MATCH = new ParseField("allow_no_match").forRestApiVersion(onOrAfter(RestApiVersion.V_8));
@UpdateForV9(owner = UpdateForV9.Owner.MACHINE_LEARNING) // v7 REST API no longer exists: eliminate ref to RestApiVersion.V_7
public static final ParseField ALLOW_NO_MATCH_V7 = new ParseField("allow_no_match", DEPRECATED_ALLOW_NO_DATAFEEDS_PARAM)
.forRestApiVersion(equalTo(RestApiVersion.V_7));
public static final ParseField ALLOW_NO_MATCH = new ParseField("allow_no_match");

public static final ObjectParser<Request, Void> PARSER = new ObjectParser<>(NAME, Request::new);
static {
Expand All @@ -62,7 +52,6 @@ public static class Request extends BaseTasksRequest<Request> implements ToXCont
);
PARSER.declareBoolean(Request::setForce, FORCE);
PARSER.declareBoolean(Request::setAllowNoMatch, ALLOW_NO_MATCH);
PARSER.declareBoolean(Request::setAllowNoMatch, ALLOW_NO_MATCH_V7);
}

public static Request parseRequest(String datafeedId, XContentParser parser) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.common.Strings;
import org.elasticsearch.common.Table;
import org.elasticsearch.core.RestApiVersion;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.core.UpdateForV9;
import org.elasticsearch.rest.RestRequest;
import org.elasticsearch.rest.RestResponse;
import org.elasticsearch.rest.Scope;
Expand All @@ -30,8 +28,6 @@
import java.util.List;

import static org.elasticsearch.rest.RestRequest.Method.GET;
import static org.elasticsearch.xpack.core.ml.MachineLearningField.DEPRECATED_ALLOW_NO_DATAFEEDS_PARAM;
import static org.elasticsearch.xpack.ml.rest.RestCompatibilityChecker.checkAndSetDeprecatedParam;

@ServerlessScope(Scope.PUBLIC)
public class RestCatDatafeedsAction extends AbstractCatAction {
Expand All @@ -52,16 +48,8 @@ protected RestChannelConsumer doCatRequest(RestRequest restRequest, NodeClient c
if (Strings.isNullOrEmpty(datafeedId)) {
datafeedId = GetDatafeedsStatsAction.ALL;
}
@UpdateForV9(owner = UpdateForV9.Owner.MACHINE_LEARNING) // v7 REST API no longer exists: eliminate ref to RestApiVersion.V_7
Request request = new Request(datafeedId);
checkAndSetDeprecatedParam(
DEPRECATED_ALLOW_NO_DATAFEEDS_PARAM,
Request.ALLOW_NO_MATCH,
RestApiVersion.V_7,
restRequest,
(r, s) -> r.paramAsBoolean(s, request.allowNoMatch()),
request::setAllowNoMatch
);
request.setAllowNoMatch(restRequest.paramAsBoolean(Request.ALLOW_NO_MATCH, request.allowNoMatch()));
return channel -> client.execute(GetDatafeedsStatsAction.INSTANCE, request, new RestResponseListener<>(channel) {
@Override
public RestResponse buildResponse(Response getDatafeedsStatsRespons) throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
import org.elasticsearch.common.Strings;
import org.elasticsearch.common.Table;
import org.elasticsearch.common.unit.ByteSizeValue;
import org.elasticsearch.core.RestApiVersion;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.core.UpdateForV9;
import org.elasticsearch.rest.RestRequest;
import org.elasticsearch.rest.RestResponse;
import org.elasticsearch.rest.Scope;
Expand All @@ -35,8 +33,6 @@
import java.util.List;

import static org.elasticsearch.rest.RestRequest.Method.GET;
import static org.elasticsearch.xpack.core.ml.MachineLearningField.DEPRECATED_ALLOW_NO_JOBS_PARAM;
import static org.elasticsearch.xpack.ml.rest.RestCompatibilityChecker.checkAndSetDeprecatedParam;

@ServerlessScope(Scope.PUBLIC)
public class RestCatJobsAction extends AbstractCatAction {
Expand All @@ -57,16 +53,8 @@ protected RestChannelConsumer doCatRequest(RestRequest restRequest, NodeClient c
if (Strings.isNullOrEmpty(jobId)) {
jobId = Metadata.ALL;
}
@UpdateForV9(owner = UpdateForV9.Owner.MACHINE_LEARNING) // v7 REST API no longer exists: eliminate ref to RestApiVersion.V_7
Request request = new Request(jobId);
checkAndSetDeprecatedParam(
DEPRECATED_ALLOW_NO_JOBS_PARAM,
Request.ALLOW_NO_MATCH,
RestApiVersion.V_7,
restRequest,
(r, s) -> r.paramAsBoolean(s, request.allowNoMatch()),
request::setAllowNoMatch
);
request.setAllowNoMatch(restRequest.paramAsBoolean(Request.ALLOW_NO_MATCH, request.allowNoMatch()));
return channel -> client.execute(GetJobsStatsAction.INSTANCE, request, new RestResponseListener<>(channel) {
@Override
public RestResponse buildResponse(Response getJobStatsResponse) throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@

import org.elasticsearch.client.internal.node.NodeClient;
import org.elasticsearch.common.Strings;
import org.elasticsearch.core.RestApiVersion;
import org.elasticsearch.core.UpdateForV9;
import org.elasticsearch.rest.BaseRestHandler;
import org.elasticsearch.rest.RestRequest;
import org.elasticsearch.rest.Scope;
Expand All @@ -24,10 +22,8 @@
import java.util.List;

import static org.elasticsearch.rest.RestRequest.Method.GET;
import static org.elasticsearch.xpack.core.ml.MachineLearningField.DEPRECATED_ALLOW_NO_DATAFEEDS_PARAM;
import static org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig.ID;
import static org.elasticsearch.xpack.ml.MachineLearning.BASE_PATH;
import static org.elasticsearch.xpack.ml.rest.RestCompatibilityChecker.checkAndSetDeprecatedParam;

@ServerlessScope(Scope.PUBLIC)
public class RestGetDatafeedStatsAction extends BaseRestHandler {
Expand All @@ -48,16 +44,8 @@ protected RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient
if (Strings.isNullOrEmpty(datafeedId)) {
datafeedId = GetDatafeedsStatsAction.ALL;
}
@UpdateForV9(owner = UpdateForV9.Owner.MACHINE_LEARNING) // v7 REST API no longer exists: eliminate ref to RestApiVersion.V_7
Request request = new Request(datafeedId);
checkAndSetDeprecatedParam(
DEPRECATED_ALLOW_NO_DATAFEEDS_PARAM,
Request.ALLOW_NO_MATCH,
RestApiVersion.V_7,
restRequest,
(r, s) -> r.paramAsBoolean(s, request.allowNoMatch()),
request::setAllowNoMatch
);
request.setAllowNoMatch(restRequest.paramAsBoolean(Request.ALLOW_NO_MATCH, request.allowNoMatch()));
return channel -> new RestCancellableNodeClient(client, restRequest.getHttpChannel()).execute(
GetDatafeedsStatsAction.INSTANCE,
request,
Expand Down
Loading