forked from lei.chen/myxce
feat: P0-2a C-side plumbing for host control
Add the full call chain for host control operations from the Go API server through the C library to the controller: - schema/controller.capnp: HostControl struct + hostctrlmsg @21 in Request.body union - include/typemap.h: xce_hostctrl_t* hostctrlmsg in body union (placed after @20 clrpreasonmsg, matching capnp ordinal) - include/client.h, xceapi.h, request.h: declarations for xcecli_hostctrl, xce_hostctrl, xce_hostctrl_req - lib/client.c: xcecli_hostctrl (validate + delegate to xce_hostctrl) - lib/xceapi.c: xce_hostctrl (validate ctx state + send + wait reply) - lib/request.c: xce_hostctrl_req (validate hostname/empty/nil, accept only HOST_OPEN/HOST_CLOSE, reject HOST_TAG/UNTAG) - lib/helper.c: Request_body_hostctrlmsg cases in xce_request_body() and xce_request_msg_name() - controller/cluster.c: OPCode_hostcontrol dispatch - controller/include/cluster.h: do_hostcontrol_op declaration - controller/worker.c: do_hostcontrol_op + fix pre-existing goto-clean bug in worker_ctrl that leaked write lock and reference on HOST_OPEN/HOST_CLOSE no-op paths TDD: 8 xce_hostctrl_req validation tests (null ep, null ctrl, null/empty hostname, HOST_DO_NONE no-op, HOST_TAG/UNTAG reject, negative action reject, HOST_OPEN/CLOSE accept via xce_request). 116/116 xcelib tests pass. CGO_ENABLED=0 Go backend tests pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
ac7ac99ced
commit
dcb1b4fe25
15 changed files with 187 additions and 4 deletions
|
|
@ -515,6 +515,11 @@ struct QueueControl $C.mapname("xce_queuectrl_t") {
|
|||
queue @1: Text $C.mapname("queue");
|
||||
}
|
||||
|
||||
struct HostControl $C.mapname("xce_hostctrl_t") {
|
||||
action @0: UInt32 $C.mapname("action");
|
||||
hostname @1: Text $C.mapname("hostname");
|
||||
}
|
||||
|
||||
struct RequestReply $C.mapname("xce_reply_t"){
|
||||
seq @0: UInt64;
|
||||
opcode @1: OPCode;
|
||||
|
|
@ -582,6 +587,7 @@ struct Request $C.mapname("xce_request_t"){
|
|||
runtaskmsg @18: RunTask;
|
||||
preasonmsg @19: PendReasonSet;
|
||||
clrpreasonmsg @20: ClearPReason;
|
||||
hostctrlmsg @21: HostControl;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue