This is an automated email from the ASF dual-hosted git repository.
apkhmv pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new 180bd84a7c8 IGNITE-26081 Assign unique REST API tags (#7869)
180bd84a7c8 is described below
commit 180bd84a7c8cc0da1438ca8a4fb47e6b31f52bc8
Author: Vadim Pakhnushev <[email protected]>
AuthorDate: Thu Apr 2 19:21:45 2026 +0300
IGNITE-26081 Assign unique REST API tags (#7869)
---
.../cli/call/recovery/cluster/MigrateToClusterCall.java | 4 ++--
.../cli/call/recovery/cluster/ResetClusterCall.java | 4 ++--
.../cli/call/recovery/reset/ResetPartitionsCall.java | 4 ++--
.../call/recovery/restart/RestartPartitionsCall.java | 6 ++++--
.../cli/call/recovery/states/PartitionStatesCall.java | 8 ++++----
.../internal/rest/api/recovery/DisasterRecoveryApi.java | 17 ++++++++++++++---
.../api/recovery/system/SystemDisasterRecoveryApi.java | 5 +++--
.../ignite/internal/rest/api/zone/DataNodesApi.java | 3 +++
.../disaster/system/SystemDisasterRecoveryClient.java | 6 +++---
9 files changed, 37 insertions(+), 20 deletions(-)
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/cluster/MigrateToClusterCall.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/cluster/MigrateToClusterCall.java
index 1f2b56a489f..af66c513e05 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/cluster/MigrateToClusterCall.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/cluster/MigrateToClusterCall.java
@@ -24,7 +24,7 @@ import
org.apache.ignite.internal.cli.core.call.DefaultCallOutput;
import org.apache.ignite.internal.cli.core.exception.IgniteCliApiException;
import org.apache.ignite.internal.cli.core.rest.ApiClientFactory;
import org.apache.ignite.rest.client.api.ClusterManagementApi;
-import org.apache.ignite.rest.client.api.RecoveryApi;
+import org.apache.ignite.rest.client.api.SystemDisasterRecoveryApi;
import org.apache.ignite.rest.client.invoker.ApiException;
import org.apache.ignite.rest.client.model.ClusterState;
import org.apache.ignite.rest.client.model.MigrateRequest;
@@ -41,7 +41,7 @@ public class MigrateToClusterCall implements
Call<MigrateToClusterCallInput, Str
@Override
public DefaultCallOutput<String> execute(MigrateToClusterCallInput input) {
ClusterManagementApi newClusterManagementClient = new
ClusterManagementApi(clientFactory.getClient(input.newClusterUrl()));
- RecoveryApi oldRecoveryClient = new
RecoveryApi(clientFactory.getClient(input.oldClusterUrl()));
+ SystemDisasterRecoveryApi oldRecoveryClient = new
SystemDisasterRecoveryApi(clientFactory.getClient(input.oldClusterUrl()));
ClusterState newClusterState;
try {
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/cluster/ResetClusterCall.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/cluster/ResetClusterCall.java
index c8d7da5e90c..ffcad52ae2c 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/cluster/ResetClusterCall.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/cluster/ResetClusterCall.java
@@ -23,7 +23,7 @@ import org.apache.ignite.internal.cli.core.call.Call;
import org.apache.ignite.internal.cli.core.call.DefaultCallOutput;
import org.apache.ignite.internal.cli.core.exception.IgniteCliApiException;
import org.apache.ignite.internal.cli.core.rest.ApiClientFactory;
-import org.apache.ignite.rest.client.api.RecoveryApi;
+import org.apache.ignite.rest.client.api.SystemDisasterRecoveryApi;
import org.apache.ignite.rest.client.invoker.ApiException;
import org.apache.ignite.rest.client.model.ResetClusterRequest;
@@ -38,7 +38,7 @@ public class ResetClusterCall implements
Call<ResetClusterCallInput, String> {
@Override
public DefaultCallOutput<String> execute(ResetClusterCallInput input) {
- RecoveryApi client = new
RecoveryApi(clientFactory.getClient(input.clusterUrl()));
+ SystemDisasterRecoveryApi client = new
SystemDisasterRecoveryApi(clientFactory.getClient(input.clusterUrl()));
ResetClusterRequest command = new ResetClusterRequest();
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/reset/ResetPartitionsCall.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/reset/ResetPartitionsCall.java
index a42e20e7bc4..cc20ae64090 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/reset/ResetPartitionsCall.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/reset/ResetPartitionsCall.java
@@ -22,7 +22,7 @@ import org.apache.ignite.internal.cli.core.call.Call;
import org.apache.ignite.internal.cli.core.call.DefaultCallOutput;
import org.apache.ignite.internal.cli.core.exception.IgniteCliApiException;
import org.apache.ignite.internal.cli.core.rest.ApiClientFactory;
-import org.apache.ignite.rest.client.api.RecoveryApi;
+import org.apache.ignite.rest.client.api.DisasterRecoveryApi;
import org.apache.ignite.rest.client.invoker.ApiException;
import org.apache.ignite.rest.client.model.ResetZonePartitionsRequest;
@@ -37,7 +37,7 @@ public class ResetPartitionsCall implements
Call<ResetPartitionsCallInput, Strin
@Override
public DefaultCallOutput<String> execute(ResetPartitionsCallInput input) {
- RecoveryApi client = new
RecoveryApi(clientFactory.getClient(input.clusterUrl()));
+ DisasterRecoveryApi client = new
DisasterRecoveryApi(clientFactory.getClient(input.clusterUrl()));
try {
ResetZonePartitionsRequest command = new
ResetZonePartitionsRequest();
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/restart/RestartPartitionsCall.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/restart/RestartPartitionsCall.java
index a2d1411d216..c3c2c44c041 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/restart/RestartPartitionsCall.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/restart/RestartPartitionsCall.java
@@ -24,7 +24,8 @@ import org.apache.ignite.internal.cli.core.call.Call;
import org.apache.ignite.internal.cli.core.call.DefaultCallOutput;
import org.apache.ignite.internal.cli.core.exception.IgniteCliApiException;
import org.apache.ignite.internal.cli.core.rest.ApiClientFactory;
-import org.apache.ignite.rest.client.api.RecoveryApi;
+import org.apache.ignite.rest.client.api.DisasterRecoveryApi;
+import org.apache.ignite.rest.client.invoker.ApiClient;
import org.apache.ignite.rest.client.invoker.ApiException;
import org.apache.ignite.rest.client.model.RestartZonePartitionsRequest;
@@ -39,7 +40,8 @@ public class RestartPartitionsCall implements
Call<RestartPartitionsCallInput, S
@Override
public DefaultCallOutput<String> execute(RestartPartitionsCallInput input)
{
- RecoveryApi client = new
RecoveryApi(clientFactory.getClient(input.clusterUrl()).setReadTimeout(DISASTER_RECOVERY_TIMEOUT_MILLIS));
+ ApiClient apiClient =
clientFactory.getClient(input.clusterUrl()).setReadTimeout(DISASTER_RECOVERY_TIMEOUT_MILLIS);
+ DisasterRecoveryApi client = new DisasterRecoveryApi(apiClient);
try {
RestartZonePartitionsRequest command = new
RestartZonePartitionsRequest();
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/states/PartitionStatesCall.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/states/PartitionStatesCall.java
index a79c16f4523..279ba5b4707 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/states/PartitionStatesCall.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/states/PartitionStatesCall.java
@@ -27,7 +27,7 @@ import
org.apache.ignite.internal.cli.core.call.DefaultCallOutput;
import org.apache.ignite.internal.cli.core.exception.IgniteCliApiException;
import org.apache.ignite.internal.cli.core.rest.ApiClientFactory;
import org.apache.ignite.internal.cli.sql.table.Table;
-import org.apache.ignite.rest.client.api.RecoveryApi;
+import org.apache.ignite.rest.client.api.DisasterRecoveryApi;
import org.apache.ignite.rest.client.invoker.ApiException;
import org.apache.ignite.rest.client.model.GlobalZonePartitionStateResponse;
import org.apache.ignite.rest.client.model.GlobalZonePartitionStatesResponse;
@@ -51,7 +51,7 @@ public class PartitionStatesCall implements
Call<PartitionStatesCallInput, Table
@Override
public DefaultCallOutput<Table> execute(PartitionStatesCallInput input) {
- RecoveryApi client = new
RecoveryApi(clientFactory.getClient(input.clusterUrl()));
+ DisasterRecoveryApi client = new
DisasterRecoveryApi(clientFactory.getClient(input.clusterUrl()));
try {
if (input.local()) {
@@ -66,7 +66,7 @@ public class PartitionStatesCall implements
Call<PartitionStatesCallInput, Table
private static DefaultCallOutput<Table> getGlobalPartitionStatesOutput(
PartitionStatesCallInput input,
- RecoveryApi client,
+ DisasterRecoveryApi client,
List<String> zoneNames
) throws ApiException {
GlobalZonePartitionStatesResponse globalStates =
client.getZoneGlobalPartitionStates(zoneNames, input.partitionIds());
@@ -85,7 +85,7 @@ public class PartitionStatesCall implements
Call<PartitionStatesCallInput, Table
}
private static DefaultCallOutput<Table> getLocalPartitionStatesOutput(
- RecoveryApi client,
+ DisasterRecoveryApi client,
List<String> zoneNames,
PartitionStatesCallInput input
) throws ApiException {
diff --git
a/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/recovery/DisasterRecoveryApi.java
b/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/recovery/DisasterRecoveryApi.java
index 4e2f2bae9ee..3d8edd5f3c9 100644
---
a/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/recovery/DisasterRecoveryApi.java
+++
b/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/recovery/DisasterRecoveryApi.java
@@ -39,11 +39,12 @@ import org.apache.ignite.internal.rest.constants.MediaType;
* Disaster recovery controller.
*/
@Controller("/management/v1/recovery")
-@Tag(name = "recovery")
+@Tag(name = "disasterRecovery")
public interface DisasterRecoveryApi {
@Post("zone/partitions/reset")
@Operation(
operationId = "resetZonePartitions",
+ summary = "Reset zone partitions",
description = "Updates assignments of zone's partitions in a
forced manner, allowing for the recovery of raft groups with "
+ "lost majorities."
)
@@ -59,6 +60,7 @@ public interface DisasterRecoveryApi {
@Post("zone/partitions/restart")
@Operation(
operationId = "restartZonePartitions",
+ summary = "Restart zone partitions",
description = "Restarts replica service and raft group of passed
zone partitions."
)
@ApiResponse(responseCode = "200", description = "Zone partitions
restarted.")
@@ -73,6 +75,7 @@ public interface DisasterRecoveryApi {
@Post("zone/partitions/restartWithCleanup")
@Operation(
operationId = "restartZonePartitionsWithCleanup",
+ summary = "Restart zone partitions with cleanup",
description = "Restarts replica service and raft group of passed
zone partitions with cleaning up of the storage."
)
@ApiResponse(responseCode = "200", description = "Zone partitions
restarted.")
@@ -85,7 +88,11 @@ public interface DisasterRecoveryApi {
CompletableFuture<Void> restartZonePartitionsWithCleanup(@Body
RestartZonePartitionsRequest command);
@Get("zone/state/local")
- @Operation(operationId = "getZoneLocalPartitionStates", description =
"Returns local zone partition states.")
+ @Operation(
+ operationId = "getZoneLocalPartitionStates",
+ summary = "Get local zone partition states",
+ description = "Returns local zone partition states."
+ )
@ApiResponse(responseCode = "200", description = "Zone partition states
returned.")
@ApiResponse(responseCode = "500", description = "Internal error.",
content = @Content(mediaType = MediaType.PROBLEM_JSON, schema =
@Schema(implementation = Problem.class)))
@@ -104,7 +111,11 @@ public interface DisasterRecoveryApi {
);
@Get("zone/state/global")
- @Operation(operationId = "getZoneGlobalPartitionStates", description =
"Returns global zone partition states.")
+ @Operation(
+ operationId = "getZoneGlobalPartitionStates",
+ summary = "Get global zone partition states",
+ description = "Returns global zone partition states."
+ )
@ApiResponse(responseCode = "200", description = "Zone partition states
returned.")
@ApiResponse(responseCode = "500", description = "Internal error.",
content = @Content(mediaType = MediaType.PROBLEM_JSON, schema =
@Schema(implementation = Problem.class)))
diff --git
a/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/recovery/system/SystemDisasterRecoveryApi.java
b/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/recovery/system/SystemDisasterRecoveryApi.java
index 2a4c204358e..aae391ff33c 100644
---
a/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/recovery/system/SystemDisasterRecoveryApi.java
+++
b/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/recovery/system/SystemDisasterRecoveryApi.java
@@ -37,12 +37,12 @@ import org.apache.ignite.internal.rest.constants.MediaType;
* @see <a
href="https://cwiki.apache.org/confluence/display/IGNITE/IEP-128%3A+CMG+and+Metastorage+Disaster+Recovery">IEP-128</a>
*/
@Controller("/management/v1/recovery/cluster")
-@Tag(name = "system")
-@Tag(name = "recovery")
+@Tag(name = "systemDisasterRecovery")
public interface SystemDisasterRecoveryApi {
@Post("reset")
@Operation(
operationId = "resetCluster",
+ summary = "Reset cluster",
description = "Initiates cluster reset to repair CMG/Metastorage
group/both."
)
@ApiResponse(responseCode = "200", description = "Cluster reset
initiated.")
@@ -58,6 +58,7 @@ public interface SystemDisasterRecoveryApi {
@Post("migrate")
@Operation(
operationId = "migrate",
+ summary = "Migrate nodes to repaired cluster",
description = "Migrates nodes from old cluster to new (repaired)
cluster."
)
@ApiResponse(responseCode = "200", description = "Migration initiated.")
diff --git
a/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/zone/DataNodesApi.java
b/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/zone/DataNodesApi.java
index 6806433fbef..b8af17f2de3 100644
---
a/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/zone/DataNodesApi.java
+++
b/modules/rest-api/src/main/java/org/apache/ignite/internal/rest/api/zone/DataNodesApi.java
@@ -44,6 +44,7 @@ public interface DataNodesApi {
@Get("{zoneName}/datanodes")
@Operation(
operationId = "getDataNodesForZone",
+ summary = "Get data nodes for zone",
description = "Returns current data nodes for zone."
)
@ApiResponse(
@@ -68,6 +69,7 @@ public interface DataNodesApi {
@Post("{zoneName}/datanodes/reset")
@Operation(
operationId = "resetDataNodesForZone",
+ summary = "Reset data nodes for zone",
description = "Recalculates and resets data nodes for zone."
)
@ApiResponse(responseCode = "200", description = "Data nodes are
recalculated and reset.")
@@ -85,6 +87,7 @@ public interface DataNodesApi {
@Post("/datanodes/reset")
@Operation(
operationId = "resetDataNodesForZones",
+ summary = "Reset data nodes for zones",
description = "Recalculates and resets data nodes for given zones."
)
@ApiResponse(responseCode = "200", description = "Data nodes are
recalculated and reset.")
diff --git
a/modules/system-disaster-recovery/src/integrationTest/java/org/apache/ignite/internal/disaster/system/SystemDisasterRecoveryClient.java
b/modules/system-disaster-recovery/src/integrationTest/java/org/apache/ignite/internal/disaster/system/SystemDisasterRecoveryClient.java
index 90c7cdf7bd7..5247f4778f6 100644
---
a/modules/system-disaster-recovery/src/integrationTest/java/org/apache/ignite/internal/disaster/system/SystemDisasterRecoveryClient.java
+++
b/modules/system-disaster-recovery/src/integrationTest/java/org/apache/ignite/internal/disaster/system/SystemDisasterRecoveryClient.java
@@ -23,7 +23,7 @@ import okhttp3.OkHttpClient.Builder;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.rest.client.api.ClusterManagementApi;
-import org.apache.ignite.rest.client.api.RecoveryApi;
+import org.apache.ignite.rest.client.api.SystemDisasterRecoveryApi;
import org.apache.ignite.rest.client.invoker.ApiClient;
import org.apache.ignite.rest.client.invoker.ApiException;
import org.apache.ignite.rest.client.model.ClusterState;
@@ -52,7 +52,7 @@ class SystemDisasterRecoveryClient {
);
try {
- RecoveryApi recoveryApi = new
RecoveryApi(createApiClient(httpHost, httpPort));
+ SystemDisasterRecoveryApi recoveryApi = new
SystemDisasterRecoveryApi(createApiClient(httpHost, httpPort));
ResetClusterRequest resetRequest = new ResetClusterRequest()
.cmgNodeNames(List.of(newCmgNodeNames))
.metastorageReplicationFactor(metastorageReplicationFactor);
@@ -74,7 +74,7 @@ class SystemDisasterRecoveryClient {
ClusterManagementApi clusterManagementApi = new
ClusterManagementApi(createApiClient(newHttpHost, newHttpPort));
ClusterState clusterState = clusterManagementApi.clusterState();
- RecoveryApi recoveryApi = new
RecoveryApi(createApiClient(oldHttpHost, oldHttpPort));
+ SystemDisasterRecoveryApi recoveryApi = new
SystemDisasterRecoveryApi(createApiClient(oldHttpHost, oldHttpPort));
MigrateRequest migrateRequest = new MigrateRequest()
.cmgNodes(clusterState.getCmgNodes())
.metaStorageNodes(clusterState.getMsNodes())