fix: 删除操作清理远端资源并拦截悬空引用
- 部署删除: k8s 模式清理 StatefulSet/Service/ConfigMap 与 PVC,先卸载关联采集器 - 采集器删除: 同步卸载成功后再删记录,失败保留避免孤儿 - 集群/存储/主机删除: 有部署或采集器引用时拒绝,避免悬空外键 - Token RBAC 补 services/proxy,保证 cluster-svc 数据源可查询
This commit is contained in:
1 parent
56e1245b70
commit
b433b5f9dd
7 files changed
+91
-20
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user