Add request parameter 'cluster_manager_timeout' and deprecate 'master_timeout' - in Ingest APIs and Script APIs (#2682)
- Deprecate the request parameter `master_timeout` that used in Ingest APIs and Script APIs which have got the parameter. - Add alternative new request parameter `cluster_manager_timeout`. - Add unit tests. Signed-off-by: Tianli Feng <ftianli@amazon.com>
This commit is contained in:
parent
3af4300c3f
commit
08e4a35839
|
@ -28,7 +28,15 @@
|
|||
},
|
||||
"master_timeout":{
|
||||
"type":"time",
|
||||
"description":"Specify timeout for connection to master"
|
||||
"description":"Specify timeout for connection to master",
|
||||
"deprecated":{
|
||||
"version":"2.0.0",
|
||||
"description":"To support inclusive language, use 'cluster_manager_timeout' instead."
|
||||
}
|
||||
},
|
||||
"cluster_manager_timeout":{
|
||||
"type":"time",
|
||||
"description":"Specify timeout for connection to cluster-manager node"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,15 @@
|
|||
"params":{
|
||||
"master_timeout":{
|
||||
"type":"time",
|
||||
"description":"Specify timeout for connection to master"
|
||||
"description":"Specify timeout for connection to master",
|
||||
"deprecated":{
|
||||
"version":"2.0.0",
|
||||
"description":"To support inclusive language, use 'cluster_manager_timeout' instead."
|
||||
}
|
||||
},
|
||||
"cluster_manager_timeout":{
|
||||
"type":"time",
|
||||
"description":"Specify timeout for connection to cluster-manager node"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,15 @@
|
|||
"params":{
|
||||
"master_timeout":{
|
||||
"type":"time",
|
||||
"description":"Explicit operation timeout for connection to master node"
|
||||
"description":"Explicit operation timeout for connection to master node",
|
||||
"deprecated":{
|
||||
"version":"2.0.0",
|
||||
"description":"To support inclusive language, use 'cluster_manager_timeout' instead."
|
||||
}
|
||||
},
|
||||
"cluster_manager_timeout":{
|
||||
"type":"time",
|
||||
"description":"Explicit operation timeout for connection to cluster-manager node"
|
||||
},
|
||||
"timeout":{
|
||||
"type":"time",
|
||||
|
|
|
@ -30,7 +30,15 @@
|
|||
"params":{
|
||||
"master_timeout":{
|
||||
"type":"time",
|
||||
"description":"Explicit operation timeout for connection to master node"
|
||||
"description":"Explicit operation timeout for connection to master node",
|
||||
"deprecated":{
|
||||
"version":"2.0.0",
|
||||
"description":"To support inclusive language, use 'cluster_manager_timeout' instead."
|
||||
}
|
||||
},
|
||||
"cluster_manager_timeout":{
|
||||
"type":"time",
|
||||
"description":"Explicit operation timeout for connection to cluster-manager node"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,15 @@
|
|||
"params":{
|
||||
"master_timeout":{
|
||||
"type":"time",
|
||||
"description":"Explicit operation timeout for connection to master node"
|
||||
"description":"Explicit operation timeout for connection to master node",
|
||||
"deprecated":{
|
||||
"version":"2.0.0",
|
||||
"description":"To support inclusive language, use 'cluster_manager_timeout' instead."
|
||||
}
|
||||
},
|
||||
"cluster_manager_timeout":{
|
||||
"type":"time",
|
||||
"description":"Explicit operation timeout for connection to cluster-manager node"
|
||||
},
|
||||
"timeout":{
|
||||
"type":"time",
|
||||
|
|
|
@ -46,7 +46,15 @@
|
|||
},
|
||||
"master_timeout":{
|
||||
"type":"time",
|
||||
"description":"Specify timeout for connection to master"
|
||||
"description":"Specify timeout for connection to master",
|
||||
"deprecated":{
|
||||
"version":"2.0.0",
|
||||
"description":"To support inclusive language, use 'cluster_manager_timeout' instead."
|
||||
}
|
||||
},
|
||||
"cluster_manager_timeout":{
|
||||
"type":"time",
|
||||
"description":"Specify timeout for connection to cluster-manager node"
|
||||
},
|
||||
"context":{
|
||||
"type":"string",
|
||||
|
|
|
@ -33,6 +33,7 @@ package org.opensearch.rest.action.admin.cluster;
|
|||
|
||||
import org.opensearch.action.admin.cluster.storedscripts.DeleteStoredScriptRequest;
|
||||
import org.opensearch.client.node.NodeClient;
|
||||
import org.opensearch.common.logging.DeprecationLogger;
|
||||
import org.opensearch.rest.BaseRestHandler;
|
||||
import org.opensearch.rest.RestRequest;
|
||||
import org.opensearch.rest.action.RestToXContentListener;
|
||||
|
@ -45,6 +46,8 @@ import static org.opensearch.rest.RestRequest.Method.DELETE;
|
|||
|
||||
public class RestDeleteStoredScriptAction extends BaseRestHandler {
|
||||
|
||||
private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(RestDeleteStoredScriptAction.class);
|
||||
|
||||
@Override
|
||||
public List<Route> routes() {
|
||||
return singletonList(new Route(DELETE, "/_scripts/{id}"));
|
||||
|
@ -60,7 +63,10 @@ public class RestDeleteStoredScriptAction extends BaseRestHandler {
|
|||
String id = request.param("id");
|
||||
DeleteStoredScriptRequest deleteStoredScriptRequest = new DeleteStoredScriptRequest(id);
|
||||
deleteStoredScriptRequest.timeout(request.paramAsTime("timeout", deleteStoredScriptRequest.timeout()));
|
||||
deleteStoredScriptRequest.masterNodeTimeout(request.paramAsTime("master_timeout", deleteStoredScriptRequest.masterNodeTimeout()));
|
||||
deleteStoredScriptRequest.masterNodeTimeout(
|
||||
request.paramAsTime("cluster_manager_timeout", deleteStoredScriptRequest.masterNodeTimeout())
|
||||
);
|
||||
parseDeprecatedMasterTimeoutParameter(deleteStoredScriptRequest, request, deprecationLogger, getName());
|
||||
|
||||
return channel -> client.admin().cluster().deleteStoredScript(deleteStoredScriptRequest, new RestToXContentListener<>(channel));
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ package org.opensearch.rest.action.admin.cluster;
|
|||
|
||||
import org.opensearch.action.admin.cluster.storedscripts.GetStoredScriptRequest;
|
||||
import org.opensearch.client.node.NodeClient;
|
||||
import org.opensearch.common.logging.DeprecationLogger;
|
||||
import org.opensearch.rest.BaseRestHandler;
|
||||
import org.opensearch.rest.RestRequest;
|
||||
import org.opensearch.rest.action.RestStatusToXContentListener;
|
||||
|
@ -45,6 +46,8 @@ import static org.opensearch.rest.RestRequest.Method.GET;
|
|||
|
||||
public class RestGetStoredScriptAction extends BaseRestHandler {
|
||||
|
||||
private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(RestGetStoredScriptAction.class);
|
||||
|
||||
@Override
|
||||
public List<Route> routes() {
|
||||
return singletonList(new Route(GET, "/_scripts/{id}"));
|
||||
|
@ -59,7 +62,8 @@ public class RestGetStoredScriptAction extends BaseRestHandler {
|
|||
public RestChannelConsumer prepareRequest(final RestRequest request, NodeClient client) throws IOException {
|
||||
String id = request.param("id");
|
||||
GetStoredScriptRequest getRequest = new GetStoredScriptRequest(id);
|
||||
getRequest.masterNodeTimeout(request.paramAsTime("master_timeout", getRequest.masterNodeTimeout()));
|
||||
getRequest.masterNodeTimeout(request.paramAsTime("cluster_manager_timeout", getRequest.masterNodeTimeout()));
|
||||
parseDeprecatedMasterTimeoutParameter(getRequest, request, deprecationLogger, getName());
|
||||
return channel -> client.admin().cluster().getStoredScript(getRequest, new RestStatusToXContentListener<>(channel));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ package org.opensearch.rest.action.admin.cluster;
|
|||
import org.opensearch.action.admin.cluster.storedscripts.PutStoredScriptRequest;
|
||||
import org.opensearch.client.node.NodeClient;
|
||||
import org.opensearch.common.bytes.BytesReference;
|
||||
import org.opensearch.common.logging.DeprecationLogger;
|
||||
import org.opensearch.common.xcontent.XContentType;
|
||||
import org.opensearch.rest.BaseRestHandler;
|
||||
import org.opensearch.rest.RestRequest;
|
||||
|
@ -50,6 +51,8 @@ import static org.opensearch.rest.RestRequest.Method.PUT;
|
|||
|
||||
public class RestPutStoredScriptAction extends BaseRestHandler {
|
||||
|
||||
private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(RestPutStoredScriptAction.class);
|
||||
|
||||
@Override
|
||||
public List<Route> routes() {
|
||||
return unmodifiableList(
|
||||
|
@ -76,7 +79,8 @@ public class RestPutStoredScriptAction extends BaseRestHandler {
|
|||
StoredScriptSource source = StoredScriptSource.parse(content, xContentType);
|
||||
|
||||
PutStoredScriptRequest putRequest = new PutStoredScriptRequest(id, context, content, request.getXContentType(), source);
|
||||
putRequest.masterNodeTimeout(request.paramAsTime("master_timeout", putRequest.masterNodeTimeout()));
|
||||
putRequest.masterNodeTimeout(request.paramAsTime("cluster_manager_timeout", putRequest.masterNodeTimeout()));
|
||||
parseDeprecatedMasterTimeoutParameter(putRequest, request, deprecationLogger, getName());
|
||||
putRequest.timeout(request.paramAsTime("timeout", putRequest.timeout()));
|
||||
return channel -> client.admin().cluster().putStoredScript(putRequest, new RestToXContentListener<>(channel));
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ package org.opensearch.rest.action.ingest;
|
|||
|
||||
import org.opensearch.action.ingest.DeletePipelineRequest;
|
||||
import org.opensearch.client.node.NodeClient;
|
||||
import org.opensearch.common.logging.DeprecationLogger;
|
||||
import org.opensearch.rest.BaseRestHandler;
|
||||
import org.opensearch.rest.RestRequest;
|
||||
import org.opensearch.rest.action.RestToXContentListener;
|
||||
|
@ -45,6 +46,8 @@ import static java.util.Collections.singletonList;
|
|||
import static org.opensearch.rest.RestRequest.Method.DELETE;
|
||||
|
||||
public class RestDeletePipelineAction extends BaseRestHandler {
|
||||
private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(RestDeletePipelineAction.class);
|
||||
|
||||
@Override
|
||||
public List<Route> routes() {
|
||||
return singletonList(new Route(DELETE, "/_ingest/pipeline/{id}"));
|
||||
|
@ -58,7 +61,8 @@ public class RestDeletePipelineAction extends BaseRestHandler {
|
|||
@Override
|
||||
public RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException {
|
||||
DeletePipelineRequest request = new DeletePipelineRequest(restRequest.param("id"));
|
||||
request.masterNodeTimeout(restRequest.paramAsTime("master_timeout", request.masterNodeTimeout()));
|
||||
request.masterNodeTimeout(restRequest.paramAsTime("cluster_manager_timeout", request.masterNodeTimeout()));
|
||||
parseDeprecatedMasterTimeoutParameter(request, restRequest, deprecationLogger, getName());
|
||||
request.timeout(restRequest.paramAsTime("timeout", request.timeout()));
|
||||
return channel -> client.admin().cluster().deletePipeline(request, new RestToXContentListener<>(channel));
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ package org.opensearch.rest.action.ingest;
|
|||
import org.opensearch.action.ingest.GetPipelineRequest;
|
||||
import org.opensearch.client.node.NodeClient;
|
||||
import org.opensearch.common.Strings;
|
||||
import org.opensearch.common.logging.DeprecationLogger;
|
||||
import org.opensearch.rest.BaseRestHandler;
|
||||
import org.opensearch.rest.RestRequest;
|
||||
import org.opensearch.rest.action.RestStatusToXContentListener;
|
||||
|
@ -48,6 +49,8 @@ import static org.opensearch.rest.RestRequest.Method.GET;
|
|||
|
||||
public class RestGetPipelineAction extends BaseRestHandler {
|
||||
|
||||
private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(RestGetPipelineAction.class);
|
||||
|
||||
@Override
|
||||
public List<Route> routes() {
|
||||
return unmodifiableList(asList(new Route(GET, "/_ingest/pipeline"), new Route(GET, "/_ingest/pipeline/{id}")));
|
||||
|
@ -61,7 +64,8 @@ public class RestGetPipelineAction extends BaseRestHandler {
|
|||
@Override
|
||||
public RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException {
|
||||
GetPipelineRequest request = new GetPipelineRequest(Strings.splitStringByCommaToArray(restRequest.param("id")));
|
||||
request.masterNodeTimeout(restRequest.paramAsTime("master_timeout", request.masterNodeTimeout()));
|
||||
request.masterNodeTimeout(restRequest.paramAsTime("cluster_manager_timeout", request.masterNodeTimeout()));
|
||||
parseDeprecatedMasterTimeoutParameter(request, restRequest, deprecationLogger, getName());
|
||||
return channel -> client.admin().cluster().getPipeline(request, new RestStatusToXContentListener<>(channel));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@ import org.opensearch.action.ingest.PutPipelineRequest;
|
|||
import org.opensearch.client.node.NodeClient;
|
||||
import org.opensearch.common.bytes.BytesReference;
|
||||
import org.opensearch.common.collect.Tuple;
|
||||
import org.opensearch.common.logging.DeprecationLogger;
|
||||
import org.opensearch.common.xcontent.XContentType;
|
||||
import org.opensearch.rest.BaseRestHandler;
|
||||
import org.opensearch.rest.RestRequest;
|
||||
|
@ -49,6 +50,8 @@ import static org.opensearch.rest.RestRequest.Method.PUT;
|
|||
|
||||
public class RestPutPipelineAction extends BaseRestHandler {
|
||||
|
||||
private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(RestPutPipelineAction.class);
|
||||
|
||||
@Override
|
||||
public List<Route> routes() {
|
||||
return singletonList(new Route(PUT, "/_ingest/pipeline/{id}"));
|
||||
|
@ -63,7 +66,8 @@ public class RestPutPipelineAction extends BaseRestHandler {
|
|||
public RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException {
|
||||
Tuple<XContentType, BytesReference> sourceTuple = restRequest.contentOrSourceParam();
|
||||
PutPipelineRequest request = new PutPipelineRequest(restRequest.param("id"), sourceTuple.v2(), sourceTuple.v1());
|
||||
request.masterNodeTimeout(restRequest.paramAsTime("master_timeout", request.masterNodeTimeout()));
|
||||
request.masterNodeTimeout(restRequest.paramAsTime("cluster_manager_timeout", request.masterNodeTimeout()));
|
||||
parseDeprecatedMasterTimeoutParameter(request, restRequest, deprecationLogger, getName());
|
||||
request.timeout(restRequest.paramAsTime("timeout", request.timeout()));
|
||||
return channel -> client.admin().cluster().putPipeline(request, new RestToXContentListener<>(channel));
|
||||
}
|
||||
|
|
|
@ -63,6 +63,9 @@ import org.opensearch.rest.action.admin.cluster.RestPutRepositoryAction;
|
|||
import org.opensearch.rest.action.admin.cluster.RestRestoreSnapshotAction;
|
||||
import org.opensearch.rest.action.admin.cluster.RestSnapshotsStatusAction;
|
||||
import org.opensearch.rest.action.admin.cluster.RestVerifyRepositoryAction;
|
||||
import org.opensearch.rest.action.admin.cluster.RestDeleteStoredScriptAction;
|
||||
import org.opensearch.rest.action.admin.cluster.RestGetStoredScriptAction;
|
||||
import org.opensearch.rest.action.admin.cluster.RestPutStoredScriptAction;
|
||||
import org.opensearch.rest.action.cat.RestAllocationAction;
|
||||
import org.opensearch.rest.action.cat.RestRepositoriesAction;
|
||||
import org.opensearch.rest.action.cat.RestThreadPoolAction;
|
||||
|
@ -76,6 +79,9 @@ import org.opensearch.rest.action.cat.RestTemplatesAction;
|
|||
import org.opensearch.rest.action.cat.RestPendingClusterTasksAction;
|
||||
import org.opensearch.rest.action.cat.RestSegmentsAction;
|
||||
import org.opensearch.rest.action.cat.RestSnapshotAction;
|
||||
import org.opensearch.rest.action.ingest.RestDeletePipelineAction;
|
||||
import org.opensearch.rest.action.ingest.RestGetPipelineAction;
|
||||
import org.opensearch.rest.action.ingest.RestPutPipelineAction;
|
||||
import org.opensearch.test.OpenSearchTestCase;
|
||||
import org.opensearch.test.rest.FakeRestRequest;
|
||||
import org.opensearch.threadpool.TestThreadPool;
|
||||
|
@ -612,6 +618,59 @@ public class RenamedTimeoutRequestParameterTests extends OpenSearchTestCase {
|
|||
assertWarnings(MASTER_TIMEOUT_DEPRECATED_MESSAGE);
|
||||
}
|
||||
|
||||
public void testDeletePipeline() {
|
||||
FakeRestRequest request = new FakeRestRequest();
|
||||
request.params().put("cluster_manager_timeout", "1h");
|
||||
request.params().put("master_timeout", "3s");
|
||||
request.params().put("id", "test");
|
||||
RestDeletePipelineAction action = new RestDeletePipelineAction();
|
||||
Exception e = assertThrows(OpenSearchParseException.class, () -> action.prepareRequest(request, client));
|
||||
assertThat(e.getMessage(), containsString(DUPLICATE_PARAMETER_ERROR_MESSAGE));
|
||||
assertWarnings(MASTER_TIMEOUT_DEPRECATED_MESSAGE);
|
||||
}
|
||||
|
||||
public void testGetPipeline() {
|
||||
RestGetPipelineAction action = new RestGetPipelineAction();
|
||||
Exception e = assertThrows(OpenSearchParseException.class, () -> action.prepareRequest(getRestRequestWithBothParams(), client));
|
||||
assertThat(e.getMessage(), containsString(DUPLICATE_PARAMETER_ERROR_MESSAGE));
|
||||
assertWarnings(MASTER_TIMEOUT_DEPRECATED_MESSAGE);
|
||||
}
|
||||
|
||||
public void testPutPipeline() {
|
||||
FakeRestRequest request = getFakeRestRequestWithBody();
|
||||
request.params().put("cluster_manager_timeout", "2m");
|
||||
request.params().put("master_timeout", "3s");
|
||||
request.params().put("id", "test");
|
||||
RestPutPipelineAction action = new RestPutPipelineAction();
|
||||
Exception e = assertThrows(OpenSearchParseException.class, () -> action.prepareRequest(request, client));
|
||||
assertThat(e.getMessage(), containsString(DUPLICATE_PARAMETER_ERROR_MESSAGE));
|
||||
assertWarnings(MASTER_TIMEOUT_DEPRECATED_MESSAGE);
|
||||
}
|
||||
|
||||
public void testDeleteStoredScript() {
|
||||
RestDeleteStoredScriptAction action = new RestDeleteStoredScriptAction();
|
||||
Exception e = assertThrows(OpenSearchParseException.class, () -> action.prepareRequest(getRestRequestWithBothParams(), client));
|
||||
assertThat(e.getMessage(), containsString(DUPLICATE_PARAMETER_ERROR_MESSAGE));
|
||||
assertWarnings(MASTER_TIMEOUT_DEPRECATED_MESSAGE);
|
||||
}
|
||||
|
||||
public void testGetStoredScript() {
|
||||
RestGetStoredScriptAction action = new RestGetStoredScriptAction();
|
||||
Exception e = assertThrows(OpenSearchParseException.class, () -> action.prepareRequest(getRestRequestWithBothParams(), client));
|
||||
assertThat(e.getMessage(), containsString(DUPLICATE_PARAMETER_ERROR_MESSAGE));
|
||||
assertWarnings(MASTER_TIMEOUT_DEPRECATED_MESSAGE);
|
||||
}
|
||||
|
||||
public void testPutStoredScript() {
|
||||
RestPutStoredScriptAction action = new RestPutStoredScriptAction();
|
||||
Exception e = assertThrows(
|
||||
OpenSearchParseException.class,
|
||||
() -> action.prepareRequest(getRestRequestWithBodyWithBothParams(), client)
|
||||
);
|
||||
assertThat(e.getMessage(), containsString(DUPLICATE_PARAMETER_ERROR_MESSAGE));
|
||||
assertWarnings(MASTER_TIMEOUT_DEPRECATED_MESSAGE, "empty templates should no longer be used");
|
||||
}
|
||||
|
||||
private MasterNodeRequest getMasterNodeRequest() {
|
||||
return new MasterNodeRequest() {
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue