[CELEBORN-1477][FOLLOWUP] /api/v1/workers/events should support None eventType to align /sendWorkerEvent
### What changes were proposed in this pull request? `/api/v1/workers/events` should support `None` `eventType` to align `/sendWorkerEvent`. ### Why are the changes needed? Legal event types of `/sendWorkerEvent` are `None`, `Immediately`, `Decommission`, `DecommissionThenIdle`, `Graceful`, `Recommission`. But `/api/v1/workers/events` does not support `eventType` with `None` type. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? `ApiV1MasterResourceSuite#worker resource` Closes #2732 from SteNicholas/CELEBORN-1477. Authored-by: SteNicholas <programgeek@163.com> Signed-off-by: Shuang <lvshuang.xjs@alibaba-inc.com>
This commit is contained in:
parent
1053129ea4
commit
baef31abb8
@ -127,7 +127,7 @@ class WorkerResource extends ApiRequestContext {
|
||||
@Path("/events")
|
||||
def sendWorkerEvents(request: SendWorkerEventRequest): HandleResponse =
|
||||
ensureMasterIsLeader(master) {
|
||||
if (request.getEventType == SendWorkerEventRequest.EventTypeEnum.NONE || request.getWorkers.isEmpty) {
|
||||
if (request.getEventType == null || request.getWorkers.isEmpty) {
|
||||
throw new BadRequestException(
|
||||
s"eventType(${request.getEventType}) and workers(${request.getWorkers}) are required")
|
||||
}
|
||||
|
||||
@ -133,12 +133,21 @@ class ApiV1MasterResourceSuite extends ApiV1BaseResourceSuite {
|
||||
assert(response.readEntity(classOf[WorkerEventsResponse]).getWorkerEvents.isEmpty)
|
||||
|
||||
val sendWorkerEventRequest = new SendWorkerEventRequest()
|
||||
.eventType(SendWorkerEventRequest.EventTypeEnum.DECOMMISSION)
|
||||
.workers(Collections.singletonList(worker))
|
||||
response = webTarget.path("workers/events").request(MediaType.APPLICATION_JSON).post(
|
||||
Entity.entity(sendWorkerEventRequest, MediaType.APPLICATION_JSON))
|
||||
assert(HttpServletResponse.SC_BAD_REQUEST == response.getStatus)
|
||||
assert(response.readEntity(classOf[String]).contains(
|
||||
"None of the workers are known"))
|
||||
assert(
|
||||
response.readEntity(classOf[String]).contains("eventType(null) and workers([]) are required"))
|
||||
sendWorkerEventRequest.eventType(SendWorkerEventRequest.EventTypeEnum.NONE)
|
||||
response = webTarget.path("workers/events").request(MediaType.APPLICATION_JSON).post(
|
||||
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"))
|
||||
sendWorkerEventRequest.workers(Collections.singletonList(worker))
|
||||
response = webTarget.path("workers/events").request(MediaType.APPLICATION_JSON).post(
|
||||
Entity.entity(sendWorkerEventRequest, MediaType.APPLICATION_JSON))
|
||||
assert(HttpServletResponse.SC_BAD_REQUEST == response.getStatus)
|
||||
assert(response.readEntity(classOf[String]).contains("None of the workers are known"))
|
||||
}
|
||||
}
|
||||
|
||||
@ -85,7 +85,7 @@ public class SendWorkerEventRequest {
|
||||
}
|
||||
|
||||
public static final String JSON_PROPERTY_EVENT_TYPE = "eventType";
|
||||
private EventTypeEnum eventType = EventTypeEnum.NONE;
|
||||
private EventTypeEnum eventType;
|
||||
|
||||
public static final String JSON_PROPERTY_WORKERS = "workers";
|
||||
private List<WorkerId> workers = new ArrayList<>();
|
||||
|
||||
@ -704,7 +704,6 @@ components:
|
||||
properties:
|
||||
eventType:
|
||||
type: string
|
||||
default: None
|
||||
description: The type of the event.
|
||||
enum:
|
||||
- Immediately
|
||||
|
||||
Loading…
Reference in New Issue
Block a user