Automated cherry pick of #21079: 1、裸金属删除时,GuestUndeployTask会出现无法调用任务完成方法OnGuestUndeployComplete,导致任务卡住的情况 (#21231)

* 1、裸金属删除时,GuestUndeployTask会出现无法调用任务完成方法OnGuestUndeployComplete,导致任务卡住的情况 2、裸金属删除时,回调用baremetal-agent的sync-config接口不止一次,调用时出现请求参数没有传递server_id情况,导致在OnPXEBoot调用getServer时删除了baremetal的server信息,致使后面的DoEraseDisk方法报错

* 1、裸金属删除时,GuestUndeployTask onInit去掉host不为空时的SetStageComplete函数

---------

Co-authored-by: gj <gj@qq.com>
This commit is contained in:
Zexi Li
2024-09-13 14:36:54 +08:00
committed by GitHub
co-authored by gj
parent c2a0620df2
commit f3cd59d5ca
+3 -1
View File
@@ -630,8 +630,10 @@ func (b *SBaremetalInstance) SaveDesc(ctx context.Context, desc jsonutils.JSONOb
b.descLock.Lock()
defer b.descLock.Unlock()
if desc != nil {
if desc != nil && b.desc != nil && b.desc.Contains("server_id") && !desc.Contains("server_id") {
desc.(*jsonutils.JSONDict).Set("server_id", jsonutils.NewString(b.server.GetId()))
}
b.desc = desc.(*jsonutils.JSONDict)
if b.desc.Contains("sys_info") {
sysInfo := types.SSystemInfo{}
err := b.desc.Unmarshal(&sysInfo, "sys_info")