Minor adjustments to datafeed endpoints (elastic/elasticsearch#761)
1. get_datafeeds_stats -> get_datafeed_stats 2. get_datafeeds now accepts implicit _all Relates elastic/elasticsearch#630 Original commit: elastic/x-pack-elasticsearch@1fc0f69ee2
This commit is contained in:
parent
2eb0499454
commit
bddfac59ed
|
@ -100,7 +100,7 @@ import org.elasticsearch.xpack.ml.rest.results.RestGetInfluencersAction;
|
||||||
import org.elasticsearch.xpack.ml.rest.results.RestGetRecordsAction;
|
import org.elasticsearch.xpack.ml.rest.results.RestGetRecordsAction;
|
||||||
import org.elasticsearch.xpack.ml.rest.datafeeds.RestDeleteDatafeedAction;
|
import org.elasticsearch.xpack.ml.rest.datafeeds.RestDeleteDatafeedAction;
|
||||||
import org.elasticsearch.xpack.ml.rest.datafeeds.RestGetDatafeedsAction;
|
import org.elasticsearch.xpack.ml.rest.datafeeds.RestGetDatafeedsAction;
|
||||||
import org.elasticsearch.xpack.ml.rest.datafeeds.RestGetDatafeedsStatsAction;
|
import org.elasticsearch.xpack.ml.rest.datafeeds.RestGetDatafeedStatsAction;
|
||||||
import org.elasticsearch.xpack.ml.rest.datafeeds.RestPutDatafeedAction;
|
import org.elasticsearch.xpack.ml.rest.datafeeds.RestPutDatafeedAction;
|
||||||
import org.elasticsearch.xpack.ml.rest.datafeeds.RestStartDatafeedAction;
|
import org.elasticsearch.xpack.ml.rest.datafeeds.RestStartDatafeedAction;
|
||||||
import org.elasticsearch.xpack.ml.rest.datafeeds.RestStopDatafeedAction;
|
import org.elasticsearch.xpack.ml.rest.datafeeds.RestStopDatafeedAction;
|
||||||
|
@ -238,7 +238,7 @@ public class MlPlugin extends Plugin implements ActionPlugin {
|
||||||
RestRevertModelSnapshotAction.class,
|
RestRevertModelSnapshotAction.class,
|
||||||
RestUpdateModelSnapshotAction.class,
|
RestUpdateModelSnapshotAction.class,
|
||||||
RestGetDatafeedsAction.class,
|
RestGetDatafeedsAction.class,
|
||||||
RestGetDatafeedsStatsAction.class,
|
RestGetDatafeedStatsAction.class,
|
||||||
RestPutDatafeedAction.class,
|
RestPutDatafeedAction.class,
|
||||||
RestDeleteDatafeedAction.class,
|
RestDeleteDatafeedAction.class,
|
||||||
RestStartDatafeedAction.class,
|
RestStartDatafeedAction.class,
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class GetDatafeedsAction extends Action<GetDatafeedsAction.Request, GetDa
|
||||||
public static final GetDatafeedsAction INSTANCE = new GetDatafeedsAction();
|
public static final GetDatafeedsAction INSTANCE = new GetDatafeedsAction();
|
||||||
public static final String NAME = "cluster:admin/ml/datafeeds/get";
|
public static final String NAME = "cluster:admin/ml/datafeeds/get";
|
||||||
|
|
||||||
private static final String ALL = "_all";
|
public static final String ALL = "_all";
|
||||||
|
|
||||||
private GetDatafeedsAction() {
|
private GetDatafeedsAction() {
|
||||||
super(NAME);
|
super(NAME);
|
||||||
|
|
|
@ -49,7 +49,7 @@ public class GetDatafeedsStatsAction extends Action<GetDatafeedsStatsAction.Requ
|
||||||
public static final GetDatafeedsStatsAction INSTANCE = new GetDatafeedsStatsAction();
|
public static final GetDatafeedsStatsAction INSTANCE = new GetDatafeedsStatsAction();
|
||||||
public static final String NAME = "cluster:admin/ml/datafeeds/stats/get";
|
public static final String NAME = "cluster:admin/ml/datafeeds/stats/get";
|
||||||
|
|
||||||
private static final String ALL = "_all";
|
public static final String ALL = "_all";
|
||||||
private static final String STATUS = "status";
|
private static final String STATUS = "status";
|
||||||
|
|
||||||
private GetDatafeedsStatsAction() {
|
private GetDatafeedsStatsAction() {
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
package org.elasticsearch.xpack.ml.rest.datafeeds;
|
package org.elasticsearch.xpack.ml.rest.datafeeds;
|
||||||
|
|
||||||
import org.elasticsearch.client.node.NodeClient;
|
import org.elasticsearch.client.node.NodeClient;
|
||||||
|
import org.elasticsearch.common.Strings;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.rest.BaseRestHandler;
|
import org.elasticsearch.rest.BaseRestHandler;
|
||||||
|
@ -18,19 +19,24 @@ import org.elasticsearch.xpack.ml.datafeed.DatafeedConfig;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class RestGetDatafeedsStatsAction extends BaseRestHandler {
|
public class RestGetDatafeedStatsAction extends BaseRestHandler {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public RestGetDatafeedsStatsAction(Settings settings, RestController controller) {
|
public RestGetDatafeedStatsAction(Settings settings, RestController controller) {
|
||||||
super(settings);
|
super(settings);
|
||||||
controller.registerHandler(RestRequest.Method.GET, MlPlugin.BASE_PATH
|
controller.registerHandler(RestRequest.Method.GET, MlPlugin.BASE_PATH
|
||||||
+ "datafeeds/{" + DatafeedConfig.ID.getPreferredName() + "}/_stats", this);
|
+ "datafeeds/{" + DatafeedConfig.ID.getPreferredName() + "}/_stats", this);
|
||||||
|
controller.registerHandler(RestRequest.Method.GET, MlPlugin.BASE_PATH
|
||||||
|
+ "datafeeds/_stats", this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException {
|
protected RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException {
|
||||||
GetDatafeedsStatsAction.Request request = new GetDatafeedsStatsAction.Request(
|
String datafeedId = restRequest.param(DatafeedConfig.ID.getPreferredName());
|
||||||
restRequest.param(DatafeedConfig.ID.getPreferredName()));
|
if (Strings.isNullOrEmpty(datafeedId)) {
|
||||||
|
datafeedId = GetDatafeedsStatsAction.ALL;
|
||||||
|
}
|
||||||
|
GetDatafeedsStatsAction.Request request = new GetDatafeedsStatsAction.Request(datafeedId);
|
||||||
return channel -> client.execute(GetDatafeedsStatsAction.INSTANCE, request, new RestToXContentListener<>(channel));
|
return channel -> client.execute(GetDatafeedsStatsAction.INSTANCE, request, new RestToXContentListener<>(channel));
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -25,11 +25,17 @@ public class RestGetDatafeedsAction extends BaseRestHandler {
|
||||||
super(settings);
|
super(settings);
|
||||||
controller.registerHandler(RestRequest.Method.GET, MlPlugin.BASE_PATH
|
controller.registerHandler(RestRequest.Method.GET, MlPlugin.BASE_PATH
|
||||||
+ "datafeeds/{" + DatafeedConfig.ID.getPreferredName() + "}", this);
|
+ "datafeeds/{" + DatafeedConfig.ID.getPreferredName() + "}", this);
|
||||||
|
controller.registerHandler(RestRequest.Method.GET, MlPlugin.BASE_PATH
|
||||||
|
+ "datafeeds", this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException {
|
protected RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException {
|
||||||
GetDatafeedsAction.Request request = new GetDatafeedsAction.Request(restRequest.param(DatafeedConfig.ID.getPreferredName()));
|
String datafeedId = restRequest.param(DatafeedConfig.ID.getPreferredName());
|
||||||
|
if (datafeedId == null) {
|
||||||
|
datafeedId = GetDatafeedsAction.ALL;
|
||||||
|
}
|
||||||
|
GetDatafeedsAction.Request request = new GetDatafeedsAction.Request(datafeedId);
|
||||||
return channel -> client.execute(GetDatafeedsAction.INSTANCE, request, new RestToXContentListener<>(channel));
|
return channel -> client.execute(GetDatafeedsAction.INSTANCE, request, new RestToXContentListener<>(channel));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import org.elasticsearch.xpack.ml.action.GetDatafeedsStatsAction.Request;
|
||||||
import org.elasticsearch.xpack.ml.job.Job;
|
import org.elasticsearch.xpack.ml.job.Job;
|
||||||
import org.elasticsearch.xpack.ml.support.AbstractStreamableTestCase;
|
import org.elasticsearch.xpack.ml.support.AbstractStreamableTestCase;
|
||||||
|
|
||||||
public class GetDatafeedsStatsActionRequestTests extends AbstractStreamableTestCase<Request> {
|
public class GetDatafeedStatsActionRequestTests extends AbstractStreamableTestCase<Request> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Request createTestInstance() {
|
protected Request createTestInstance() {
|
|
@ -14,7 +14,7 @@ import org.elasticsearch.xpack.ml.support.AbstractStreamableTestCase;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class GetDatafeedsStatsActionResponseTests extends AbstractStreamableTestCase<Response> {
|
public class GetDatafeedStatsActionResponseTests extends AbstractStreamableTestCase<Response> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Response createTestInstance() {
|
protected Response createTestInstance() {
|
|
@ -1,15 +1,15 @@
|
||||||
{
|
{
|
||||||
"xpack.ml.get_datafeeds_stats": {
|
"xpack.ml.get_datafeed_stats": {
|
||||||
"methods": [ "GET"],
|
"methods": [ "GET"],
|
||||||
"url": {
|
"url": {
|
||||||
"path": "/_xpack/ml/datafeeds/{datafeed_id}/_stats",
|
"path": "/_xpack/ml/datafeeds/{datafeed_id}/_stats",
|
||||||
"paths": [
|
"paths": [
|
||||||
"/_xpack/ml/datafeeds/{datafeed_id}/_stats"
|
"/_xpack/ml/datafeeds/{datafeed_id}/_stats",
|
||||||
|
"/_xpack/ml/datafeeds/_stats"
|
||||||
],
|
],
|
||||||
"parts": {
|
"parts": {
|
||||||
"datafeed_id": {
|
"datafeed_id": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"required": true,
|
|
||||||
"description": "The ID of the datafeeds stats to fetch"
|
"description": "The ID of the datafeeds stats to fetch"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,12 +4,12 @@
|
||||||
"url": {
|
"url": {
|
||||||
"path": "/_xpack/ml/datafeeds/{datafeed_id}",
|
"path": "/_xpack/ml/datafeeds/{datafeed_id}",
|
||||||
"paths": [
|
"paths": [
|
||||||
"/_xpack/ml/datafeeds/{datafeed_id}"
|
"/_xpack/ml/datafeeds/{datafeed_id}",
|
||||||
|
"/_xpack/ml/datafeeds"
|
||||||
],
|
],
|
||||||
"parts": {
|
"parts": {
|
||||||
"datafeed_id": {
|
"datafeed_id": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"required": true,
|
|
||||||
"description": "The ID of the datafeeds to fetch"
|
"description": "The ID of the datafeeds to fetch"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ setup:
|
||||||
- match: { datafeeds: [] }
|
- match: { datafeeds: [] }
|
||||||
|
|
||||||
- do:
|
- do:
|
||||||
xpack.ml.get_datafeeds_stats:
|
xpack.ml.get_datafeed_stats:
|
||||||
datafeed_id: "_all"
|
datafeed_id: "_all"
|
||||||
- match: { count: 0 }
|
- match: { count: 0 }
|
||||||
- match: { datafeeds: [] }
|
- match: { datafeeds: [] }
|
||||||
|
|
|
@ -56,32 +56,43 @@ setup:
|
||||||
|
|
||||||
- do:
|
- do:
|
||||||
catch: missing
|
catch: missing
|
||||||
xpack.ml.get_datafeeds_stats:
|
xpack.ml.get_datafeed_stats:
|
||||||
datafeed_id: missing-datafeed
|
datafeed_id: missing-datafeed
|
||||||
|
|
||||||
---
|
---
|
||||||
"Test get single datafeed stats":
|
"Test get single datafeed stats":
|
||||||
|
|
||||||
- do:
|
- do:
|
||||||
xpack.ml.get_datafeeds_stats:
|
xpack.ml.get_datafeed_stats:
|
||||||
datafeed_id: datafeed-1
|
datafeed_id: datafeed-1
|
||||||
- match: { datafeeds.0.datafeed_id: "datafeed-1"}
|
- match: { datafeeds.0.datafeed_id: "datafeed-1"}
|
||||||
- match: { datafeeds.0.status: "STOPPED"}
|
- match: { datafeeds.0.status: "STOPPED"}
|
||||||
|
|
||||||
- do:
|
- do:
|
||||||
xpack.ml.get_datafeeds_stats:
|
xpack.ml.get_datafeed_stats:
|
||||||
datafeed_id: datafeed-2
|
datafeed_id: datafeed-2
|
||||||
- match: { datafeeds.0.datafeed_id: "datafeed-2"}
|
- match: { datafeeds.0.datafeed_id: "datafeed-2"}
|
||||||
- match: { datafeeds.0.status: "STOPPED"}
|
- match: { datafeeds.0.status: "STOPPED"}
|
||||||
|
|
||||||
---
|
---
|
||||||
"Test get all datafeeds stats":
|
"Test explicit get all datafeed stats":
|
||||||
|
|
||||||
- do:
|
- do:
|
||||||
xpack.ml.get_datafeeds_stats:
|
xpack.ml.get_datafeed_stats:
|
||||||
datafeed_id: _all
|
datafeed_id: _all
|
||||||
- match: { count: 2 }
|
- match: { count: 2 }
|
||||||
- match: { datafeeds.0.datafeed_id: "datafeed-1"}
|
- match: { datafeeds.0.datafeed_id: "datafeed-1"}
|
||||||
- match: { datafeeds.0.status: "STOPPED"}
|
- match: { datafeeds.0.status: "STOPPED"}
|
||||||
- match: { datafeeds.1.datafeed_id: "datafeed-2"}
|
- match: { datafeeds.1.datafeed_id: "datafeed-2"}
|
||||||
- match: { datafeeds.1.status: "STOPPED"}
|
- match: { datafeeds.1.status: "STOPPED"}
|
||||||
|
|
||||||
|
---
|
||||||
|
"Test implicit get all datafeed stats":
|
||||||
|
|
||||||
|
- do:
|
||||||
|
xpack.ml.get_datafeed_stats: {}
|
||||||
|
- match: { count: 2 }
|
||||||
|
- match: { datafeeds.0.datafeed_id: "datafeed-1"}
|
||||||
|
- match: { datafeeds.0.status: "STOPPED"}
|
||||||
|
- match: { datafeeds.1.datafeed_id: "datafeed-2"}
|
||||||
|
- match: { datafeeds.1.status: "STOPPED"}
|
|
@ -75,7 +75,7 @@ setup:
|
||||||
- match: { datafeeds.0.job_id: "job-2"}
|
- match: { datafeeds.0.job_id: "job-2"}
|
||||||
|
|
||||||
---
|
---
|
||||||
"Test get all datafeeds":
|
"Test explicit get all datafeeds":
|
||||||
|
|
||||||
- do:
|
- do:
|
||||||
xpack.ml.get_datafeeds:
|
xpack.ml.get_datafeeds:
|
||||||
|
@ -85,3 +85,14 @@ setup:
|
||||||
- match: { datafeeds.0.job_id: "job-1"}
|
- match: { datafeeds.0.job_id: "job-1"}
|
||||||
- match: { datafeeds.1.datafeed_id: "datafeed-2"}
|
- match: { datafeeds.1.datafeed_id: "datafeed-2"}
|
||||||
- match: { datafeeds.1.job_id: "job-2"}
|
- match: { datafeeds.1.job_id: "job-2"}
|
||||||
|
|
||||||
|
---
|
||||||
|
"Test implicit get all datafeeds":
|
||||||
|
|
||||||
|
- do:
|
||||||
|
xpack.ml.get_datafeeds: {}
|
||||||
|
- match: { count: 2 }
|
||||||
|
- match: { datafeeds.0.datafeed_id: "datafeed-1"}
|
||||||
|
- match: { datafeeds.0.job_id: "job-1"}
|
||||||
|
- match: { datafeeds.1.datafeed_id: "datafeed-2"}
|
||||||
|
- match: { datafeeds.1.job_id: "job-2"}
|
||||||
|
|
|
@ -45,14 +45,14 @@ setup:
|
||||||
"datafeed_id": "datafeed-1"
|
"datafeed_id": "datafeed-1"
|
||||||
"start": 0
|
"start": 0
|
||||||
- do:
|
- do:
|
||||||
xpack.ml.get_datafeeds_stats:
|
xpack.ml.get_datafeed_stats:
|
||||||
datafeed_id: "datafeed-1"
|
datafeed_id: "datafeed-1"
|
||||||
- match: { datafeeds.0.status: STARTED }
|
- match: { datafeeds.0.status: STARTED }
|
||||||
- do:
|
- do:
|
||||||
xpack.ml.stop_datafeed:
|
xpack.ml.stop_datafeed:
|
||||||
"datafeed_id": "datafeed-1"
|
"datafeed_id": "datafeed-1"
|
||||||
- do:
|
- do:
|
||||||
xpack.ml.get_datafeeds_stats:
|
xpack.ml.get_datafeed_stats:
|
||||||
datafeed_id: "datafeed-1"
|
datafeed_id: "datafeed-1"
|
||||||
- match: { datafeeds.0.status: STOPPED }
|
- match: { datafeeds.0.status: STOPPED }
|
||||||
---
|
---
|
||||||
|
|
Loading…
Reference in New Issue