diff --git a/common/src/main/scala/org/apache/celeborn/common/protocol/message/ControlMessages.scala b/common/src/main/scala/org/apache/celeborn/common/protocol/message/ControlMessages.scala
index c2c7b6bf4b5..e68212bafc6 100644
--- a/common/src/main/scala/org/apache/celeborn/common/protocol/message/ControlMessages.scala
+++ b/common/src/main/scala/org/apache/celeborn/common/protocol/message/ControlMessages.scala
@@ -425,11 +425,11 @@ object ControlMessages extends Logging {
object WorkerEventRequest {
def apply(
workers: util.List[WorkerInfo],
- eventType: String,
+ eventType: WorkerEventType,
requestId: String): PbWorkerEventRequest =
PbWorkerEventRequest.newBuilder()
.setRequestId(requestId)
- .setWorkerEventType(WorkerEventType.valueOf(eventType))
+ .setWorkerEventType(eventType)
.addAllWorkers(workers.asScala.map { workerInfo =>
PbSerDeUtils.toPbWorkerInfo(workerInfo, true, false)
}.toList.asJava)
diff --git a/master/src/main/scala/org/apache/celeborn/service/deploy/master/Master.scala b/master/src/main/scala/org/apache/celeborn/service/deploy/master/Master.scala
index 4c65e9816f5..7d8e5cc2d87 100644
--- a/master/src/main/scala/org/apache/celeborn/service/deploy/master/Master.scala
+++ b/master/src/main/scala/org/apache/celeborn/service/deploy/master/Master.scala
@@ -1218,7 +1218,7 @@ private[celeborn] class Master(
}
override def handleWorkerEvent(
- workerEventType: String,
+ workerEventType: WorkerEventType,
workers: Seq[WorkerInfo]): HandleResponse = {
val sb = new StringBuilder()
try {
diff --git a/master/src/main/scala/org/apache/celeborn/service/deploy/master/http/api/ApiMasterResource.scala b/master/src/main/scala/org/apache/celeborn/service/deploy/master/http/api/ApiMasterResource.scala
index ee6fcdd6730..ac326c5fb94 100644
--- a/master/src/main/scala/org/apache/celeborn/service/deploy/master/http/api/ApiMasterResource.scala
+++ b/master/src/main/scala/org/apache/celeborn/service/deploy/master/http/api/ApiMasterResource.scala
@@ -26,6 +26,7 @@ import io.swagger.v3.oas.annotations.tags.Tag
import org.apache.commons.lang3.StringUtils
import org.apache.celeborn.common.meta.WorkerInfo
+import org.apache.celeborn.common.protocol.WorkerEventType
import org.apache.celeborn.server.common.http.api.ApiRequestContext
@Tag(name = "Deprecated")
@@ -136,7 +137,9 @@ class ApiMasterResource extends ApiRequestContext {
}
sb.append("============================ Handle Worker Event =============================\n")
val workerList = workers.split(",").filter(_.nonEmpty).map(WorkerInfo.fromUniqueId)
- sb.append(httpService.handleWorkerEvent(normalizeParam(eventType), workerList)._2)
+ sb.append(httpService.handleWorkerEvent(
+ WorkerEventType.valueOf(normalizeParam(eventType)),
+ workerList)._2)
sb.toString()
}
}
diff --git a/master/src/main/scala/org/apache/celeborn/service/deploy/master/http/api/v1/WorkerResource.scala b/master/src/main/scala/org/apache/celeborn/service/deploy/master/http/api/v1/WorkerResource.scala
index a41a07c5d48..8d1b20bc3a0 100644
--- a/master/src/main/scala/org/apache/celeborn/service/deploy/master/http/api/v1/WorkerResource.scala
+++ b/master/src/main/scala/org/apache/celeborn/service/deploy/master/http/api/v1/WorkerResource.scala
@@ -26,7 +26,9 @@ import io.swagger.v3.oas.annotations.media.{Content, Schema}
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.tags.Tag
+import org.apache.celeborn.common.protocol.WorkerEventType
import org.apache.celeborn.rest.v1.model._
+import org.apache.celeborn.rest.v1.model.SendWorkerEventRequest.EventTypeEnum
import org.apache.celeborn.server.common.http.api.ApiRequestContext
import org.apache.celeborn.server.common.http.api.v1.ApiUtils
import org.apache.celeborn.service.deploy.master.Master
@@ -137,7 +139,8 @@ class WorkerResource extends ApiRequestContext {
throw new BadRequestException(
s"None of the workers are known: ${unknownWorkers.map(_.readableAddress).mkString(", ")}")
}
- val (success, msg) = httpService.handleWorkerEvent(request.getEventType.toString, workers)
+ val (success, msg) =
+ httpService.handleWorkerEvent(toWorkerEventType(request.getEventType), workers)
val finalMsg =
if (unknownWorkers.isEmpty) {
msg
@@ -146,4 +149,16 @@ class WorkerResource extends ApiRequestContext {
}
new HandleResponse().success(success).message(finalMsg)
}
+
+ private def toWorkerEventType(enum: EventTypeEnum): WorkerEventType = {
+ enum match {
+ case EventTypeEnum.NONE => WorkerEventType.None
+ case EventTypeEnum.IMMEDIATELY => WorkerEventType.Immediately
+ case EventTypeEnum.DECOMMISSION => WorkerEventType.Decommission
+ case EventTypeEnum.DECOMMISSIONTHENIDLE => WorkerEventType.DecommissionThenIdle
+ case EventTypeEnum.GRACEFUL => WorkerEventType.Graceful
+ case EventTypeEnum.RECOMMISSION => WorkerEventType.Recommission
+ case _ => WorkerEventType.UNRECOGNIZED
+ }
+ }
}
diff --git a/master/src/test/scala/org/apache/celeborn/service/deploy/master/http/api/v1/ApiV1MasterResourceSuite.scala b/master/src/test/scala/org/apache/celeborn/service/deploy/master/http/api/v1/ApiV1MasterResourceSuite.scala
index 35649ec75cb..5ae688d91ae 100644
--- a/master/src/test/scala/org/apache/celeborn/service/deploy/master/http/api/v1/ApiV1MasterResourceSuite.scala
+++ b/master/src/test/scala/org/apache/celeborn/service/deploy/master/http/api/v1/ApiV1MasterResourceSuite.scala
@@ -143,7 +143,7 @@ class ApiV1MasterResourceSuite extends ApiV1BaseResourceSuite {
Entity.entity(sendWorkerEventRequest, MediaType.APPLICATION_JSON))
assert(HttpServletResponse.SC_BAD_REQUEST == response.getStatus)
assert(
- response.readEntity(classOf[String]).contains("eventType(None) and workers([]) are required"))
+ response.readEntity(classOf[String]).contains("eventType(NONE) and workers([]) are required"))
sendWorkerEventRequest.workers(Collections.singletonList(worker))
response = webTarget.path("workers/events").request(MediaType.APPLICATION_JSON).post(
Entity.entity(sendWorkerEventRequest, MediaType.APPLICATION_JSON))
diff --git a/openapi/openapi-client/pom.xml b/openapi/openapi-client/pom.xml
index e608d3e302c..7309cb8a2ff 100644
--- a/openapi/openapi-client/pom.xml
+++ b/openapi/openapi-client/pom.xml
@@ -244,6 +244,7 @@
true
false
none
+ true
@@ -278,6 +279,7 @@
true
false
none
+ true
diff --git a/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/DynamicConfig.java b/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/DynamicConfig.java
index c0ae71fb69f..23d30a1e210 100644
--- a/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/DynamicConfig.java
+++ b/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/DynamicConfig.java
@@ -71,7 +71,7 @@ public String toString() {
@JsonCreator
public static LevelEnum fromValue(String value) {
for (LevelEnum b : LevelEnum.values()) {
- if (b.value.equals(value)) {
+ if (b.value.equalsIgnoreCase(value)) {
return b;
}
}
diff --git a/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/PartitionLocationData.java b/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/PartitionLocationData.java
index 55311f03bd3..dd2cd45776a 100644
--- a/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/PartitionLocationData.java
+++ b/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/PartitionLocationData.java
@@ -74,7 +74,7 @@ public String toString() {
@JsonCreator
public static ModeEnum fromValue(String value) {
for (ModeEnum b : ModeEnum.values()) {
- if (b.value.equals(value)) {
+ if (b.value.equalsIgnoreCase(value)) {
return b;
}
}
@@ -123,7 +123,7 @@ public String toString() {
@JsonCreator
public static StorageEnum fromValue(String value) {
for (StorageEnum b : StorageEnum.values()) {
- if (b.value.equals(value)) {
+ if (b.value.equalsIgnoreCase(value)) {
return b;
}
}
diff --git a/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/SendWorkerEventRequest.java b/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/SendWorkerEventRequest.java
index c0934c84032..290b9ad4ee7 100644
--- a/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/SendWorkerEventRequest.java
+++ b/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/SendWorkerEventRequest.java
@@ -45,17 +45,17 @@ public class SendWorkerEventRequest {
* The type of the event.
*/
public enum EventTypeEnum {
- IMMEDIATELY("Immediately"),
+ IMMEDIATELY("IMMEDIATELY"),
- DECOMMISSION("Decommission"),
+ DECOMMISSION("DECOMMISSION"),
- DECOMMISSION_THEN_IDLE("DecommissionThenIdle"),
+ DECOMMISSIONTHENIDLE("DECOMMISSIONTHENIDLE"),
- GRACEFUL("Graceful"),
+ GRACEFUL("GRACEFUL"),
- RECOMMISSION("Recommission"),
+ RECOMMISSION("RECOMMISSION"),
- NONE("None");
+ NONE("NONE");
private String value;
@@ -76,7 +76,7 @@ public String toString() {
@JsonCreator
public static EventTypeEnum fromValue(String value) {
for (EventTypeEnum b : EventTypeEnum.values()) {
- if (b.value.equals(value)) {
+ if (b.value.equalsIgnoreCase(value)) {
return b;
}
}
diff --git a/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/WorkerExitRequest.java b/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/WorkerExitRequest.java
index e6bf683a738..79fb12d035a 100644
--- a/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/WorkerExitRequest.java
+++ b/openapi/openapi-client/src/main/java/org/apache/celeborn/rest/v1/model/WorkerExitRequest.java
@@ -40,13 +40,13 @@ public class WorkerExitRequest {
* The type of the worker exit request.
*/
public enum TypeEnum {
- DECOMMISSION("Decommission"),
+ DECOMMISSION("DECOMMISSION"),
- GRACEFUL("Graceful"),
+ GRACEFUL("GRACEFUL"),
- IMMEDIATELY("Immediately"),
+ IMMEDIATELY("IMMEDIATELY"),
- NONE("None");
+ NONE("NONE");
private String value;
@@ -67,7 +67,7 @@ public String toString() {
@JsonCreator
public static TypeEnum fromValue(String value) {
for (TypeEnum b : TypeEnum.values()) {
- if (b.value.equals(value)) {
+ if (b.value.equalsIgnoreCase(value)) {
return b;
}
}
diff --git a/openapi/openapi-client/src/main/openapi3/master_rest_v1.yaml b/openapi/openapi-client/src/main/openapi3/master_rest_v1.yaml
index c03fe11eb93..0c4948abfcf 100644
--- a/openapi/openapi-client/src/main/openapi3/master_rest_v1.yaml
+++ b/openapi/openapi-client/src/main/openapi3/master_rest_v1.yaml
@@ -706,12 +706,12 @@ components:
type: string
description: The type of the event.
enum:
- - Immediately
- - Decommission
- - DecommissionThenIdle
- - Graceful
- - Recommission
- - None
+ - IMMEDIATELY
+ - DECOMMISSION
+ - DECOMMISSIONTHENIDLE
+ - GRACEFUL
+ - RECOMMISSION
+ - NONE
workers:
type: array
description: The workers to send the event.
diff --git a/openapi/openapi-client/src/main/openapi3/worker_rest_v1.yaml b/openapi/openapi-client/src/main/openapi3/worker_rest_v1.yaml
index 3db792a54f2..29bd2865dd2 100644
--- a/openapi/openapi-client/src/main/openapi3/worker_rest_v1.yaml
+++ b/openapi/openapi-client/src/main/openapi3/worker_rest_v1.yaml
@@ -602,13 +602,13 @@ components:
properties:
type:
type: string
- default: None
+ default: NONE
description: The type of the worker exit request.
enum:
- - Decommission
- - Graceful
- - Immediately
- - None
+ - DECOMMISSION
+ - GRACEFUL
+ - IMMEDIATELY
+ - NONE
HandleResponse:
type: object
diff --git a/project/CelebornBuild.scala b/project/CelebornBuild.scala
index 25f904b811e..1c18aab0d29 100644
--- a/project/CelebornBuild.scala
+++ b/project/CelebornBuild.scala
@@ -1364,6 +1364,7 @@ object CelebornOpenApi {
"supportUrlQuery" -> "false",
"annotationLibrary" -> "none",
"templateDir" -> s"$openApiSpecDir/templates",
+ "useEnumCaseInsensitive" -> "true"
)
)
diff --git a/service/src/main/scala/org/apache/celeborn/server/common/HttpService.scala b/service/src/main/scala/org/apache/celeborn/server/common/HttpService.scala
index 2efcec54574..2301ea25c7c 100644
--- a/service/src/main/scala/org/apache/celeborn/server/common/HttpService.scala
+++ b/service/src/main/scala/org/apache/celeborn/server/common/HttpService.scala
@@ -27,7 +27,7 @@ import org.eclipse.jetty.servlet.FilterHolder
import org.apache.celeborn.common.CelebornConf
import org.apache.celeborn.common.internal.Logging
import org.apache.celeborn.common.meta.WorkerInfo
-import org.apache.celeborn.common.protocol.TransportModuleConstants
+import org.apache.celeborn.common.protocol.{TransportModuleConstants, WorkerEventType}
import org.apache.celeborn.common.util.Utils
import org.apache.celeborn.server.common.http.HttpServer
import org.apache.celeborn.server.common.http.api.ApiRootResource
@@ -187,7 +187,9 @@ abstract class HttpService extends Service with Logging {
def exit(exitType: String): String = throw new UnsupportedOperationException()
- def handleWorkerEvent(workerEventType: String, workers: Seq[WorkerInfo]): HandleResponse =
+ def handleWorkerEvent(
+ workerEventType: WorkerEventType,
+ workers: Seq[WorkerInfo]): HandleResponse =
throw new UnsupportedOperationException()
def getWorkerEventInfo(): String = throw new UnsupportedOperationException()
diff --git a/worker/src/test/scala/org/apache/celeborn/service/deploy/worker/http/api/v1/ApiV1OpenapiClientSuite.scala b/worker/src/test/scala/org/apache/celeborn/service/deploy/worker/http/api/v1/ApiV1OpenapiClientSuite.scala
index e5368cf6dfd..1557f388a15 100644
--- a/worker/src/test/scala/org/apache/celeborn/service/deploy/worker/http/api/v1/ApiV1OpenapiClientSuite.scala
+++ b/worker/src/test/scala/org/apache/celeborn/service/deploy/worker/http/api/v1/ApiV1OpenapiClientSuite.scala
@@ -108,7 +108,7 @@ class ApiV1OpenapiClientSuite extends ApiV1WorkerOpenapiClientSuite {
handleResponse = api.sendWorkerEvent(
new SendWorkerEventRequest().addWorkersItem(workerId).eventType(
- EventTypeEnum.DECOMMISSION_THEN_IDLE))
+ EventTypeEnum.DECOMMISSIONTHENIDLE))
assert(handleResponse.getSuccess)
assert(!api.getWorkerEvents.getWorkerEvents.isEmpty)