fix(region): insert iso sync guest status (#20540)

This commit is contained in:
wanyaoqi
2024-06-16 23:01:35 +08:00
committed by GitHub
parent 0b7c9359e3
commit 13a100fefe
+16 -2
View File
@@ -63,8 +63,6 @@ func (self *StorageCacheImageTask) OnRelinquishLeastUsedCachedImageComplete(ctx
db.OpsLog.LogEvent(storageCache, db.ACT_CACHING_IMAGE, imageId, self.UserCred)
self.SetStage("OnImageCacheComplete", nil)
var host *models.SHost
var err error
serverId, _ := self.Params.GetString("server_id")
@@ -76,6 +74,7 @@ func (self *StorageCacheImageTask) OnRelinquishLeastUsedCachedImageComplete(ctx
return
}
server := guest.(*models.SGuest)
self.Params.Set("guest_old_status", jsonutils.NewString(server.Status))
server.SetStatus(ctx, self.GetUserCred(), api.VM_IMAGE_CACHING, "")
host, _ = server.GetHost()
} else {
@@ -87,6 +86,7 @@ func (self *StorageCacheImageTask) OnRelinquishLeastUsedCachedImageComplete(ctx
}
}
self.SetStage("OnImageCacheComplete", nil)
driver, err := host.GetHostDriver()
if err != nil {
self.OnImageCacheCompleteFailed(ctx, storageCache, jsonutils.NewString(errors.Wrapf(err, "GetHostDriver").Error()))
@@ -139,6 +139,20 @@ func (self *StorageCacheImageTask) OnCacheSucc(ctx context.Context, cache *model
if len(extImgId) > 0 && scimg.ExternalId != extImgId {
scimg.SetExternalId(extImgId)
}
serverId, _ := self.Params.GetString("server_id")
if len(serverId) > 0 {
guest, err := models.GuestManager.FetchById(serverId)
if err != nil {
errData := taskman.Error2TaskData(err)
self.OnImageCacheCompleteFailed(ctx, cache, errData)
return
}
server := guest.(*models.SGuest)
oldStatus, _ := self.Params.GetString("guest_old_status")
server.SetStatus(ctx, self.GetUserCred(), oldStatus, "on cache succ")
}
models.CachedimageManager.ImageAddRefCount(imageId)
db.OpsLog.LogEvent(cache, db.ACT_CACHED_IMAGE, imageId, self.UserCred)
self.SetStageComplete(ctx, data)