From 84a8d4427383e0c384aad5c28f70d16ccc4dd6db Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Mon, 29 Aug 2022 11:35:51 +0530 Subject: [PATCH 01/16] Add rest api changes Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- .../org/opensearch/action/ActionModule.java | 5 + .../delete/DeleteDecommissionAction.java | 20 ++++ .../delete/DeleteDecommissionRequest.java | 105 +++++++++++++++++ .../DeleteDecommissionRequestBuilder.java | 43 +++++++ .../delete/DeleteDecommissionResponse.java | 32 ++++++ .../TransportDeleteDecommissionAction.java | 95 ++++++++++++++++ .../opensearch/client/ClusterAdminClient.java | 18 +++ .../java/org/opensearch/client/Requests.java | 8 ++ .../client/support/AbstractClient.java | 19 ++++ .../decommission/DecommissionAttribute.java | 107 ++++++++++++++++++ .../cluster/RestDeleteDecommissionAction.java | 66 +++++++++++ .../RestDeleteDecommissionActionTests.java | 74 ++++++++++++ 12 files changed, 592 insertions(+) create mode 100644 server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java create mode 100644 server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java create mode 100644 server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java create mode 100644 server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java create mode 100644 server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java create mode 100644 server/src/main/java/org/opensearch/cluster/decommission/DecommissionAttribute.java create mode 100644 server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java create mode 100644 server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java diff --git a/server/src/main/java/org/opensearch/action/ActionModule.java b/server/src/main/java/org/opensearch/action/ActionModule.java index 797c5c38fada6..000fe417ed5a8 100644 --- a/server/src/main/java/org/opensearch/action/ActionModule.java +++ b/server/src/main/java/org/opensearch/action/ActionModule.java @@ -40,6 +40,8 @@ import org.opensearch.action.admin.cluster.configuration.ClearVotingConfigExclusionsAction; import org.opensearch.action.admin.cluster.configuration.TransportAddVotingConfigExclusionsAction; import org.opensearch.action.admin.cluster.configuration.TransportClearVotingConfigExclusionsAction; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionAction; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.TransportDeleteDecommissionAction; import org.opensearch.action.admin.cluster.health.ClusterHealthAction; import org.opensearch.action.admin.cluster.health.TransportClusterHealthAction; import org.opensearch.action.admin.cluster.node.hotthreads.NodesHotThreadsAction; @@ -300,6 +302,7 @@ import org.opensearch.rest.action.admin.cluster.RestClusterStatsAction; import org.opensearch.rest.action.admin.cluster.RestClusterUpdateSettingsAction; import org.opensearch.rest.action.admin.cluster.RestCreateSnapshotAction; +import org.opensearch.rest.action.admin.cluster.RestDeleteDecommissionAction; import org.opensearch.rest.action.admin.cluster.RestDeleteRepositoryAction; import org.opensearch.rest.action.admin.cluster.RestDeleteSnapshotAction; import org.opensearch.rest.action.admin.cluster.RestDeleteStoredScriptAction; @@ -558,6 +561,7 @@ public void reg actions.register(CloneSnapshotAction.INSTANCE, TransportCloneSnapshotAction.class); actions.register(RestoreSnapshotAction.INSTANCE, TransportRestoreSnapshotAction.class); actions.register(SnapshotsStatusAction.INSTANCE, TransportSnapshotsStatusAction.class); + actions.register(DeleteDecommissionAction.INSTANCE, TransportDeleteDecommissionAction.class); actions.register(IndicesStatsAction.INSTANCE, TransportIndicesStatsAction.class); actions.register(IndicesSegmentsAction.INSTANCE, TransportIndicesSegmentsAction.class); @@ -863,6 +867,7 @@ public void initRestHandlers(Supplier nodesInCluster) { } } registerHandler.accept(new RestCatAction(catActions)); + registerHandler.accept(new RestDeleteDecommissionAction()); // Remote Store APIs if (FeatureFlags.isEnabled(FeatureFlags.REMOTE_STORE)) { diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java new file mode 100644 index 0000000000000..4bb276197a912 --- /dev/null +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java @@ -0,0 +1,20 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.action.admin.cluster.decommission.awareness.delete; + +import org.opensearch.action.ActionType; + +public class DeleteDecommissionAction extends ActionType { + public static final DeleteDecommissionAction INSTANCE = new DeleteDecommissionAction(); + public static final String NAME = "cluster:admin/decommission/awareness/delete"; + + private DeleteDecommissionAction() { + super(NAME, DeleteDecommissionResponse::new); + } +} diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java new file mode 100644 index 0000000000000..30c1cbf78c9fc --- /dev/null +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java @@ -0,0 +1,105 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.action.admin.cluster.decommission.awareness.delete; + +import org.opensearch.action.ActionRequestValidationException; +import org.opensearch.action.support.clustermanager.ClusterManagerNodeRequest; +import org.opensearch.cluster.decommission.DecommissionAttribute; +import org.opensearch.common.io.stream.StreamInput; +import org.opensearch.common.io.stream.StreamOutput; +import org.opensearch.common.unit.TimeValue; + +import java.io.IOException; + +import static org.opensearch.action.ValidateActions.addValidationError; + +public class DeleteDecommissionRequest extends ClusterManagerNodeRequest { + private DecommissionAttribute decommissionAttribute; + private TimeValue timeout; + + public DeleteDecommissionRequest() {} + + public DeleteDecommissionRequest(DecommissionAttribute decommissionAttribute, TimeValue timeOut) { + this.decommissionAttribute = decommissionAttribute; + this.timeout = timeOut; + } + + public DeleteDecommissionRequest(StreamInput in) throws IOException { + super(in); + decommissionAttribute = new DecommissionAttribute(in); + timeout = in.readTimeValue(); + } + + /** + * Sets the decommission attribute name for decommission request + * + * @param timeout of the decommission attribute + * @return the current object + */ + public DeleteDecommissionRequest setName(TimeValue timeout) { + this.timeout = timeout; + return this; + } + + /** + * @return Returns the timeout value. + */ + public TimeValue getTimeout() { + return this.timeout; + } + + @Override + public ActionRequestValidationException validate() { + ActionRequestValidationException validationException = null; + if (decommissionAttribute.attributeName() == null || decommissionAttribute.attributeName().isEmpty()) { + validationException = addValidationError("attribute name is missing", validationException); + } + if (decommissionAttribute.attributeValue() == null || decommissionAttribute.attributeValue().isEmpty()) { + validationException = addValidationError("attribute value is missing", validationException); + } + return validationException; + } + + /** + * @param timeout Sets the timeout value. + */ + public void setTimeout(TimeValue timeout) { + this.timeout = timeout; + } + + /** + * Sets decommission attribute for decommission request + * + * @param decommissionAttribute values that needs to be decommissioned + * @return the current object + */ + public DeleteDecommissionRequest setDecommissionAttribute(DecommissionAttribute decommissionAttribute) { + this.decommissionAttribute = decommissionAttribute; + return this; + } + + /** + * @return Returns the decommission attribute values + */ + public DecommissionAttribute getDecommissionAttribute() { + return this.decommissionAttribute; + } + + @Override + public void writeTo(StreamOutput out) throws IOException { + super.writeTo(out); + decommissionAttribute.writeTo(out); + out.writeTimeValue(timeout); + } + + @Override + public String toString() { + return "DeleteDecommissionRequest{" + "timeOut='" + this.timeout + '\'' + ", decommissionAttribute=" + decommissionAttribute + '}'; + } +} diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java new file mode 100644 index 0000000000000..e6afd9ced7586 --- /dev/null +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java @@ -0,0 +1,43 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.action.admin.cluster.decommission.awareness.delete; + +import org.opensearch.action.support.clustermanager.ClusterManagerNodeOperationRequestBuilder; +import org.opensearch.client.OpenSearchClient; +import org.opensearch.cluster.decommission.DecommissionAttribute; +import org.opensearch.common.unit.TimeValue; + +public class DeleteDecommissionRequestBuilder extends ClusterManagerNodeOperationRequestBuilder< + DeleteDecommissionRequest, + DeleteDecommissionResponse, + DeleteDecommissionRequestBuilder> { + + public DeleteDecommissionRequestBuilder(OpenSearchClient client, DeleteDecommissionAction action) { + super(client, action, new DeleteDecommissionRequest()); + } + + /** + * + * @param timeout timeout value + * @return current object + */ + public DeleteDecommissionRequestBuilder setTimeout(TimeValue timeout) { + request.setTimeout(timeout); + return this; + } + + /** + * @param decommissionAttribute decommission attribute + * @return current object + */ + public DeleteDecommissionRequestBuilder setDecommissionedAttribute(DecommissionAttribute decommissionAttribute) { + request.setDecommissionAttribute(decommissionAttribute); + return this; + } +} diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java new file mode 100644 index 0000000000000..a523a025b51f6 --- /dev/null +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java @@ -0,0 +1,32 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.action.admin.cluster.decommission.awareness.delete; + +import org.opensearch.action.support.master.AcknowledgedResponse; +import org.opensearch.common.io.stream.StreamInput; +import org.opensearch.common.io.stream.StreamOutput; +import org.opensearch.common.xcontent.ToXContentObject; + +import java.io.IOException; + +public class DeleteDecommissionResponse extends AcknowledgedResponse implements ToXContentObject { + + DeleteDecommissionResponse(StreamInput in) throws IOException { + super(in); + } + + DeleteDecommissionResponse(boolean acknowledged) { + super(acknowledged); + } + + @Override + public void writeTo(StreamOutput out) throws IOException { + super.writeTo(out); + } +} diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java new file mode 100644 index 0000000000000..91685088c173d --- /dev/null +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java @@ -0,0 +1,95 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.action.admin.cluster.decommission.awareness.delete; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.action.ActionListener; +import org.opensearch.action.admin.cluster.configuration.TransportClearVotingConfigExclusionsAction; +import org.opensearch.action.support.ActionFilters; +import org.opensearch.action.support.clustermanager.TransportClusterManagerNodeAction; +import org.opensearch.cluster.ClusterState; +import org.opensearch.cluster.block.ClusterBlockException; +import org.opensearch.cluster.block.ClusterBlockLevel; +import org.opensearch.cluster.metadata.IndexNameExpressionResolver; +import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.inject.Inject; +import org.opensearch.common.io.stream.StreamInput; +import org.opensearch.threadpool.ThreadPool; +import org.opensearch.transport.TransportService; + +import java.io.IOException; + +public class TransportDeleteDecommissionAction extends TransportClusterManagerNodeAction< + DeleteDecommissionRequest, + DeleteDecommissionResponse> { + + private static final Logger logger = LogManager.getLogger(TransportDeleteDecommissionAction.class); + + // private final DecommissionService decommissionService; + + private final TransportClearVotingConfigExclusionsAction clearExclusionsAction; + + @Inject + public TransportDeleteDecommissionAction( + TransportService transportService, + ClusterService clusterService, + // DecommissionService decommissionService, + ThreadPool threadPool, + ActionFilters actionFilters, + IndexNameExpressionResolver indexNameExpressionResolver, + TransportClearVotingConfigExclusionsAction clearExclusionsAction + ) { + super( + DeleteDecommissionAction.NAME, + transportService, + clusterService, + threadPool, + actionFilters, + DeleteDecommissionRequest::new, + indexNameExpressionResolver + ); + // TODO: Enable when service changes are merged. + // this.decommissionService = decommissionService; + this.clearExclusionsAction = clearExclusionsAction; + } + + @Override + protected String executor() { + return ThreadPool.Names.SAME; + } + + @Override + protected DeleteDecommissionResponse read(StreamInput in) throws IOException { + return new DeleteDecommissionResponse(in); + } + + @Override + protected ClusterBlockException checkBlock(DeleteDecommissionRequest request, ClusterState state) { + return state.blocks().globalBlockedException(ClusterBlockLevel.METADATA_WRITE); + } + + @Override + protected void masterOperation( + DeleteDecommissionRequest request, + ClusterState state, + ActionListener listener + ) { + // TODO: Enable when service class change is merged + logger.info("Received delete decommission Request"); + // decommissionService.registerRecommissionAttribute( + // request.getDecommissionAttribute(), + // ActionListener.delegateFailure( + // listener, + // (delegatedListener, response) -> delegatedListener.onResponse(new DeleteDecommissionResponse(response.isAcknowledged())) + // ) + // ); + listener.onResponse(new DeleteDecommissionResponse(true)); + } +} diff --git a/server/src/main/java/org/opensearch/client/ClusterAdminClient.java b/server/src/main/java/org/opensearch/client/ClusterAdminClient.java index 7a7b98bf724f6..12ac8c1cb9296 100644 --- a/server/src/main/java/org/opensearch/client/ClusterAdminClient.java +++ b/server/src/main/java/org/opensearch/client/ClusterAdminClient.java @@ -37,6 +37,9 @@ import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainRequest; import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainRequestBuilder; import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainResponse; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequestBuilder; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionResponse; import org.opensearch.action.admin.cluster.health.ClusterHealthRequest; import org.opensearch.action.admin.cluster.health.ClusterHealthRequestBuilder; import org.opensearch.action.admin.cluster.health.ClusterHealthResponse; @@ -791,4 +794,19 @@ public interface ClusterAdminClient extends OpenSearchClient { * Delete specified dangling indices. */ ActionFuture deleteDanglingIndex(DeleteDanglingIndexRequest request); + + /** + * Decommission a node + */ + ActionFuture deleteDecommission(DeleteDecommissionRequest request); + + /** + * Decommission a node + */ + void deleteDecommission(DeleteDecommissionRequest request, ActionListener listener); + + /** + * Decommission a node + */ + DeleteDecommissionRequestBuilder prepareDeleteDecommission(); } diff --git a/server/src/main/java/org/opensearch/client/Requests.java b/server/src/main/java/org/opensearch/client/Requests.java index b04de7830a780..2fdfabe5989cc 100644 --- a/server/src/main/java/org/opensearch/client/Requests.java +++ b/server/src/main/java/org/opensearch/client/Requests.java @@ -32,6 +32,7 @@ package org.opensearch.client; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; import org.opensearch.action.admin.cluster.health.ClusterHealthRequest; import org.opensearch.action.admin.cluster.node.info.NodesInfoRequest; import org.opensearch.action.admin.cluster.node.stats.NodesStatsRequest; @@ -539,6 +540,13 @@ public static DeleteSnapshotRequest deleteSnapshotRequest(String repository, Str return new DeleteSnapshotRequest(repository, snapshots); } + /** + * Creates a new delete decommission request. + */ + public static DeleteDecommissionRequest deleteDecommissionRequest() { + return new DeleteDecommissionRequest(); + } + /** * Get status of snapshots * diff --git a/server/src/main/java/org/opensearch/client/support/AbstractClient.java b/server/src/main/java/org/opensearch/client/support/AbstractClient.java index bc80a2ba92bf8..55eafcc950525 100644 --- a/server/src/main/java/org/opensearch/client/support/AbstractClient.java +++ b/server/src/main/java/org/opensearch/client/support/AbstractClient.java @@ -43,6 +43,10 @@ import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainRequest; import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainRequestBuilder; import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainResponse; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionAction; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequestBuilder; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionResponse; import org.opensearch.action.admin.cluster.health.ClusterHealthAction; import org.opensearch.action.admin.cluster.health.ClusterHealthRequest; import org.opensearch.action.admin.cluster.health.ClusterHealthRequestBuilder; @@ -1264,6 +1268,21 @@ public ActionFuture deleteDanglingIndex(DeleteDanglingInde return execute(DeleteDanglingIndexAction.INSTANCE, request); } + @Override + public ActionFuture deleteDecommission(DeleteDecommissionRequest request) { + return execute(DeleteDecommissionAction.INSTANCE, request); + } + + @Override + public void deleteDecommission(DeleteDecommissionRequest request, ActionListener listener) { + execute(DeleteDecommissionAction.INSTANCE, request, listener); + } + + @Override + public DeleteDecommissionRequestBuilder prepareDeleteDecommission() { + return new DeleteDecommissionRequestBuilder(this, DeleteDecommissionAction.INSTANCE); + } + @Override public void deleteDanglingIndex(DeleteDanglingIndexRequest request, ActionListener listener) { execute(DeleteDanglingIndexAction.INSTANCE, request, listener); diff --git a/server/src/main/java/org/opensearch/cluster/decommission/DecommissionAttribute.java b/server/src/main/java/org/opensearch/cluster/decommission/DecommissionAttribute.java new file mode 100644 index 0000000000000..7abcd18ac7c38 --- /dev/null +++ b/server/src/main/java/org/opensearch/cluster/decommission/DecommissionAttribute.java @@ -0,0 +1,107 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.cluster.decommission; + +import org.opensearch.common.io.stream.StreamInput; +import org.opensearch.common.io.stream.StreamOutput; +import org.opensearch.common.io.stream.Writeable; + +import java.io.IOException; +import java.util.Objects; + +public final class DecommissionAttribute implements Writeable { + private final String attributeName; + private final String attributeValue; + + /** + * Update the attribute value for a given attribute name to decommission + * + * @param decommissionAttribute current decommissioned attribute object + * @param attributeValue attribute value to be updated with + */ + public DecommissionAttribute(DecommissionAttribute decommissionAttribute, String attributeValue) { + this(decommissionAttribute.attributeName, attributeValue); + } + + /** + * Constructs new decommission attribute name value pair + * + * @param attributeName attribute name + * @param attributeValue attribute value + */ + public DecommissionAttribute(String attributeName, String attributeValue) { + this.attributeName = attributeName; + this.attributeValue = attributeValue; + } + + /** + * Returns attribute name + * + * @return attributeName + */ + public String attributeName() { + return this.attributeName; + } + + /** + * Returns attribute value + * + * @return attributeValue + */ + public String attributeValue() { + return this.attributeValue; + } + + public DecommissionAttribute(StreamInput in) throws IOException { + attributeName = in.readString(); + attributeValue = in.readString(); + } + + /** + * Writes decommission attribute name value to stream output + * + * @param out stream output + */ + @Override + public void writeTo(StreamOutput out) throws IOException { + out.writeString(attributeName); + out.writeString(attributeValue); + } + + /** + * Checks if this instance is equal to the other instance in attributeName but differ in attribute value {@link #attributeValue}. + * + * @param other other decommission attribute name value + * @return {@code true} if both instances equal in attributeName fields but the attributeValue field + */ + public boolean equalsIgnoreValues(DecommissionAttribute other) { + return attributeName.equals(other.attributeName); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + DecommissionAttribute that = (DecommissionAttribute) o; + + if (!attributeName.equals(that.attributeName)) return false; + return attributeValue.equals(that.attributeValue); + } + + @Override + public int hashCode() { + return Objects.hash(attributeName, attributeValue); + } + + @Override + public String toString() { + return "DecommissionAttribute{" + "attributeName='" + attributeName + '\'' + ", attributeValue='" + attributeValue + '\'' + '}'; + } +} diff --git a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java new file mode 100644 index 0000000000000..197107f5b44d2 --- /dev/null +++ b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java @@ -0,0 +1,66 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.rest.action.admin.cluster; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; +import org.opensearch.client.Requests; +import org.opensearch.client.node.NodeClient; +import org.opensearch.cluster.decommission.DecommissionAttribute; +import org.opensearch.common.unit.TimeValue; +import org.opensearch.rest.BaseRestHandler; +import org.opensearch.rest.RestRequest; +import org.opensearch.rest.action.RestToXContentListener; + +import java.io.IOException; +import java.util.List; + +import static java.util.Collections.singletonList; +import static org.opensearch.rest.RestRequest.Method.DELETE; + +public class RestDeleteDecommissionAction extends BaseRestHandler { + private static final Logger logger = LogManager.getLogger(RestDeleteDecommissionAction.class); + + private static final TimeValue DEFAULT_TIMEOUT = TimeValue.timeValueSeconds(300L); + + @Override + public List routes() { + return singletonList(new Route(DELETE, "/_cluster/decommission/awareness/{awareness_attribute_name}/{awareness_attribute_value}")); + } + + @Override + public String getName() { + return "delete_decommission_action"; + } + + @Override + protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { + DeleteDecommissionRequest deleteDecommissionRequest = createRequest(request); + return channel -> client.admin().cluster().deleteDecommission(deleteDecommissionRequest, new RestToXContentListener<>(channel)); + } + + DeleteDecommissionRequest createRequest(RestRequest request) { + String attributeName = null; + String attributeValue = null; + DeleteDecommissionRequest deleteDecommissionRequest = Requests.deleteDecommissionRequest(); + if (request.hasParam("awareness_attribute_name")) { + attributeName = request.param("awareness_attribute_name"); + } + + if (request.hasParam("awareness_attribute_value")) { + attributeValue = request.param("awareness_attribute_value"); + } + deleteDecommissionRequest.setDecommissionAttribute(new DecommissionAttribute(attributeName, attributeValue)); + deleteDecommissionRequest.setTimeout( + TimeValue.parseTimeValue(request.param("timeout"), DEFAULT_TIMEOUT, getClass().getSimpleName() + ".timeout") + ); + return deleteDecommissionRequest; + } +} diff --git a/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java b/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java new file mode 100644 index 0000000000000..8f7f231914e7d --- /dev/null +++ b/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java @@ -0,0 +1,74 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.rest.action.admin.cluster; + +import org.junit.Before; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; +import org.opensearch.common.unit.TimeValue; +import org.opensearch.rest.RestHandler; +import org.opensearch.rest.RestRequest; +import org.opensearch.test.rest.FakeRestRequest; +import org.opensearch.test.rest.RestActionTestCase; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class RestDeleteDecommissionActionTests extends RestActionTestCase { + + private RestDeleteDecommissionAction action; + + @Before + public void setupAction() { + action = new RestDeleteDecommissionAction(); + controller().registerHandler(action); + } + + public void testRoutes() { + List routes = action.routes(); + RestHandler.Route route = routes.get(0); + assertEquals(route.getMethod(), RestRequest.Method.DELETE); + assertEquals("/_cluster/decommission/awareness/{awareness_attribute_name}/{awareness_attribute_value}", route.getPath()); + } + + public void testCreateRequest() { + Map params = new HashMap<>(); + params.put("awareness_attribute_name", "zone"); + params.put("awareness_attribute_value", "zone-1"); + params.put("timeout", "10s"); + + RestRequest deprecatedRequest = buildRestRequest(params); + + DeleteDecommissionRequest request = action.createRequest(deprecatedRequest); + assertEquals(request.getDecommissionAttribute().attributeName(), "zone"); + assertEquals(request.getDecommissionAttribute().attributeValue(), "zone-1"); + assertEquals(request.getTimeout(), TimeValue.timeValueSeconds(10L)); + } + + public void testCreateRequestWithDefaultTimeout() { + Map params = new HashMap<>(); + params.put("awareness_attribute_name", "zone"); + params.put("awareness_attribute_value", "zone-1"); + + RestRequest deprecatedRequest = buildRestRequest(params); + + DeleteDecommissionRequest request = action.createRequest(deprecatedRequest); + assertEquals(request.getDecommissionAttribute().attributeName(), "zone"); + assertEquals(request.getDecommissionAttribute().attributeValue(), "zone-1"); + assertEquals(request.getTimeout(), TimeValue.timeValueSeconds(300L)); + } + + private FakeRestRequest buildRestRequest(Map params) { + return new FakeRestRequest.Builder(xContentRegistry()).withMethod(RestRequest.Method.DELETE) + .withPath("/_cluster/decommission/awareness/{awareness_attribute_name}/{awareness_attribute_value}") + .withParams(params) + .build(); + } + +} From 9af0231f75692dbb2bcdde4443b2efc0cf0d7402 Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Thu, 1 Sep 2022 17:33:30 +0530 Subject: [PATCH 02/16] Remove attribute for Delete decommission Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- .../delete/DeleteDecommissionRequest.java | 69 +------------------ .../DeleteDecommissionRequestBuilder.java | 19 ----- .../TransportDeleteDecommissionAction.java | 18 +---- .../cluster/RestDeleteDecommissionAction.java | 23 +------ 4 files changed, 5 insertions(+), 124 deletions(-) diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java index 30c1cbf78c9fc..8804895d9a6a1 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java @@ -10,96 +10,31 @@ import org.opensearch.action.ActionRequestValidationException; import org.opensearch.action.support.clustermanager.ClusterManagerNodeRequest; -import org.opensearch.cluster.decommission.DecommissionAttribute; import org.opensearch.common.io.stream.StreamInput; import org.opensearch.common.io.stream.StreamOutput; -import org.opensearch.common.unit.TimeValue; import java.io.IOException; -import static org.opensearch.action.ValidateActions.addValidationError; - public class DeleteDecommissionRequest extends ClusterManagerNodeRequest { - private DecommissionAttribute decommissionAttribute; - private TimeValue timeout; public DeleteDecommissionRequest() {} - public DeleteDecommissionRequest(DecommissionAttribute decommissionAttribute, TimeValue timeOut) { - this.decommissionAttribute = decommissionAttribute; - this.timeout = timeOut; - } - public DeleteDecommissionRequest(StreamInput in) throws IOException { super(in); - decommissionAttribute = new DecommissionAttribute(in); - timeout = in.readTimeValue(); - } - - /** - * Sets the decommission attribute name for decommission request - * - * @param timeout of the decommission attribute - * @return the current object - */ - public DeleteDecommissionRequest setName(TimeValue timeout) { - this.timeout = timeout; - return this; - } - - /** - * @return Returns the timeout value. - */ - public TimeValue getTimeout() { - return this.timeout; } @Override public ActionRequestValidationException validate() { - ActionRequestValidationException validationException = null; - if (decommissionAttribute.attributeName() == null || decommissionAttribute.attributeName().isEmpty()) { - validationException = addValidationError("attribute name is missing", validationException); - } - if (decommissionAttribute.attributeValue() == null || decommissionAttribute.attributeValue().isEmpty()) { - validationException = addValidationError("attribute value is missing", validationException); - } - return validationException; - } - - /** - * @param timeout Sets the timeout value. - */ - public void setTimeout(TimeValue timeout) { - this.timeout = timeout; - } - - /** - * Sets decommission attribute for decommission request - * - * @param decommissionAttribute values that needs to be decommissioned - * @return the current object - */ - public DeleteDecommissionRequest setDecommissionAttribute(DecommissionAttribute decommissionAttribute) { - this.decommissionAttribute = decommissionAttribute; - return this; - } - - /** - * @return Returns the decommission attribute values - */ - public DecommissionAttribute getDecommissionAttribute() { - return this.decommissionAttribute; + return null; } @Override public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); - decommissionAttribute.writeTo(out); - out.writeTimeValue(timeout); } @Override public String toString() { - return "DeleteDecommissionRequest{" + "timeOut='" + this.timeout + '\'' + ", decommissionAttribute=" + decommissionAttribute + '}'; + return "DeleteDecommissionRequest"; } } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java index e6afd9ced7586..b82e923ff423e 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java @@ -21,23 +21,4 @@ public class DeleteDecommissionRequestBuilder extends ClusterManagerNodeOperatio public DeleteDecommissionRequestBuilder(OpenSearchClient client, DeleteDecommissionAction action) { super(client, action, new DeleteDecommissionRequest()); } - - /** - * - * @param timeout timeout value - * @return current object - */ - public DeleteDecommissionRequestBuilder setTimeout(TimeValue timeout) { - request.setTimeout(timeout); - return this; - } - - /** - * @param decommissionAttribute decommission attribute - * @return current object - */ - public DeleteDecommissionRequestBuilder setDecommissionedAttribute(DecommissionAttribute decommissionAttribute) { - request.setDecommissionAttribute(decommissionAttribute); - return this; - } } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java index 91685088c173d..13a8146feb485 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java @@ -32,19 +32,13 @@ public class TransportDeleteDecommissionAction extends TransportClusterManagerNo private static final Logger logger = LogManager.getLogger(TransportDeleteDecommissionAction.class); - // private final DecommissionService decommissionService; - - private final TransportClearVotingConfigExclusionsAction clearExclusionsAction; - @Inject public TransportDeleteDecommissionAction( TransportService transportService, ClusterService clusterService, - // DecommissionService decommissionService, ThreadPool threadPool, ActionFilters actionFilters, - IndexNameExpressionResolver indexNameExpressionResolver, - TransportClearVotingConfigExclusionsAction clearExclusionsAction + IndexNameExpressionResolver indexNameExpressionResolver ) { super( DeleteDecommissionAction.NAME, @@ -55,9 +49,6 @@ public TransportDeleteDecommissionAction( DeleteDecommissionRequest::new, indexNameExpressionResolver ); - // TODO: Enable when service changes are merged. - // this.decommissionService = decommissionService; - this.clearExclusionsAction = clearExclusionsAction; } @Override @@ -83,13 +74,6 @@ protected void masterOperation( ) { // TODO: Enable when service class change is merged logger.info("Received delete decommission Request"); - // decommissionService.registerRecommissionAttribute( - // request.getDecommissionAttribute(), - // ActionListener.delegateFailure( - // listener, - // (delegatedListener, response) -> delegatedListener.onResponse(new DeleteDecommissionResponse(response.isAcknowledged())) - // ) - // ); listener.onResponse(new DeleteDecommissionResponse(true)); } } diff --git a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java index 197107f5b44d2..074e4bfa2ea3b 100644 --- a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java @@ -13,8 +13,6 @@ import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; import org.opensearch.client.Requests; import org.opensearch.client.node.NodeClient; -import org.opensearch.cluster.decommission.DecommissionAttribute; -import org.opensearch.common.unit.TimeValue; import org.opensearch.rest.BaseRestHandler; import org.opensearch.rest.RestRequest; import org.opensearch.rest.action.RestToXContentListener; @@ -26,13 +24,10 @@ import static org.opensearch.rest.RestRequest.Method.DELETE; public class RestDeleteDecommissionAction extends BaseRestHandler { - private static final Logger logger = LogManager.getLogger(RestDeleteDecommissionAction.class); - - private static final TimeValue DEFAULT_TIMEOUT = TimeValue.timeValueSeconds(300L); @Override public List routes() { - return singletonList(new Route(DELETE, "/_cluster/decommission/awareness/{awareness_attribute_name}/{awareness_attribute_value}")); + return singletonList(new Route(DELETE, "/_cluster/decommission/awareness")); } @Override @@ -47,20 +42,6 @@ protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient cli } DeleteDecommissionRequest createRequest(RestRequest request) { - String attributeName = null; - String attributeValue = null; - DeleteDecommissionRequest deleteDecommissionRequest = Requests.deleteDecommissionRequest(); - if (request.hasParam("awareness_attribute_name")) { - attributeName = request.param("awareness_attribute_name"); - } - - if (request.hasParam("awareness_attribute_value")) { - attributeValue = request.param("awareness_attribute_value"); - } - deleteDecommissionRequest.setDecommissionAttribute(new DecommissionAttribute(attributeName, attributeValue)); - deleteDecommissionRequest.setTimeout( - TimeValue.parseTimeValue(request.param("timeout"), DEFAULT_TIMEOUT, getClass().getSimpleName() + ".timeout") - ); - return deleteDecommissionRequest; + return Requests.deleteDecommissionRequest(); } } From 73c55bc6b78a8934435461382163337ae1a7ce9d Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Thu, 1 Sep 2022 17:57:00 +0530 Subject: [PATCH 03/16] Fix tests Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- .../cluster/RestDeleteDecommissionAction.java | 8 +---- .../RestDeleteDecommissionActionTests.java | 34 +++---------------- 2 files changed, 6 insertions(+), 36 deletions(-) diff --git a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java index 074e4bfa2ea3b..bad6ddf7b6b4c 100644 --- a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java @@ -8,8 +8,6 @@ package org.opensearch.rest.action.admin.cluster; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; import org.opensearch.client.Requests; import org.opensearch.client.node.NodeClient; @@ -37,11 +35,7 @@ public String getName() { @Override protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { - DeleteDecommissionRequest deleteDecommissionRequest = createRequest(request); + DeleteDecommissionRequest deleteDecommissionRequest = Requests.deleteDecommissionRequest(); return channel -> client.admin().cluster().deleteDecommission(deleteDecommissionRequest, new RestToXContentListener<>(channel)); } - - DeleteDecommissionRequest createRequest(RestRequest request) { - return Requests.deleteDecommissionRequest(); - } } diff --git a/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java b/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java index 8f7f231914e7d..ff7add475476a 100644 --- a/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java +++ b/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java @@ -10,7 +10,6 @@ import org.junit.Before; import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; -import org.opensearch.common.unit.TimeValue; import org.opensearch.rest.RestHandler; import org.opensearch.rest.RestRequest; import org.opensearch.test.rest.FakeRestRequest; @@ -34,41 +33,18 @@ public void testRoutes() { List routes = action.routes(); RestHandler.Route route = routes.get(0); assertEquals(route.getMethod(), RestRequest.Method.DELETE); - assertEquals("/_cluster/decommission/awareness/{awareness_attribute_name}/{awareness_attribute_value}", route.getPath()); + assertEquals("/_cluster/decommission/awareness", route.getPath()); } public void testCreateRequest() { - Map params = new HashMap<>(); - params.put("awareness_attribute_name", "zone"); - params.put("awareness_attribute_value", "zone-1"); - params.put("timeout", "10s"); - - RestRequest deprecatedRequest = buildRestRequest(params); - - DeleteDecommissionRequest request = action.createRequest(deprecatedRequest); - assertEquals(request.getDecommissionAttribute().attributeName(), "zone"); - assertEquals(request.getDecommissionAttribute().attributeValue(), "zone-1"); - assertEquals(request.getTimeout(), TimeValue.timeValueSeconds(10L)); - } - - public void testCreateRequestWithDefaultTimeout() { - Map params = new HashMap<>(); - params.put("awareness_attribute_name", "zone"); - params.put("awareness_attribute_value", "zone-1"); - - RestRequest deprecatedRequest = buildRestRequest(params); - + RestRequest deprecatedRequest = buildRestRequest(); DeleteDecommissionRequest request = action.createRequest(deprecatedRequest); - assertEquals(request.getDecommissionAttribute().attributeName(), "zone"); - assertEquals(request.getDecommissionAttribute().attributeValue(), "zone-1"); - assertEquals(request.getTimeout(), TimeValue.timeValueSeconds(300L)); + assertNotNull(request); } - private FakeRestRequest buildRestRequest(Map params) { + private FakeRestRequest buildRestRequest() { return new FakeRestRequest.Builder(xContentRegistry()).withMethod(RestRequest.Method.DELETE) - .withPath("/_cluster/decommission/awareness/{awareness_attribute_name}/{awareness_attribute_value}") - .withParams(params) + .withPath("/_cluster/decommission/awareness") .build(); } - } From 88ed4866409979d17dddbde1baefebe5ebb425b2 Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Wed, 7 Sep 2022 10:22:46 +0530 Subject: [PATCH 04/16] Add Tests. Spotless fix Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- CHANGELOG.md | 1 + .../client/RestHighLevelClientTests.java | 3 +- ...cluster.delete_decommission_awareness.json | 19 ++++++++++++ .../DeleteDecommissionRequestBuilder.java | 2 -- .../delete/DeleteDecommissionResponse.java | 4 +-- .../TransportDeleteDecommissionAction.java | 1 - .../cluster/RestDeleteDecommissionAction.java | 6 +++- .../DeleteDecommissionRequestTests.java | 24 +++++++++++++++ .../DeleteDecommissionResponseTests.java | 30 +++++++++++++++++++ .../RestDeleteDecommissionActionTests.java | 5 +--- 10 files changed, 84 insertions(+), 11 deletions(-) create mode 100644 rest-api-spec/src/main/resources/rest-api-spec/api/cluster.delete_decommission_awareness.json create mode 100644 server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java create mode 100644 server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java diff --git a/CHANGELOG.md b/CHANGELOG.md index b9082ed039712..30a1605fb1107 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Fix NoSuchFileExceptions with segment replication when computing primary metadata snapshots ([#4366](https://github.com/opensearch-project/OpenSearch/pull/4366)) - [Segment Replication] Update flaky testOnNewCheckpointFromNewPrimaryCancelOngoingReplication unit test ([#4414](https://github.com/opensearch-project/OpenSearch/pull/4414)) - Fixed the `_cat/shards/10_basic.yml` test cases fix. +- Recommissioning of zone. REST layer support. ([#4321](https://github.com/opensearch-project/OpenSearch/pull/4321)) ### Security - CVE-2022-25857 org.yaml:snakeyaml DOS vulnerability ([#4341](https://github.com/opensearch-project/OpenSearch/pull/4341)) diff --git a/client/rest-high-level/src/test/java/org/opensearch/client/RestHighLevelClientTests.java b/client/rest-high-level/src/test/java/org/opensearch/client/RestHighLevelClientTests.java index cdd63743f2644..6b4aa0ee48dfa 100644 --- a/client/rest-high-level/src/test/java/org/opensearch/client/RestHighLevelClientTests.java +++ b/client/rest-high-level/src/test/java/org/opensearch/client/RestHighLevelClientTests.java @@ -887,7 +887,8 @@ public void testApiNamingConventions() throws Exception { "nodes.usage", "nodes.reload_secure_settings", "search_shards", - "remote_store.restore", }; + "remote_store.restore", + "cluster.delete_decommission_awareness"}; List booleanReturnMethods = Arrays.asList("security.enable_user", "security.disable_user", "security.change_password"); Set deprecatedMethods = new HashSet<>(); deprecatedMethods.add("indices.force_merge"); diff --git a/rest-api-spec/src/main/resources/rest-api-spec/api/cluster.delete_decommission_awareness.json b/rest-api-spec/src/main/resources/rest-api-spec/api/cluster.delete_decommission_awareness.json new file mode 100644 index 0000000000000..eb3af8cc845f0 --- /dev/null +++ b/rest-api-spec/src/main/resources/rest-api-spec/api/cluster.delete_decommission_awareness.json @@ -0,0 +1,19 @@ +{ + "cluster.delete_decommission_awareness": { + "documentation": { + "url": "https://opensearch.org/docs/latest/opensearch/rest-api/decommission/", + "description": "Delete any existing decommission." + }, + "stability": "experimental", + "url": { + "paths": [ + { + "path": "/_cluster/decommission/awareness/", + "methods": [ + "DELETE" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java index b82e923ff423e..50e282450e820 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java @@ -10,8 +10,6 @@ import org.opensearch.action.support.clustermanager.ClusterManagerNodeOperationRequestBuilder; import org.opensearch.client.OpenSearchClient; -import org.opensearch.cluster.decommission.DecommissionAttribute; -import org.opensearch.common.unit.TimeValue; public class DeleteDecommissionRequestBuilder extends ClusterManagerNodeOperationRequestBuilder< DeleteDecommissionRequest, diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java index a523a025b51f6..0dc8e9078ca1b 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java @@ -17,11 +17,11 @@ public class DeleteDecommissionResponse extends AcknowledgedResponse implements ToXContentObject { - DeleteDecommissionResponse(StreamInput in) throws IOException { + public DeleteDecommissionResponse(StreamInput in) throws IOException { super(in); } - DeleteDecommissionResponse(boolean acknowledged) { + public DeleteDecommissionResponse(boolean acknowledged) { super(acknowledged); } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java index 13a8146feb485..e96007c069d71 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java @@ -11,7 +11,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.opensearch.action.ActionListener; -import org.opensearch.action.admin.cluster.configuration.TransportClearVotingConfigExclusionsAction; import org.opensearch.action.support.ActionFilters; import org.opensearch.action.support.clustermanager.TransportClusterManagerNodeAction; import org.opensearch.cluster.ClusterState; diff --git a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java index bad6ddf7b6b4c..f5b687ca997a6 100644 --- a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java @@ -35,7 +35,11 @@ public String getName() { @Override protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { - DeleteDecommissionRequest deleteDecommissionRequest = Requests.deleteDecommissionRequest(); + DeleteDecommissionRequest deleteDecommissionRequest = createRequest(); return channel -> client.admin().cluster().deleteDecommission(deleteDecommissionRequest, new RestToXContentListener<>(channel)); } + + DeleteDecommissionRequest createRequest() { + return Requests.deleteDecommissionRequest(); + } } diff --git a/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java new file mode 100644 index 0000000000000..b097c606b902b --- /dev/null +++ b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java @@ -0,0 +1,24 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.action.admin.cluster.decommission.awareness; + +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; +import org.opensearch.test.OpenSearchTestCase; + +import java.io.IOException; + +public class DeleteDecommissionRequestTests extends OpenSearchTestCase { + + public void testSerialization() throws IOException { + final DeleteDecommissionRequest originalRequest = new DeleteDecommissionRequest(); + + final DeleteDecommissionRequest deserialized = copyWriteable(originalRequest, writableRegistry(), DeleteDecommissionRequest::new); + assertEquals(deserialized, originalRequest); + } +} diff --git a/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java new file mode 100644 index 0000000000000..b56c6ad25ebc5 --- /dev/null +++ b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java @@ -0,0 +1,30 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.action.admin.cluster.decommission.awareness; + +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionResponse; +import org.opensearch.test.OpenSearchTestCase; + +import java.io.IOException; + +public class DeleteDecommissionResponseTests extends OpenSearchTestCase { + + public void testSerialization() throws IOException { + final DeleteDecommissionResponse originalResponse = new DeleteDecommissionResponse(true); + + final DeleteDecommissionResponse deserialized = copyWriteable( + originalResponse, + writableRegistry(), + DeleteDecommissionResponse::new + ); + assertEquals(deserialized, originalResponse); + + } + +} diff --git a/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java b/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java index ff7add475476a..6b6e946e97547 100644 --- a/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java +++ b/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java @@ -15,9 +15,7 @@ import org.opensearch.test.rest.FakeRestRequest; import org.opensearch.test.rest.RestActionTestCase; -import java.util.HashMap; import java.util.List; -import java.util.Map; public class RestDeleteDecommissionActionTests extends RestActionTestCase { @@ -37,8 +35,7 @@ public void testRoutes() { } public void testCreateRequest() { - RestRequest deprecatedRequest = buildRestRequest(); - DeleteDecommissionRequest request = action.createRequest(deprecatedRequest); + DeleteDecommissionRequest request = action.createRequest(); assertNotNull(request); } From aef6a790a718717cf7d42de76b5f9d7f2badd50d Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Wed, 7 Sep 2022 10:29:48 +0530 Subject: [PATCH 05/16] Merge with Main Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30a1605fb1107..0084d5692b067 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,7 +46,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Fix NoSuchFileExceptions with segment replication when computing primary metadata snapshots ([#4366](https://github.com/opensearch-project/OpenSearch/pull/4366)) - [Segment Replication] Update flaky testOnNewCheckpointFromNewPrimaryCancelOngoingReplication unit test ([#4414](https://github.com/opensearch-project/OpenSearch/pull/4414)) - Fixed the `_cat/shards/10_basic.yml` test cases fix. -- Recommissioning of zone. REST layer support. ([#4321](https://github.com/opensearch-project/OpenSearch/pull/4321)) +- [Segment Replication] Fix timeout issue by calculating time needed to process getSegmentFiles ([#4426](https://github.com/opensearch-project/OpenSearch/pull/4426)) ### Security - CVE-2022-25857 org.yaml:snakeyaml DOS vulnerability ([#4341](https://github.com/opensearch-project/OpenSearch/pull/4341)) From b60379f023b18f1e1df2f4b34eab67c2540b49bb Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Wed, 7 Sep 2022 11:13:56 +0530 Subject: [PATCH 06/16] Merge with main --- CHANGELOG.md | 1 + .../decommission/awareness/DeleteDecommissionResponseTests.java | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8373e9904d7f..a6083af1eedd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - [Segment Replication] Update flaky testOnNewCheckpointFromNewPrimaryCancelOngoingReplication unit test ([#4414](https://github.com/opensearch-project/OpenSearch/pull/4414)) - Fixed the `_cat/shards/10_basic.yml` test cases fix. - [Segment Replication] Fix timeout issue by calculating time needed to process getSegmentFiles ([#4426](https://github.com/opensearch-project/OpenSearch/pull/4426)) +- Recommissioning of zone. REST layer support. ([#4321](https://github.com/opensearch-project/OpenSearch/pull/4321)) ### Security - CVE-2022-25857 org.yaml:snakeyaml DOS vulnerability ([#4341](https://github.com/opensearch-project/OpenSearch/pull/4341)) diff --git a/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java index b56c6ad25ebc5..6281c5f7fe9b3 100644 --- a/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java +++ b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java @@ -26,5 +26,4 @@ public void testSerialization() throws IOException { assertEquals(deserialized, originalResponse); } - } From 02a3d305c8b455600f993a631e504154ebd4cda0 Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Wed, 7 Sep 2022 11:16:51 +0530 Subject: [PATCH 07/16] Add EOL for json file --- .../api/cluster.delete_decommission_awareness.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest-api-spec/src/main/resources/rest-api-spec/api/cluster.delete_decommission_awareness.json b/rest-api-spec/src/main/resources/rest-api-spec/api/cluster.delete_decommission_awareness.json index eb3af8cc845f0..13ea101169e60 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/api/cluster.delete_decommission_awareness.json +++ b/rest-api-spec/src/main/resources/rest-api-spec/api/cluster.delete_decommission_awareness.json @@ -16,4 +16,4 @@ ] } } -} \ No newline at end of file +} From d153129f9f921987a6fc1ae346bc60b2f4734a9c Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Tue, 20 Sep 2022 18:15:30 +0530 Subject: [PATCH 08/16] Take changelog from latest --- CHANGELOG.md | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a6083af1eedd4..15e688ee324d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## [Unreleased] ### Added +- Add support for s390x architecture ([#4001](https://github.com/opensearch-project/OpenSearch/pull/4001)) - Github workflow for changelog verification ([#4085](https://github.com/opensearch-project/OpenSearch/pull/4085)) - Point in time rest layer changes for create and delete PIT API ([#4064](https://github.com/opensearch-project/OpenSearch/pull/4064)) - Added @dreamer-89 as an Opensearch maintainer ([#4342](https://github.com/opensearch-project/OpenSearch/pull/4342)) @@ -12,18 +13,36 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Support for HTTP/2 (server-side) ([#3847](https://github.com/opensearch-project/OpenSearch/pull/3847)) - BWC version 2.2.2 ([#4383](https://github.com/opensearch-project/OpenSearch/pull/4383)) - Support for labels on version bump PRs, skip label support for changelog verifier ([#4391](https://github.com/opensearch-project/OpenSearch/pull/4391)) +- Update previous release bwc version to 2.4.0 ([#4455](https://github.com/opensearch-project/OpenSearch/pull/4455)) +- 2.3.0 release notes ([#4457](https://github.com/opensearch-project/OpenSearch/pull/4457)) +- Added missing javadocs for `:distribution:tools` modules ([#4483](https://github.com/opensearch-project/OpenSearch/pull/4483)) +- Add BWC version 2.3.1 ([#4513](https://github.com/opensearch-project/OpenSearch/pull/4513)) +- [Segment Replication] Add snapshot and restore tests for segment replication feature ([#3993](https://github.com/opensearch-project/OpenSearch/pull/3993)) +- Added missing javadocs for `:example-plugins` modules ([#4540](https://github.com/opensearch-project/OpenSearch/pull/4540)) + +### Dependencies +- Bumps `reactive-streams` from 1.0.3 to 1.0.4 + ### Dependencies - Bumps `org.gradle.test-retry` from 1.4.0 to 1.4.1 +- Bumps `reactor-netty-core` from 1.0.19 to 1.0.22 ### Dependencies - Bumps `com.diffplug.spotless` from 6.9.1 to 6.10.0 - Bumps `xmlbeans` from 5.1.0 to 5.1.1 +- Bumps azure-core-http-netty from 1.12.0 to 1.12.4([#4160](https://github.com/opensearch-project/OpenSearch/pull/4160)) +- Bumps azure-core from 1.27.0 to 1.31.0([#4160](https://github.com/opensearch-project/OpenSearch/pull/4160)) +- Bumps azure-storage-common from 12.16.0 to 12.18.0([#4160](https://github.com/opensearch-project/OpenSearch/pull/4160)) ### Changed - Dependency updates (httpcore, mockito, slf4j, httpasyncclient, commons-codec) ([#4308](https://github.com/opensearch-project/OpenSearch/pull/4308)) - Use RemoteSegmentStoreDirectory instead of RemoteDirectory ([#4240](https://github.com/opensearch-project/OpenSearch/pull/4240)) - Plugin ZIP publication groupId value is configurable ([#4156](https://github.com/opensearch-project/OpenSearch/pull/4156)) +- Weighted round-robin scheduling policy for shard coordination traffic ([#4241](https://github.com/opensearch-project/OpenSearch/pull/4241)) - Add index specific setting for remote repository ([#4253](https://github.com/opensearch-project/OpenSearch/pull/4253)) +- [Segment Replication] Update replicas to commit SegmentInfos instead of relying on SIS files from primary shards. ([#4402](https://github.com/opensearch-project/OpenSearch/pull/4402)) +- [CCR] Add getHistoryOperationsFromTranslog method to fetch the history snapshot from translogs ([#3948](https://github.com/opensearch-project/OpenSearch/pull/3948)) +- [Remote Store] Change behaviour in replica recovery for remote translog enabled indices ([#4318](https://github.com/opensearch-project/OpenSearch/pull/4318)) ### Deprecated @@ -47,7 +66,12 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - [Segment Replication] Update flaky testOnNewCheckpointFromNewPrimaryCancelOngoingReplication unit test ([#4414](https://github.com/opensearch-project/OpenSearch/pull/4414)) - Fixed the `_cat/shards/10_basic.yml` test cases fix. - [Segment Replication] Fix timeout issue by calculating time needed to process getSegmentFiles ([#4426](https://github.com/opensearch-project/OpenSearch/pull/4426)) -- Recommissioning of zone. REST layer support. ([#4321](https://github.com/opensearch-project/OpenSearch/pull/4321)) +- [Bug]: gradle check failing with java heap OutOfMemoryError (([#4328](https://github.com/opensearch-project/OpenSearch/ +- `opensearch.bat` fails to execute when install path includes spaces ([#4362](https://github.com/opensearch-project/OpenSearch/pull/4362)) +- Getting security exception due to access denied 'java.lang.RuntimePermission' 'accessDeclaredMembers' when trying to get snapshot with S3 IRSA ([#4469](https://github.com/opensearch-project/OpenSearch/pull/4469)) +- Fixed flaky test `ResourceAwareTasksTests.testTaskIdPersistsInThreadContext` ([#4484](https://github.com/opensearch-project/OpenSearch/pull/4484)) +- Fixed the ignore_malformed setting to also ignore objects ([#4494](https://github.com/opensearch-project/OpenSearch/pull/4494)) +- Updated jackson to 2.13.4 and snakeyml to 1.32 ([#4556](https://github.com/opensearch-project/OpenSearch/pull/4556)) ### Security - CVE-2022-25857 org.yaml:snakeyaml DOS vulnerability ([#4341](https://github.com/opensearch-project/OpenSearch/pull/4341)) @@ -57,6 +81,10 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Github workflow for changelog verification ([#4085](https://github.com/opensearch-project/OpenSearch/pull/4085)) - Label configuration for dependabot PRs ([#4348](https://github.com/opensearch-project/OpenSearch/pull/4348)) - Added RestLayer Changes for PIT stats ([#4217](https://github.com/opensearch-project/OpenSearch/pull/4217)) +- Added GeoBounds aggregation on GeoShape field type.([#4266](https://github.com/opensearch-project/OpenSearch/pull/4266)) + - Addition of Doc values on the GeoShape Field + - Addition of GeoShape ValueSource level code interfaces for accessing the DocValues. + - Addition of Missing Value feature in the GeoShape Aggregations. ### Changed From 20aab7c2cbde2ec259e3922f89c2e2503666586c Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Tue, 20 Sep 2022 19:46:35 +0530 Subject: [PATCH 09/16] PR comments. Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- CHANGELOG.md | 1 + .../client/RestHighLevelClientTests.java | 2 +- .../delete/DeleteDecommissionRequest.java | 5 - .../TransportDeleteDecommissionAction.java | 2 +- .../opensearch/client/ClusterAdminClient.java | 6 +- .../decommission/DecommissionAttribute.java | 107 ------------------ 6 files changed, 6 insertions(+), 117 deletions(-) delete mode 100644 server/src/main/java/org/opensearch/cluster/decommission/DecommissionAttribute.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 15e688ee324d6..c6c975b2f2ee2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -85,6 +85,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Addition of Doc values on the GeoShape Field - Addition of GeoShape ValueSource level code interfaces for accessing the DocValues. - Addition of Missing Value feature in the GeoShape Aggregations. +- Recommissioning of zone. REST layer support. ([#4321](https://github.com/opensearch-project/OpenSearch/pull/4321)) ### Changed diff --git a/client/rest-high-level/src/test/java/org/opensearch/client/RestHighLevelClientTests.java b/client/rest-high-level/src/test/java/org/opensearch/client/RestHighLevelClientTests.java index 6b4aa0ee48dfa..be7bacdc3eb2a 100644 --- a/client/rest-high-level/src/test/java/org/opensearch/client/RestHighLevelClientTests.java +++ b/client/rest-high-level/src/test/java/org/opensearch/client/RestHighLevelClientTests.java @@ -888,7 +888,7 @@ public void testApiNamingConventions() throws Exception { "nodes.reload_secure_settings", "search_shards", "remote_store.restore", - "cluster.delete_decommission_awareness"}; + "cluster.delete_decommission_awareness" }; List booleanReturnMethods = Arrays.asList("security.enable_user", "security.disable_user", "security.change_password"); Set deprecatedMethods = new HashSet<>(); deprecatedMethods.add("indices.force_merge"); diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java index 8804895d9a6a1..56a3f26a1f2ef 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java @@ -32,9 +32,4 @@ public ActionRequestValidationException validate() { public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); } - - @Override - public String toString() { - return "DeleteDecommissionRequest"; - } } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java index e96007c069d71..ce6f3dc68e25d 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java @@ -66,7 +66,7 @@ protected ClusterBlockException checkBlock(DeleteDecommissionRequest request, Cl } @Override - protected void masterOperation( + protected void clusterManagerOperation( DeleteDecommissionRequest request, ClusterState state, ActionListener listener diff --git a/server/src/main/java/org/opensearch/client/ClusterAdminClient.java b/server/src/main/java/org/opensearch/client/ClusterAdminClient.java index 12ac8c1cb9296..3a06d5e91295b 100644 --- a/server/src/main/java/org/opensearch/client/ClusterAdminClient.java +++ b/server/src/main/java/org/opensearch/client/ClusterAdminClient.java @@ -796,17 +796,17 @@ public interface ClusterAdminClient extends OpenSearchClient { ActionFuture deleteDanglingIndex(DeleteDanglingIndexRequest request); /** - * Decommission a node + * Deletes the decommission metadata. */ ActionFuture deleteDecommission(DeleteDecommissionRequest request); /** - * Decommission a node + * Deletes the decommission metadata. */ void deleteDecommission(DeleteDecommissionRequest request, ActionListener listener); /** - * Decommission a node + * Deletes the decommission metadata. */ DeleteDecommissionRequestBuilder prepareDeleteDecommission(); } diff --git a/server/src/main/java/org/opensearch/cluster/decommission/DecommissionAttribute.java b/server/src/main/java/org/opensearch/cluster/decommission/DecommissionAttribute.java deleted file mode 100644 index 7abcd18ac7c38..0000000000000 --- a/server/src/main/java/org/opensearch/cluster/decommission/DecommissionAttribute.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.cluster.decommission; - -import org.opensearch.common.io.stream.StreamInput; -import org.opensearch.common.io.stream.StreamOutput; -import org.opensearch.common.io.stream.Writeable; - -import java.io.IOException; -import java.util.Objects; - -public final class DecommissionAttribute implements Writeable { - private final String attributeName; - private final String attributeValue; - - /** - * Update the attribute value for a given attribute name to decommission - * - * @param decommissionAttribute current decommissioned attribute object - * @param attributeValue attribute value to be updated with - */ - public DecommissionAttribute(DecommissionAttribute decommissionAttribute, String attributeValue) { - this(decommissionAttribute.attributeName, attributeValue); - } - - /** - * Constructs new decommission attribute name value pair - * - * @param attributeName attribute name - * @param attributeValue attribute value - */ - public DecommissionAttribute(String attributeName, String attributeValue) { - this.attributeName = attributeName; - this.attributeValue = attributeValue; - } - - /** - * Returns attribute name - * - * @return attributeName - */ - public String attributeName() { - return this.attributeName; - } - - /** - * Returns attribute value - * - * @return attributeValue - */ - public String attributeValue() { - return this.attributeValue; - } - - public DecommissionAttribute(StreamInput in) throws IOException { - attributeName = in.readString(); - attributeValue = in.readString(); - } - - /** - * Writes decommission attribute name value to stream output - * - * @param out stream output - */ - @Override - public void writeTo(StreamOutput out) throws IOException { - out.writeString(attributeName); - out.writeString(attributeValue); - } - - /** - * Checks if this instance is equal to the other instance in attributeName but differ in attribute value {@link #attributeValue}. - * - * @param other other decommission attribute name value - * @return {@code true} if both instances equal in attributeName fields but the attributeValue field - */ - public boolean equalsIgnoreValues(DecommissionAttribute other) { - return attributeName.equals(other.attributeName); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - DecommissionAttribute that = (DecommissionAttribute) o; - - if (!attributeName.equals(that.attributeName)) return false; - return attributeValue.equals(that.attributeValue); - } - - @Override - public int hashCode() { - return Objects.hash(attributeName, attributeValue); - } - - @Override - public String toString() { - return "DecommissionAttribute{" + "attributeName='" + attributeName + '\'' + ", attributeValue='" + attributeValue + '\'' + '}'; - } -} From 6abea15701faed3b8406ac8fbc45ffedd74d691f Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Tue, 20 Sep 2022 20:52:22 +0530 Subject: [PATCH 10/16] Fix test cases Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- .../awareness/DeleteDecommissionRequestTests.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java index b097c606b902b..73f234d2d1ca6 100644 --- a/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java +++ b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java @@ -9,6 +9,8 @@ package org.opensearch.action.admin.cluster.decommission.awareness; import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; +import org.opensearch.common.io.stream.BytesStreamOutput; +import org.opensearch.common.io.stream.StreamInput; import org.opensearch.test.OpenSearchTestCase; import java.io.IOException; @@ -18,7 +20,13 @@ public class DeleteDecommissionRequestTests extends OpenSearchTestCase { public void testSerialization() throws IOException { final DeleteDecommissionRequest originalRequest = new DeleteDecommissionRequest(); - final DeleteDecommissionRequest deserialized = copyWriteable(originalRequest, writableRegistry(), DeleteDecommissionRequest::new); - assertEquals(deserialized, originalRequest); + final DeleteDecommissionRequest cloneRequest; + try (BytesStreamOutput out = new BytesStreamOutput()) { + originalRequest.writeTo(out); + try (StreamInput in = out.bytes().streamInput()) { + cloneRequest = new DeleteDecommissionRequest(in); + } + } + assertEquals(cloneRequest.clusterManagerNodeTimeout(), originalRequest.clusterManagerNodeTimeout()); } } From c70f990484d21e51059d91c07c309dd1970f0d7e Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Tue, 20 Sep 2022 21:35:09 +0530 Subject: [PATCH 11/16] Add javadoc Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- .../awareness/delete/DeleteDecommissionAction.java | 6 ++++++ .../awareness/delete/DeleteDecommissionRequest.java | 5 +++++ .../delete/DeleteDecommissionRequestBuilder.java | 5 +++++ .../awareness/delete/DeleteDecommissionResponse.java | 5 +++++ .../delete/TransportDeleteDecommissionAction.java | 5 +++++ .../decommission/awareness/delete/package-info.java | 10 ++++++++++ .../admin/cluster/RestDeleteDecommissionAction.java | 5 +++++ 7 files changed, 41 insertions(+) create mode 100644 server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/package-info.java diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java index 4bb276197a912..49042e43d1099 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java @@ -10,6 +10,12 @@ import org.opensearch.action.ActionType; +/** + * Transport action delete decommission. + * + * @opensearch.internal + */ + public class DeleteDecommissionAction extends ActionType { public static final DeleteDecommissionAction INSTANCE = new DeleteDecommissionAction(); public static final String NAME = "cluster:admin/decommission/awareness/delete"; diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java index 56a3f26a1f2ef..bd2b64a9e15bd 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java @@ -15,6 +15,11 @@ import java.io.IOException; +/** + * Request for deleting decommission request. + * + * @opensearch.internal + */ public class DeleteDecommissionRequest extends ClusterManagerNodeRequest { public DeleteDecommissionRequest() {} diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java index 50e282450e820..54e04bfad5f67 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java @@ -11,6 +11,11 @@ import org.opensearch.action.support.clustermanager.ClusterManagerNodeOperationRequestBuilder; import org.opensearch.client.OpenSearchClient; +/** + * Builder for a Delete decommission request. + * + * @opensearch.internal + */ public class DeleteDecommissionRequestBuilder extends ClusterManagerNodeOperationRequestBuilder< DeleteDecommissionRequest, DeleteDecommissionResponse, diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java index 0dc8e9078ca1b..a0c933db92b78 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java @@ -15,6 +15,11 @@ import java.io.IOException; +/** + * Response returned after deletion of decommission request. + * + * @opensearch.internal + */ public class DeleteDecommissionResponse extends AcknowledgedResponse implements ToXContentObject { public DeleteDecommissionResponse(StreamInput in) throws IOException { diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java index ce6f3dc68e25d..64b9e4e2f2f2b 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java @@ -25,6 +25,11 @@ import java.io.IOException; +/** + * Transport action for delete decommission. + * + * @opensearch.internal + */ public class TransportDeleteDecommissionAction extends TransportClusterManagerNodeAction< DeleteDecommissionRequest, DeleteDecommissionResponse> { diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/package-info.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/package-info.java new file mode 100644 index 0000000000000..3be656a96f99b --- /dev/null +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/package-info.java @@ -0,0 +1,10 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** Delete decommission transport handlers. */ +package org.opensearch.action.admin.cluster.decommission.awareness.delete; \ No newline at end of file diff --git a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java index f5b687ca997a6..1c6a9c2e32d75 100644 --- a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java @@ -21,6 +21,11 @@ import static java.util.Collections.singletonList; import static org.opensearch.rest.RestRequest.Method.DELETE; +/** + * Clears the decommission metadata. + * + * @opensearch.api + */ public class RestDeleteDecommissionAction extends BaseRestHandler { @Override From 89eff69b63c23ec7ea1809c4d05b4013f58040fe Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Tue, 20 Sep 2022 22:00:53 +0530 Subject: [PATCH 12/16] Add package info --- .../cluster/decommission/awareness/delete/package-info.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/package-info.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/package-info.java index 3be656a96f99b..c2cfc03baa45e 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/package-info.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/package-info.java @@ -7,4 +7,4 @@ */ /** Delete decommission transport handlers. */ -package org.opensearch.action.admin.cluster.decommission.awareness.delete; \ No newline at end of file +package org.opensearch.action.admin.cluster.decommission.awareness.delete; From 86f8c54550cd8483666e62edada5787d3babbdba Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Thu, 22 Sep 2022 17:06:30 +0530 Subject: [PATCH 13/16] Rename class DeleteDecommissionStateAction Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- .../src/main/java/org/opensearch/action/ActionModule.java | 4 ++-- .../delete/DeleteDecommissionRequestBuilder.java | 2 +- ...sionAction.java => DeleteDecommissionStateAction.java} | 6 +++--- .../delete/TransportDeleteDecommissionAction.java | 2 +- .../org/opensearch/client/support/AbstractClient.java | 8 ++++---- 5 files changed, 11 insertions(+), 11 deletions(-) rename server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/{DeleteDecommissionAction.java => DeleteDecommissionStateAction.java} (69%) diff --git a/server/src/main/java/org/opensearch/action/ActionModule.java b/server/src/main/java/org/opensearch/action/ActionModule.java index baee37ad187ef..edd6c7126dd78 100644 --- a/server/src/main/java/org/opensearch/action/ActionModule.java +++ b/server/src/main/java/org/opensearch/action/ActionModule.java @@ -40,7 +40,7 @@ import org.opensearch.action.admin.cluster.configuration.ClearVotingConfigExclusionsAction; import org.opensearch.action.admin.cluster.configuration.TransportAddVotingConfigExclusionsAction; import org.opensearch.action.admin.cluster.configuration.TransportClearVotingConfigExclusionsAction; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionAction; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateAction; import org.opensearch.action.admin.cluster.decommission.awareness.delete.TransportDeleteDecommissionAction; import org.opensearch.action.admin.cluster.health.ClusterHealthAction; import org.opensearch.action.admin.cluster.health.TransportClusterHealthAction; @@ -565,7 +565,7 @@ public void reg actions.register(CloneSnapshotAction.INSTANCE, TransportCloneSnapshotAction.class); actions.register(RestoreSnapshotAction.INSTANCE, TransportRestoreSnapshotAction.class); actions.register(SnapshotsStatusAction.INSTANCE, TransportSnapshotsStatusAction.class); - actions.register(DeleteDecommissionAction.INSTANCE, TransportDeleteDecommissionAction.class); + actions.register(DeleteDecommissionStateAction.INSTANCE, TransportDeleteDecommissionAction.class); actions.register(IndicesStatsAction.INSTANCE, TransportIndicesStatsAction.class); actions.register(IndicesSegmentsAction.INSTANCE, TransportIndicesSegmentsAction.class); diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java index 54e04bfad5f67..f019e83e49029 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java @@ -21,7 +21,7 @@ public class DeleteDecommissionRequestBuilder extends ClusterManagerNodeOperatio DeleteDecommissionResponse, DeleteDecommissionRequestBuilder> { - public DeleteDecommissionRequestBuilder(OpenSearchClient client, DeleteDecommissionAction action) { + public DeleteDecommissionRequestBuilder(OpenSearchClient client, DeleteDecommissionStateAction action) { super(client, action, new DeleteDecommissionRequest()); } } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateAction.java similarity index 69% rename from server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java rename to server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateAction.java index 49042e43d1099..b9aca5f658162 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateAction.java @@ -16,11 +16,11 @@ * @opensearch.internal */ -public class DeleteDecommissionAction extends ActionType { - public static final DeleteDecommissionAction INSTANCE = new DeleteDecommissionAction(); +public class DeleteDecommissionStateAction extends ActionType { + public static final DeleteDecommissionStateAction INSTANCE = new DeleteDecommissionStateAction(); public static final String NAME = "cluster:admin/decommission/awareness/delete"; - private DeleteDecommissionAction() { + private DeleteDecommissionStateAction() { super(NAME, DeleteDecommissionResponse::new); } } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java index 64b9e4e2f2f2b..4c5d1d6812b06 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java @@ -45,7 +45,7 @@ public TransportDeleteDecommissionAction( IndexNameExpressionResolver indexNameExpressionResolver ) { super( - DeleteDecommissionAction.NAME, + DeleteDecommissionStateAction.NAME, transportService, clusterService, threadPool, diff --git a/server/src/main/java/org/opensearch/client/support/AbstractClient.java b/server/src/main/java/org/opensearch/client/support/AbstractClient.java index 55eafcc950525..e790415d62514 100644 --- a/server/src/main/java/org/opensearch/client/support/AbstractClient.java +++ b/server/src/main/java/org/opensearch/client/support/AbstractClient.java @@ -43,7 +43,7 @@ import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainRequest; import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainRequestBuilder; import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainResponse; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionAction; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateAction; import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequestBuilder; import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionResponse; @@ -1270,17 +1270,17 @@ public ActionFuture deleteDanglingIndex(DeleteDanglingInde @Override public ActionFuture deleteDecommission(DeleteDecommissionRequest request) { - return execute(DeleteDecommissionAction.INSTANCE, request); + return execute(DeleteDecommissionStateAction.INSTANCE, request); } @Override public void deleteDecommission(DeleteDecommissionRequest request, ActionListener listener) { - execute(DeleteDecommissionAction.INSTANCE, request, listener); + execute(DeleteDecommissionStateAction.INSTANCE, request, listener); } @Override public DeleteDecommissionRequestBuilder prepareDeleteDecommission() { - return new DeleteDecommissionRequestBuilder(this, DeleteDecommissionAction.INSTANCE); + return new DeleteDecommissionRequestBuilder(this, DeleteDecommissionStateAction.INSTANCE); } @Override From 24ab026d76fd60491da077da2ae05dc7df93f7a2 Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Thu, 22 Sep 2022 17:26:29 +0530 Subject: [PATCH 14/16] Rename Class Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- .../org/opensearch/action/ActionModule.java | 8 +++---- .../delete/DeleteDecommissionStateAction.java | 4 ++-- ...va => DeleteDecommissionStateRequest.java} | 6 ++--- ...eleteDecommissionStateRequestBuilder.java} | 12 +++++----- ...a => DeleteDecommissionStateResponse.java} | 6 ++--- ...ansportDeleteDecommissionStateAction.java} | 24 +++++++++---------- .../opensearch/client/ClusterAdminClient.java | 12 +++++----- .../java/org/opensearch/client/Requests.java | 6 ++--- .../client/support/AbstractClient.java | 14 +++++------ ...=> RestDeleteDecommissionStateAction.java} | 12 +++++----- ... DeleteDecommissionStateRequestTests.java} | 10 ++++---- ...DeleteDecommissionStateResponseTests.java} | 10 ++++---- ...stDeleteDecommissionStateActionTests.java} | 10 ++++---- 13 files changed, 67 insertions(+), 67 deletions(-) rename server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/{DeleteDecommissionRequest.java => DeleteDecommissionStateRequest.java} (78%) rename server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/{DeleteDecommissionRequestBuilder.java => DeleteDecommissionStateRequestBuilder.java} (55%) rename server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/{DeleteDecommissionResponse.java => DeleteDecommissionStateResponse.java} (76%) rename server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/{TransportDeleteDecommissionAction.java => TransportDeleteDecommissionStateAction.java} (75%) rename server/src/main/java/org/opensearch/rest/action/admin/cluster/{RestDeleteDecommissionAction.java => RestDeleteDecommissionStateAction.java} (76%) rename server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/{DeleteDecommissionRequestTests.java => DeleteDecommissionStateRequestTests.java} (71%) rename server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/{DeleteDecommissionResponseTests.java => DeleteDecommissionStateResponseTests.java} (63%) rename server/src/test/java/org/opensearch/rest/action/admin/cluster/{RestDeleteDecommissionActionTests.java => RestDeleteDecommissionStateActionTests.java} (80%) diff --git a/server/src/main/java/org/opensearch/action/ActionModule.java b/server/src/main/java/org/opensearch/action/ActionModule.java index edd6c7126dd78..88e9db12e81f5 100644 --- a/server/src/main/java/org/opensearch/action/ActionModule.java +++ b/server/src/main/java/org/opensearch/action/ActionModule.java @@ -41,7 +41,7 @@ import org.opensearch.action.admin.cluster.configuration.TransportAddVotingConfigExclusionsAction; import org.opensearch.action.admin.cluster.configuration.TransportClearVotingConfigExclusionsAction; import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateAction; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.TransportDeleteDecommissionAction; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.TransportDeleteDecommissionStateAction; import org.opensearch.action.admin.cluster.health.ClusterHealthAction; import org.opensearch.action.admin.cluster.health.TransportClusterHealthAction; import org.opensearch.action.admin.cluster.node.hotthreads.NodesHotThreadsAction; @@ -304,7 +304,7 @@ import org.opensearch.rest.action.admin.cluster.RestClusterStatsAction; import org.opensearch.rest.action.admin.cluster.RestClusterUpdateSettingsAction; import org.opensearch.rest.action.admin.cluster.RestCreateSnapshotAction; -import org.opensearch.rest.action.admin.cluster.RestDeleteDecommissionAction; +import org.opensearch.rest.action.admin.cluster.RestDeleteDecommissionStateAction; import org.opensearch.rest.action.admin.cluster.RestDeleteRepositoryAction; import org.opensearch.rest.action.admin.cluster.RestDeleteSnapshotAction; import org.opensearch.rest.action.admin.cluster.RestDeleteStoredScriptAction; @@ -565,7 +565,7 @@ public void reg actions.register(CloneSnapshotAction.INSTANCE, TransportCloneSnapshotAction.class); actions.register(RestoreSnapshotAction.INSTANCE, TransportRestoreSnapshotAction.class); actions.register(SnapshotsStatusAction.INSTANCE, TransportSnapshotsStatusAction.class); - actions.register(DeleteDecommissionStateAction.INSTANCE, TransportDeleteDecommissionAction.class); + actions.register(DeleteDecommissionStateAction.INSTANCE, TransportDeleteDecommissionStateAction.class); actions.register(IndicesStatsAction.INSTANCE, TransportIndicesStatsAction.class); actions.register(IndicesSegmentsAction.INSTANCE, TransportIndicesSegmentsAction.class); @@ -877,7 +877,7 @@ public void initRestHandlers(Supplier nodesInCluster) { } } registerHandler.accept(new RestCatAction(catActions)); - registerHandler.accept(new RestDeleteDecommissionAction()); + registerHandler.accept(new RestDeleteDecommissionStateAction()); // Remote Store APIs if (FeatureFlags.isEnabled(FeatureFlags.REMOTE_STORE)) { diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateAction.java index b9aca5f658162..7f4f56f49819a 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateAction.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateAction.java @@ -16,11 +16,11 @@ * @opensearch.internal */ -public class DeleteDecommissionStateAction extends ActionType { +public class DeleteDecommissionStateAction extends ActionType { public static final DeleteDecommissionStateAction INSTANCE = new DeleteDecommissionStateAction(); public static final String NAME = "cluster:admin/decommission/awareness/delete"; private DeleteDecommissionStateAction() { - super(NAME, DeleteDecommissionResponse::new); + super(NAME, DeleteDecommissionStateResponse::new); } } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateRequest.java similarity index 78% rename from server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java rename to server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateRequest.java index bd2b64a9e15bd..205be54a36c33 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequest.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateRequest.java @@ -20,11 +20,11 @@ * * @opensearch.internal */ -public class DeleteDecommissionRequest extends ClusterManagerNodeRequest { +public class DeleteDecommissionStateRequest extends ClusterManagerNodeRequest { - public DeleteDecommissionRequest() {} + public DeleteDecommissionStateRequest() {} - public DeleteDecommissionRequest(StreamInput in) throws IOException { + public DeleteDecommissionStateRequest(StreamInput in) throws IOException { super(in); } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateRequestBuilder.java similarity index 55% rename from server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java rename to server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateRequestBuilder.java index f019e83e49029..39de99b017de2 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionRequestBuilder.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateRequestBuilder.java @@ -16,12 +16,12 @@ * * @opensearch.internal */ -public class DeleteDecommissionRequestBuilder extends ClusterManagerNodeOperationRequestBuilder< - DeleteDecommissionRequest, - DeleteDecommissionResponse, - DeleteDecommissionRequestBuilder> { +public class DeleteDecommissionStateRequestBuilder extends ClusterManagerNodeOperationRequestBuilder< + DeleteDecommissionStateRequest, + DeleteDecommissionStateResponse, + DeleteDecommissionStateRequestBuilder> { - public DeleteDecommissionRequestBuilder(OpenSearchClient client, DeleteDecommissionStateAction action) { - super(client, action, new DeleteDecommissionRequest()); + public DeleteDecommissionStateRequestBuilder(OpenSearchClient client, DeleteDecommissionStateAction action) { + super(client, action, new DeleteDecommissionStateRequest()); } } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateResponse.java similarity index 76% rename from server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java rename to server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateResponse.java index a0c933db92b78..5bfa9d03e472b 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionResponse.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateResponse.java @@ -20,13 +20,13 @@ * * @opensearch.internal */ -public class DeleteDecommissionResponse extends AcknowledgedResponse implements ToXContentObject { +public class DeleteDecommissionStateResponse extends AcknowledgedResponse implements ToXContentObject { - public DeleteDecommissionResponse(StreamInput in) throws IOException { + public DeleteDecommissionStateResponse(StreamInput in) throws IOException { super(in); } - public DeleteDecommissionResponse(boolean acknowledged) { + public DeleteDecommissionStateResponse(boolean acknowledged) { super(acknowledged); } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionStateAction.java similarity index 75% rename from server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java rename to server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionStateAction.java index 4c5d1d6812b06..27f536e9d8d38 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionStateAction.java @@ -30,14 +30,14 @@ * * @opensearch.internal */ -public class TransportDeleteDecommissionAction extends TransportClusterManagerNodeAction< - DeleteDecommissionRequest, - DeleteDecommissionResponse> { +public class TransportDeleteDecommissionStateAction extends TransportClusterManagerNodeAction< + DeleteDecommissionStateRequest, + DeleteDecommissionStateResponse> { - private static final Logger logger = LogManager.getLogger(TransportDeleteDecommissionAction.class); + private static final Logger logger = LogManager.getLogger(TransportDeleteDecommissionStateAction.class); @Inject - public TransportDeleteDecommissionAction( + public TransportDeleteDecommissionStateAction( TransportService transportService, ClusterService clusterService, ThreadPool threadPool, @@ -50,7 +50,7 @@ public TransportDeleteDecommissionAction( clusterService, threadPool, actionFilters, - DeleteDecommissionRequest::new, + DeleteDecommissionStateRequest::new, indexNameExpressionResolver ); } @@ -61,23 +61,23 @@ protected String executor() { } @Override - protected DeleteDecommissionResponse read(StreamInput in) throws IOException { - return new DeleteDecommissionResponse(in); + protected DeleteDecommissionStateResponse read(StreamInput in) throws IOException { + return new DeleteDecommissionStateResponse(in); } @Override - protected ClusterBlockException checkBlock(DeleteDecommissionRequest request, ClusterState state) { + protected ClusterBlockException checkBlock(DeleteDecommissionStateRequest request, ClusterState state) { return state.blocks().globalBlockedException(ClusterBlockLevel.METADATA_WRITE); } @Override protected void clusterManagerOperation( - DeleteDecommissionRequest request, + DeleteDecommissionStateRequest request, ClusterState state, - ActionListener listener + ActionListener listener ) { // TODO: Enable when service class change is merged logger.info("Received delete decommission Request"); - listener.onResponse(new DeleteDecommissionResponse(true)); + listener.onResponse(new DeleteDecommissionStateResponse(true)); } } diff --git a/server/src/main/java/org/opensearch/client/ClusterAdminClient.java b/server/src/main/java/org/opensearch/client/ClusterAdminClient.java index 3a06d5e91295b..f4bb7893ce162 100644 --- a/server/src/main/java/org/opensearch/client/ClusterAdminClient.java +++ b/server/src/main/java/org/opensearch/client/ClusterAdminClient.java @@ -37,9 +37,9 @@ import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainRequest; import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainRequestBuilder; import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainResponse; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequestBuilder; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionResponse; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateRequest; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateRequestBuilder; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateResponse; import org.opensearch.action.admin.cluster.health.ClusterHealthRequest; import org.opensearch.action.admin.cluster.health.ClusterHealthRequestBuilder; import org.opensearch.action.admin.cluster.health.ClusterHealthResponse; @@ -798,15 +798,15 @@ public interface ClusterAdminClient extends OpenSearchClient { /** * Deletes the decommission metadata. */ - ActionFuture deleteDecommission(DeleteDecommissionRequest request); + ActionFuture deleteDecommission(DeleteDecommissionStateRequest request); /** * Deletes the decommission metadata. */ - void deleteDecommission(DeleteDecommissionRequest request, ActionListener listener); + void deleteDecommission(DeleteDecommissionStateRequest request, ActionListener listener); /** * Deletes the decommission metadata. */ - DeleteDecommissionRequestBuilder prepareDeleteDecommission(); + DeleteDecommissionStateRequestBuilder prepareDeleteDecommission(); } diff --git a/server/src/main/java/org/opensearch/client/Requests.java b/server/src/main/java/org/opensearch/client/Requests.java index 2fdfabe5989cc..d5a3663a54551 100644 --- a/server/src/main/java/org/opensearch/client/Requests.java +++ b/server/src/main/java/org/opensearch/client/Requests.java @@ -32,7 +32,7 @@ package org.opensearch.client; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateRequest; import org.opensearch.action.admin.cluster.health.ClusterHealthRequest; import org.opensearch.action.admin.cluster.node.info.NodesInfoRequest; import org.opensearch.action.admin.cluster.node.stats.NodesStatsRequest; @@ -543,8 +543,8 @@ public static DeleteSnapshotRequest deleteSnapshotRequest(String repository, Str /** * Creates a new delete decommission request. */ - public static DeleteDecommissionRequest deleteDecommissionRequest() { - return new DeleteDecommissionRequest(); + public static DeleteDecommissionStateRequest deleteDecommissionRequest() { + return new DeleteDecommissionStateRequest(); } /** diff --git a/server/src/main/java/org/opensearch/client/support/AbstractClient.java b/server/src/main/java/org/opensearch/client/support/AbstractClient.java index e790415d62514..9eab61abe930b 100644 --- a/server/src/main/java/org/opensearch/client/support/AbstractClient.java +++ b/server/src/main/java/org/opensearch/client/support/AbstractClient.java @@ -44,9 +44,9 @@ import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainRequestBuilder; import org.opensearch.action.admin.cluster.allocation.ClusterAllocationExplainResponse; import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateAction; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequestBuilder; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionResponse; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateRequest; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateRequestBuilder; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateResponse; import org.opensearch.action.admin.cluster.health.ClusterHealthAction; import org.opensearch.action.admin.cluster.health.ClusterHealthRequest; import org.opensearch.action.admin.cluster.health.ClusterHealthRequestBuilder; @@ -1269,18 +1269,18 @@ public ActionFuture deleteDanglingIndex(DeleteDanglingInde } @Override - public ActionFuture deleteDecommission(DeleteDecommissionRequest request) { + public ActionFuture deleteDecommission(DeleteDecommissionStateRequest request) { return execute(DeleteDecommissionStateAction.INSTANCE, request); } @Override - public void deleteDecommission(DeleteDecommissionRequest request, ActionListener listener) { + public void deleteDecommission(DeleteDecommissionStateRequest request, ActionListener listener) { execute(DeleteDecommissionStateAction.INSTANCE, request, listener); } @Override - public DeleteDecommissionRequestBuilder prepareDeleteDecommission() { - return new DeleteDecommissionRequestBuilder(this, DeleteDecommissionStateAction.INSTANCE); + public DeleteDecommissionStateRequestBuilder prepareDeleteDecommission() { + return new DeleteDecommissionStateRequestBuilder(this, DeleteDecommissionStateAction.INSTANCE); } @Override diff --git a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java similarity index 76% rename from server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java rename to server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java index 1c6a9c2e32d75..fda510f7dfda8 100644 --- a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionAction.java +++ b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java @@ -8,7 +8,7 @@ package org.opensearch.rest.action.admin.cluster; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateRequest; import org.opensearch.client.Requests; import org.opensearch.client.node.NodeClient; import org.opensearch.rest.BaseRestHandler; @@ -26,7 +26,7 @@ * * @opensearch.api */ -public class RestDeleteDecommissionAction extends BaseRestHandler { +public class RestDeleteDecommissionStateAction extends BaseRestHandler { @Override public List routes() { @@ -35,16 +35,16 @@ public List routes() { @Override public String getName() { - return "delete_decommission_action"; + return "delete_decommission_state_action"; } @Override protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { - DeleteDecommissionRequest deleteDecommissionRequest = createRequest(); - return channel -> client.admin().cluster().deleteDecommission(deleteDecommissionRequest, new RestToXContentListener<>(channel)); + DeleteDecommissionStateRequest deleteDecommissionStateRequest = createRequest(); + return channel -> client.admin().cluster().deleteDecommission(deleteDecommissionStateRequest, new RestToXContentListener<>(channel)); } - DeleteDecommissionRequest createRequest() { + DeleteDecommissionStateRequest createRequest() { return Requests.deleteDecommissionRequest(); } } diff --git a/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionStateRequestTests.java similarity index 71% rename from server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java rename to server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionStateRequestTests.java index 73f234d2d1ca6..1a95b77cc1024 100644 --- a/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionRequestTests.java +++ b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionStateRequestTests.java @@ -8,23 +8,23 @@ package org.opensearch.action.admin.cluster.decommission.awareness; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateRequest; import org.opensearch.common.io.stream.BytesStreamOutput; import org.opensearch.common.io.stream.StreamInput; import org.opensearch.test.OpenSearchTestCase; import java.io.IOException; -public class DeleteDecommissionRequestTests extends OpenSearchTestCase { +public class DeleteDecommissionStateRequestTests extends OpenSearchTestCase { public void testSerialization() throws IOException { - final DeleteDecommissionRequest originalRequest = new DeleteDecommissionRequest(); + final DeleteDecommissionStateRequest originalRequest = new DeleteDecommissionStateRequest(); - final DeleteDecommissionRequest cloneRequest; + final DeleteDecommissionStateRequest cloneRequest; try (BytesStreamOutput out = new BytesStreamOutput()) { originalRequest.writeTo(out); try (StreamInput in = out.bytes().streamInput()) { - cloneRequest = new DeleteDecommissionRequest(in); + cloneRequest = new DeleteDecommissionStateRequest(in); } } assertEquals(cloneRequest.clusterManagerNodeTimeout(), originalRequest.clusterManagerNodeTimeout()); diff --git a/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionStateResponseTests.java similarity index 63% rename from server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java rename to server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionStateResponseTests.java index 6281c5f7fe9b3..085eda3e9d0e7 100644 --- a/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionResponseTests.java +++ b/server/src/test/java/org/opensearch/action/admin/cluster/decommission/awareness/DeleteDecommissionStateResponseTests.java @@ -8,20 +8,20 @@ package org.opensearch.action.admin.cluster.decommission.awareness; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionResponse; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateResponse; import org.opensearch.test.OpenSearchTestCase; import java.io.IOException; -public class DeleteDecommissionResponseTests extends OpenSearchTestCase { +public class DeleteDecommissionStateResponseTests extends OpenSearchTestCase { public void testSerialization() throws IOException { - final DeleteDecommissionResponse originalResponse = new DeleteDecommissionResponse(true); + final DeleteDecommissionStateResponse originalResponse = new DeleteDecommissionStateResponse(true); - final DeleteDecommissionResponse deserialized = copyWriteable( + final DeleteDecommissionStateResponse deserialized = copyWriteable( originalResponse, writableRegistry(), - DeleteDecommissionResponse::new + DeleteDecommissionStateResponse::new ); assertEquals(deserialized, originalResponse); diff --git a/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java b/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateActionTests.java similarity index 80% rename from server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java rename to server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateActionTests.java index 6b6e946e97547..101339d989e4b 100644 --- a/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionActionTests.java +++ b/server/src/test/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateActionTests.java @@ -9,7 +9,7 @@ package org.opensearch.rest.action.admin.cluster; import org.junit.Before; -import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionRequest; +import org.opensearch.action.admin.cluster.decommission.awareness.delete.DeleteDecommissionStateRequest; import org.opensearch.rest.RestHandler; import org.opensearch.rest.RestRequest; import org.opensearch.test.rest.FakeRestRequest; @@ -17,13 +17,13 @@ import java.util.List; -public class RestDeleteDecommissionActionTests extends RestActionTestCase { +public class RestDeleteDecommissionStateActionTests extends RestActionTestCase { - private RestDeleteDecommissionAction action; + private RestDeleteDecommissionStateAction action; @Before public void setupAction() { - action = new RestDeleteDecommissionAction(); + action = new RestDeleteDecommissionStateAction(); controller().registerHandler(action); } @@ -35,7 +35,7 @@ public void testRoutes() { } public void testCreateRequest() { - DeleteDecommissionRequest request = action.createRequest(); + DeleteDecommissionStateRequest request = action.createRequest(); assertNotNull(request); } From 3bcda1af71eaf4cfe005d40115cdb0d2b992bfa6 Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Thu, 22 Sep 2022 17:46:23 +0530 Subject: [PATCH 15/16] Update method name Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- .../main/java/org/opensearch/client/ClusterAdminClient.java | 6 +++--- server/src/main/java/org/opensearch/client/Requests.java | 2 +- .../java/org/opensearch/client/support/AbstractClient.java | 6 +++--- .../admin/cluster/RestDeleteDecommissionStateAction.java | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/server/src/main/java/org/opensearch/client/ClusterAdminClient.java b/server/src/main/java/org/opensearch/client/ClusterAdminClient.java index f4bb7893ce162..b11f55399078d 100644 --- a/server/src/main/java/org/opensearch/client/ClusterAdminClient.java +++ b/server/src/main/java/org/opensearch/client/ClusterAdminClient.java @@ -798,15 +798,15 @@ public interface ClusterAdminClient extends OpenSearchClient { /** * Deletes the decommission metadata. */ - ActionFuture deleteDecommission(DeleteDecommissionStateRequest request); + ActionFuture deleteDecommissionState(DeleteDecommissionStateRequest request); /** * Deletes the decommission metadata. */ - void deleteDecommission(DeleteDecommissionStateRequest request, ActionListener listener); + void deleteDecommissionState(DeleteDecommissionStateRequest request, ActionListener listener); /** * Deletes the decommission metadata. */ - DeleteDecommissionStateRequestBuilder prepareDeleteDecommission(); + DeleteDecommissionStateRequestBuilder prepareDeleteDecommissionRequest(); } diff --git a/server/src/main/java/org/opensearch/client/Requests.java b/server/src/main/java/org/opensearch/client/Requests.java index d5a3663a54551..bd9c7dcf242cb 100644 --- a/server/src/main/java/org/opensearch/client/Requests.java +++ b/server/src/main/java/org/opensearch/client/Requests.java @@ -543,7 +543,7 @@ public static DeleteSnapshotRequest deleteSnapshotRequest(String repository, Str /** * Creates a new delete decommission request. */ - public static DeleteDecommissionStateRequest deleteDecommissionRequest() { + public static DeleteDecommissionStateRequest deleteDecommissionStateRequest() { return new DeleteDecommissionStateRequest(); } diff --git a/server/src/main/java/org/opensearch/client/support/AbstractClient.java b/server/src/main/java/org/opensearch/client/support/AbstractClient.java index 9eab61abe930b..f4a12c6c8c964 100644 --- a/server/src/main/java/org/opensearch/client/support/AbstractClient.java +++ b/server/src/main/java/org/opensearch/client/support/AbstractClient.java @@ -1269,17 +1269,17 @@ public ActionFuture deleteDanglingIndex(DeleteDanglingInde } @Override - public ActionFuture deleteDecommission(DeleteDecommissionStateRequest request) { + public ActionFuture deleteDecommissionState(DeleteDecommissionStateRequest request) { return execute(DeleteDecommissionStateAction.INSTANCE, request); } @Override - public void deleteDecommission(DeleteDecommissionStateRequest request, ActionListener listener) { + public void deleteDecommissionState(DeleteDecommissionStateRequest request, ActionListener listener) { execute(DeleteDecommissionStateAction.INSTANCE, request, listener); } @Override - public DeleteDecommissionStateRequestBuilder prepareDeleteDecommission() { + public DeleteDecommissionStateRequestBuilder prepareDeleteDecommissionRequest() { return new DeleteDecommissionStateRequestBuilder(this, DeleteDecommissionStateAction.INSTANCE); } diff --git a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java index fda510f7dfda8..39fc4156fdba1 100644 --- a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java +++ b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java @@ -41,10 +41,10 @@ public String getName() { @Override protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { DeleteDecommissionStateRequest deleteDecommissionStateRequest = createRequest(); - return channel -> client.admin().cluster().deleteDecommission(deleteDecommissionStateRequest, new RestToXContentListener<>(channel)); + return channel -> client.admin().cluster().deleteDecommissionState(deleteDecommissionStateRequest, new RestToXContentListener<>(channel)); } DeleteDecommissionStateRequest createRequest() { - return Requests.deleteDecommissionRequest(); + return Requests.deleteDecommissionStateRequest(); } } From 7312b4179c28c769c327cac1b78ec1290a685f32 Mon Sep 17 00:00:00 2001 From: pranikum <109206473+pranikum@users.noreply.github.com> Date: Thu, 22 Sep 2022 18:05:15 +0530 Subject: [PATCH 16/16] Spotless Java check Signed-off-by: pranikum <109206473+pranikum@users.noreply.github.com> --- .../delete/DeleteDecommissionStateRequestBuilder.java | 6 +++--- .../delete/TransportDeleteDecommissionStateAction.java | 4 ++-- .../java/org/opensearch/client/support/AbstractClient.java | 5 ++++- .../admin/cluster/RestDeleteDecommissionStateAction.java | 4 +++- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateRequestBuilder.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateRequestBuilder.java index 39de99b017de2..0a3713a1a3033 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateRequestBuilder.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/DeleteDecommissionStateRequestBuilder.java @@ -17,9 +17,9 @@ * @opensearch.internal */ public class DeleteDecommissionStateRequestBuilder extends ClusterManagerNodeOperationRequestBuilder< - DeleteDecommissionStateRequest, - DeleteDecommissionStateResponse, - DeleteDecommissionStateRequestBuilder> { + DeleteDecommissionStateRequest, + DeleteDecommissionStateResponse, + DeleteDecommissionStateRequestBuilder> { public DeleteDecommissionStateRequestBuilder(OpenSearchClient client, DeleteDecommissionStateAction action) { super(client, action, new DeleteDecommissionStateRequest()); diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionStateAction.java b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionStateAction.java index 27f536e9d8d38..560c60e2694bf 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionStateAction.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/decommission/awareness/delete/TransportDeleteDecommissionStateAction.java @@ -31,8 +31,8 @@ * @opensearch.internal */ public class TransportDeleteDecommissionStateAction extends TransportClusterManagerNodeAction< - DeleteDecommissionStateRequest, - DeleteDecommissionStateResponse> { + DeleteDecommissionStateRequest, + DeleteDecommissionStateResponse> { private static final Logger logger = LogManager.getLogger(TransportDeleteDecommissionStateAction.class); diff --git a/server/src/main/java/org/opensearch/client/support/AbstractClient.java b/server/src/main/java/org/opensearch/client/support/AbstractClient.java index f4a12c6c8c964..1e8cc6504c9ac 100644 --- a/server/src/main/java/org/opensearch/client/support/AbstractClient.java +++ b/server/src/main/java/org/opensearch/client/support/AbstractClient.java @@ -1274,7 +1274,10 @@ public ActionFuture deleteDecommissionState(Del } @Override - public void deleteDecommissionState(DeleteDecommissionStateRequest request, ActionListener listener) { + public void deleteDecommissionState( + DeleteDecommissionStateRequest request, + ActionListener listener + ) { execute(DeleteDecommissionStateAction.INSTANCE, request, listener); } diff --git a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java index 39fc4156fdba1..9fd7ae2248c30 100644 --- a/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java +++ b/server/src/main/java/org/opensearch/rest/action/admin/cluster/RestDeleteDecommissionStateAction.java @@ -41,7 +41,9 @@ public String getName() { @Override protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { DeleteDecommissionStateRequest deleteDecommissionStateRequest = createRequest(); - return channel -> client.admin().cluster().deleteDecommissionState(deleteDecommissionStateRequest, new RestToXContentListener<>(channel)); + return channel -> client.admin() + .cluster() + .deleteDecommissionState(deleteDecommissionStateRequest, new RestToXContentListener<>(channel)); } DeleteDecommissionStateRequest createRequest() {