架构:WarmPool 从 cloud/chv/pool.py 移到 experimental_pool.py, 生产残留清理彻底分文件到 cloud/chv/orphans.py(facade 直接读 registry 文件清理,不构造池、不碰 prewarm/acquire/release); cloud/chv 与 cloud/sandbox 不再导出 WarmPool,旧路径一律 ImportError(CHV 未合并、无生产用户,兼容保留已无保留理由); worker 改走 orphans facade,不再持有 _warm_pool;#215 对齐从 接口形状推进到 REPLACEMENT_POINTS 替换清单(R1/R2 可机械替换、 R3 永不替换,#215 模块当前不存在由测试钉住)。 可维护性:build_chv_config 拆成 base/ssh/network/quota/disk/ timeout 六片段(组装只做 dict 合并,键冲突即报错;38 字段集 与取值不变,单项非法报错文案逐字一致);ADR-12 模块职责图 与禁 import 清单(AST 钉住);cloud/chv/ 公开 API 全量类型 标注、无 Any 逃逸,并修正三处旧标注错误;死代码扫一遍 (删实验池已无调用的 _quarantine 委托与未用 _LOGGER)。 前端(只读侧,不做控制按钮):chv.ts 新增纯逻辑谓词与文案 (执行器精确匹配、附件守卫、VM 状态文案、列表徽标);列表 行新增 VM 已报告死亡徽标;详情对全部 CHV 任务显示 VM 行 (已报告死亡/未报告死亡,不猜 live);WorkersSection 与成本 卡沿用已有数据,不新开池管理/成本页;服务端未新增第二个 生命周期字段(持久化事实只有三项,chv_vm_dead 已是完整派生), 只把派生抽成 _chv_vm_dead_from_row 并补 goal 回落形态测试。
34 lines
1.5 KiB
Python
34 lines
1.5 KiB
Python
"""Cloud Hypervisor 执行器包(从 cloud/sandbox.py 巨类拆出)。
|
||
|
||
公开名与 #216 一致,cloud/sandbox.py 会 re-export 生产
|
||
接口,保证旧导入路径可用——但 WarmPool 除外(本轨破环
|
||
性清理,见下):
|
||
- CloudHypervisorExecutor:执行器本体(executor.py)
|
||
- ChvFailure:分类失败(errors.py)
|
||
- reconcile_orphans_for_executor:生产残留清理唯一入口
|
||
(orphans.py,只读 registry 文件做清理,不构造池)
|
||
|
||
破环性清理(feat-chv-arch-maint-fe,未合并前即生效,
|
||
合并时按 PR 描述的清单检查调用方):WarmPool 已从
|
||
cloud/chv/pool.py 移到 cloud/chv/experimental_pool.py,
|
||
本包与 cloud/sandbox.py 不再导出它。旧路径
|
||
`from cloud.chv import WarmPool`、
|
||
`from cloud.chv.pool import WarmPool`、
|
||
`from cloud.sandbox import WarmPool` 一律 ImportError;
|
||
实验用法只走
|
||
`from cloud.chv.experimental_pool import WarmPool`。
|
||
清理理由:CHV 尚未合并、尚无生产用户,兼容保留只是
|
||
“怕断 import”,留着反而让生产代码有路可走进实验接口。
|
||
|
||
子模块分工见 executor.py 头注释与 docs/chv-architecture.md
|
||
ADR-12。本包顶层 import 不触 cloud.sandbox(执行器方法
|
||
内按需 import 共享 helper),所以任何导入顺序都不会循环。
|
||
"""
|
||
|
||
from cloud.chv.errors import ChvFailure
|
||
from cloud.chv.executor import CloudHypervisorExecutor
|
||
from cloud.chv.orphans import reconcile_orphans_for_executor
|
||
|
||
__all__ = ["ChvFailure", "CloudHypervisorExecutor",
|
||
"reconcile_orphans_for_executor"]
|