myxce/src/include
Rongsong Shen dcb1b4fe25 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>
2026-04-17 07:46:41 +00:00
..
xce save works 2026-03-06 18:20:30 +08:00
attrs.h improve xkvmgr and testsuite for scheduler 2026-02-26 14:39:12 +08:00
bitset.h - introduce bitset 2026-02-13 11:01:33 +08:00
client.h feat: P0-2a C-side plumbing for host control 2026-04-17 07:46:41 +00:00
clusterconfig.h support limit 2026-01-12 15:27:54 +08:00
config.h save works 2026-03-06 18:20:30 +08:00
configobj.h save works 2026-03-03 16:49:26 +08:00
dataq.h use nix build & meson & zlog 2025-11-03 18:19:59 +08:00
delay.h improve ordq 2025-12-17 15:28:27 +08:00
group.h save works 2026-03-03 16:49:26 +08:00
helper.h improve api server support 2026-01-23 17:33:10 +08:00
hook.h reformat code and job array 2025-11-07 16:14:27 +08:00
htab.h reformat code and job array 2025-11-07 16:14:27 +08:00
idgen.h jobid generate 2025-11-07 18:17:34 +08:00
jobj.h save works 2026-03-02 12:14:30 +08:00
kv.h use librtti for worker/queue/resource 2026-02-25 16:56:50 +08:00
kvmgr.h save works 2026-03-04 18:18:53 +08:00
misc.h 1st workable scheduler with resource from controller 2025-12-31 15:50:52 +08:00
myconf.h security communication with openssl and simplify netio 2025-11-18 11:26:36 +08:00
mylock.h use nix build & meson & zlog 2025-11-03 18:19:59 +08:00
netio.h fix pkt size problem and fmt_jobid 2025-12-24 17:56:45 +08:00
objs.h update controller code 2025-11-05 16:58:57 +08:00
ordq.h pass pend reason back to controller 2025-12-23 15:29:26 +08:00
preason.h scheduling using real slots number 2025-12-30 18:13:15 +08:00
qobj.h save works 2026-03-02 12:14:30 +08:00
request.h feat: P0-2a C-side plumbing for host control 2026-04-17 07:46:41 +00:00
resobj.h save works 2026-03-03 16:49:26 +08:00
resreq.h save works 2026-02-28 17:55:50 +08:00
typemap.h feat: P0-2a C-side plumbing for host control 2026-04-17 07:46:41 +00:00
utils.h save works 2026-03-03 16:49:26 +08:00
vtaskmgr.h security communication with openssl and simplify netio 2025-11-18 11:26:36 +08:00
wobj.h save works 2026-03-02 12:14:30 +08:00
xcealloc.h scheduling using real slots number 2025-12-30 18:13:15 +08:00
xceapi.h feat: P0-2a C-side plumbing for host control 2026-04-17 07:46:41 +00:00
xcectx.h support passing args to request handle for elimination of global var 2025-12-11 17:07:51 +08:00
xcelimit.h save works 2026-03-03 16:49:26 +08:00
xcelog.h use clang-format to format code 2025-11-25 14:58:09 +08:00
xlist.h support limit 2026-01-12 15:27:54 +08:00
xstring.h save works 2026-03-03 16:49:26 +08:00
xvec.h using xvec related api in scheduler 2026-01-16 18:21:37 +08:00
zarray.h use librtti for worker/queue/resource 2026-02-25 16:56:50 +08:00