fix(region): 避免翻页查询导致公有云实例被误清除 (#21481)

This commit is contained in:
屈轩
2024-10-28 16:41:06 +08:00
committed by GitHub
parent 03e7dcd2b7
commit 8aa76d2176
+13 -9
View File
@@ -3000,17 +3000,21 @@ func (self *SGuest) SyncRemoveCloudVM(ctx context.Context, userCred mcclient.Tok
}
return q
})
if err == nil {
_, err = db.Update(self, func() error {
self.HostId = host.GetId()
self.Status = iVM.GetStatus()
self.PowerStates = iVM.GetPowerStates()
self.InferPowerStates()
return nil
})
return err
if err != nil {
log.Errorf("fetch vm %s(%s) host by id %s error: %v", self.Name, self.ExternalId, hostId, err)
return nil
}
_, err = db.Update(self, func() error {
self.HostId = host.GetId()
self.Status = iVM.GetStatus()
self.PowerStates = iVM.GetPowerStates()
self.InferPowerStates()
return nil
})
return err
}
// 公有云实例, 因为翻页查询导致实例返回结果漏查,且GetIHostId一般返回为空
return nil
} else if errors.Cause(err) != cloudprovider.ErrNotFound {
return errors.Wrap(err, "GetIVMById")
}