- 拆模块:CHV 从 cloud/sandbox.py 巨类拆到 cloud/chv/(executor/ pool/config/api_client/ssh_transport/disk/errors),sandbox 只留 兼容 re-export,旧导入路径与新路径是同一对象 - 去重复:goal 解析、host 顶层参数、runner 超时抽成共享 helper, Local 与 CHV 在矩阵输入下结论全等(Docker goal-resume 变体 有意保留内联版,见 PR 描述) - 安全:SSH host key 按 VM 钉死(state_dir/<vm>/known_hosts, ssh-keyscan 首次捕获 TOFU),废除 no + /dev/null;CHV_SSH_USER 空串与 CHV_SSH_PORT 越界直接拒绝,不静默 fallback - execute 语义:只读已运行 VM,未运行报 vm_not_running,不为 status 起 VM - 预热池:registry 落盘、重启载入只当孤儿、reconcile 清理、 损坏 quarantine;条目仍一次性,绝不复用脏 VM - 长任务:VM 中途死亡判 interrupted(断点可续跑);中途心跳 经评估不做(无客内进度信号可采) - #215 未合并:只列复用清单,不复制模块 测试:原 42 项 + 新 24 项全过;相关旧套件与 cloud 全量 1496 项 全过(skipped=4)。验证仍是 mock + 干跑 + 单元测试,未做真机、 压测、安全审计;堆叠于 #216 之上,base 为 feat-cloud-hypervisor。
19 lines
734 B
Python
19 lines
734 B
Python
"""Cloud Hypervisor 执行器包(从 cloud/sandbox.py 巨类拆出)。
|
||
|
||
公开名与 #216 一致,cloud/sandbox.py 会 re-export 它们,
|
||
保证旧导入路径可用:
|
||
- CloudHypervisorExecutor:执行器本体(executor.py)
|
||
- WarmPool:预热池 + registry 持久化与孤儿清理(pool.py)
|
||
- ChvFailure:分类失败(errors.py)
|
||
|
||
子模块分工见 executor.py 头注释。本包顶层 import 不触
|
||
cloud.sandbox(执行器方法内按需 import 共享 helper),
|
||
所以任何导入顺序都不会循环。
|
||
"""
|
||
|
||
from cloud.chv.errors import ChvFailure
|
||
from cloud.chv.executor import CloudHypervisorExecutor
|
||
from cloud.chv.pool import WarmPool
|
||
|
||
__all__ = ["ChvFailure", "CloudHypervisorExecutor", "WarmPool"]
|