fix: 删除操作清理远端资源并拦截悬空引用
CI / Backend (go vet + test) (push) Canceled after 0s
CI / Frontend (lint + build + test) (push) Canceled after 0s

- 部署删除: k8s 模式清理 StatefulSet/Service/ConfigMap 与 PVC,先卸载关联采集器
- 采集器删除: 同步卸载成功后再删记录,失败保留避免孤儿
- 集群/存储/主机删除: 有部署或采集器引用时拒绝,避免悬空外键
- Token RBAC 补 services/proxy,保证 cluster-svc 数据源可查询
This commit is contained in:
logan committed 2026-10-30 01:17:26 +08:00
1 parent 56e1245b70
commit b433b5f9dd
7 files changed
+91 -20

No files matched your search

+10
View File
@@ -186,6 +186,16 @@ func (s *HostService) Delete(id uint) error {
defer db.Unlock()
for i, h := range db.Hosts {
if h.ID == id {
for _, d := range db.Deployments {
if d.HostID != nil && *d.HostID == id {
return fmt.Errorf("仍有部署使用该主机,请先删除部署")
}
}
for _, c := range db.Collectors {
if c.HostID != nil && *c.HostID == id {
return fmt.Errorf("仍有采集器使用该主机,请先删除采集器")
}
}
db.Hosts = append(db.Hosts[:i], db.Hosts[i+1:]...)
db.RequestSave()
return nil