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

* 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:37:05 +08:00
committed by GitHub
parent 68671531d3
commit 4900c09d6c
+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")