已合并
feat(webhook): add sandbox lifecycle notifications #174
hu-zhangying创建于 17 天前
feat(webhook): add sandbox lifecycle notifications #174
已合并
Pull Request已成功合入, 合并人@openeuler-ci-bot
(感谢 hu-zhangying 的贡献)17 天前 创建了 pull request,commit 53c04ddd
atomgit-bot
17 天前 评论:
17 天前 评论:
变更摘要
该 PR 为沙箱引入生命周期事件通知能力:新增 internal/webhook 包(内存注册的 Dispatcher、事件模型与异步 HTTP 投递)、新增 internal/id 包统一 ID 生成与校验,并在沙箱创建成功、被请求删除、意外退出时发布 sandbox.lifecycle.created / sandbox.lifecycle.killed 事件;daemon 侧新增 webhook 管理 API。同时为可靠识别"意外退出",将 VMM 进程退出信号从 <-chan error 重构为 driver.ProcessExit 接口,并让 Sandbox.Wait 透传进程退出错误。
主要改动
- 新增 webhook 事件模块:新增
internal/webhook/webhook.go,定义Dispatcher、Webhook、Event、Execution等结构,支持sandbox.lifecycle.created与sandbox.lifecycle.killed两类事件;Dispatcher仅在内存保存注册信息,事件发布时异步POST到订阅方 URL,失败最多重试 3 次。 - 沙箱生命周期事件发布:
conchruntime.Service新增WebhookDispatcher字段与SetWebhookDispatcher,CreateSandbox成功后发布EventSandboxCreated,RemoveSandbox发布EventSandboxKilled(kill_reason="request");新增HandleSandboxUnexpectedExit,将沙箱状态标记为SandboxUnknown并持久化后发布EventSandboxKilled(kill_reason="orphaned")。 - 意外退出识别:
sandbox.Manager新增unexpectedExitHandler与SetUnexpectedExitHandler,sandboxEntry增加expectedStop标记并在Delete时置位;handleSandboxExit仅在非预期退出时回调 handler,避免重复通知。 - VMM 进程退出机制重构:
internal/vmm/driver新增ProcessExit接口(Done()/Err()),Process以exitDonechannel 与exitOnce/exitErr/cleanupOnce取代原exitSignalchannel;Adapter的WaitForCreateReady、WaitForRestoreReady、CheckAgentAlive签名改为接收driver.ProcessExit,cloud-hypervisor 与 stratovirt 适配器同步更新,Sandbox.Wait改为透传进程退出错误。 - 新增 webhook 管理 API 与 ID 模块合并:daemon 注册
POST /api/v1/events/webhooks、GET /api/v1/events/webhooks、DELETE /api/v1/events/webhooks/{webhookID}路由及对应 handler,并新增webhook.invalid/webhook.not_found错误码;原internal/sandboxid包更名为internal/id,新增New()/NewWithPrefix()统一 ID 生成。


不准确?
atomgit-bot
17 天前 评论:
17 天前 评论:
17 天前 将weibaohui,yangzhao_kl,jimmieme,duguhaotian,wonleing,zmr_2020,gaodaweiky,lu-wei-army,zhaoyifan28设为审查人
17 天前 将weibaohui,yangzhao_kl,jimmieme,duguhaotian,wonleing,zmr_2020,gaodaweiky,lu-wei-army,zhaoyifan28设为审查人
17 天前 添加了label:sig/sig-CloudNative
此处折叠了61条消息 查看更多
openeuler-ci-bot
14 天前 评论:
14 天前 评论:
zhaoyifan28
14 天前 评论:
14 天前 评论:
/approve


14 天前 添加了label:approved
openeuler-ci-bot
14 天前 评论:
14 天前 评论:
14 天前 合入了pull request,合并节点 SHA:fa93d571d97233267f2ffadbf6b8b179801eeaac
当前PR是否有AI参与:
[x] 否
[ ] 是
__1. AI Agent 平台:
__2. AI 模型:
__3. Prompt上下文 :
参考:openEuler社区《生成式AI工具使用与开源贡献政策》
PR功能描述 / 为什么需要这个合入**:
该PR关联的issue
(格式为fixes #<issue号>, 或者resolves #<issue号>): fixes #
希望检视人员了解: