diff --git a/pkg/compute/models/dbinstances.go b/pkg/compute/models/dbinstances.go index 8cd18f3c37..8eebc97723 100644 --- a/pkg/compute/models/dbinstances.go +++ b/pkg/compute/models/dbinstances.go @@ -2043,6 +2043,7 @@ func (self *SDBInstance) StartRemoteUpdateTask(ctx context.Context, userCred mcc log.Errorln(err) return errors.Wrap(err, "Start ElasticcacheRemoteUpdateTask") } else { + self.SetStatus(userCred, api.DBINSTANCE_UPDATE_TAGS, "StartRemoteUpdateTask") task.ScheduleRun(nil) } return nil diff --git a/pkg/compute/models/elasticcache_instances.go b/pkg/compute/models/elasticcache_instances.go index e3bd4b15af..e5207d0898 100644 --- a/pkg/compute/models/elasticcache_instances.go +++ b/pkg/compute/models/elasticcache_instances.go @@ -1916,6 +1916,7 @@ func (self *SElasticcache) StartRemoteUpdateTask(ctx context.Context, userCred m log.Errorln(err) return errors.Wrap(err, "Start ElasticcacheRemoteUpdateTask") } else { + self.SetStatus(userCred, api.ELASTIC_CACHE_UPDATE_TAGS, "StartRemoteUpdateTask") task.ScheduleRun(nil) } return nil diff --git a/pkg/compute/models/loadbalancers.go b/pkg/compute/models/loadbalancers.go index 83b96e0730..a986dd5f69 100644 --- a/pkg/compute/models/loadbalancers.go +++ b/pkg/compute/models/loadbalancers.go @@ -1399,6 +1399,7 @@ func (self *SLoadbalancer) StartRemoteUpdateTask(ctx context.Context, userCred m log.Errorln(err) return errors.Wrap(err, "Start LoadbalancerRemoteUpdateTask") } else { + self.SetStatus(userCred, api.LB_UPDATE_TAGS, "StartRemoteUpdateTask") task.ScheduleRun(nil) } return nil diff --git a/pkg/compute/regiondrivers/managedvirtual.go b/pkg/compute/regiondrivers/managedvirtual.go index a2e4f6f3ed..7f39750fea 100644 --- a/pkg/compute/regiondrivers/managedvirtual.go +++ b/pkg/compute/regiondrivers/managedvirtual.go @@ -342,16 +342,10 @@ func (self *SManagedVirtualizationRegionDriver) RequestRemoteUpdateLoadbalancer( } else { err := iLoadbalancer.SetTags(tags, replaceTags) if err != nil { - logclient.AddActionLogWithStartable(task, lb, logclient.ACT_UPDATE, tagsUpdateInfo, userCred, false) + logclient.AddActionLogWithStartable(task, lb, logclient.ACT_UPDATE_TAGS, tagsUpdateInfo, userCred, false) return nil, errors.Wrap(err, "iLoadbalancer.SetMetadata") } - logclient.AddActionLogWithStartable(task, lb, logclient.ACT_UPDATE, tagsUpdateInfo, userCred, true) - // sync back cloud metadata - iLoadbalancer.Refresh() - err = models.SyncVirtualResourceMetadata(ctx, userCred, lb, iLoadbalancer) - if err != nil { - return nil, errors.Wrap(err, "syncVirtualResourceMetadata") - } + logclient.AddActionLogWithStartable(task, lb, logclient.ACT_UPDATE_TAGS, tagsUpdateInfo, userCred, true) } return nil, nil }) @@ -2743,16 +2737,10 @@ func (self *SManagedVirtualizationRegionDriver) RequestRemoteUpdateDBInstance(ct } else { err := iRds.SetTags(tags, replaceTags) if err != nil { - logclient.AddActionLogWithStartable(task, instance, logclient.ACT_UPDATE, tagsUpdateInfo, userCred, false) + logclient.AddActionLogWithStartable(task, instance, logclient.ACT_UPDATE_TAGS, tagsUpdateInfo, userCred, false) return nil, errors.Wrap(err, "iRds.SetMetadata") } - logclient.AddActionLogWithStartable(task, instance, logclient.ACT_UPDATE, tagsUpdateInfo, userCred, true) - // sync back cloud metadata - iRds.Refresh() - err = models.SyncVirtualResourceMetadata(ctx, userCred, instance, iRds) - if err != nil { - return nil, errors.Wrap(err, "syncVirtualResourceMetadata") - } + logclient.AddActionLogWithStartable(task, instance, logclient.ACT_UPDATE_TAGS, tagsUpdateInfo, userCred, true) } return nil, nil }) @@ -3148,16 +3136,10 @@ func (self *SManagedVirtualizationRegionDriver) RequestRemoteUpdateElasticcache( } else { err := iElasticcache.SetTags(tags, replaceTags) if err != nil { - logclient.AddActionLogWithStartable(task, elasticcache, logclient.ACT_UPDATE, tagsUpdateInfo, userCred, false) + logclient.AddActionLogWithStartable(task, elasticcache, logclient.ACT_UPDATE_TAGS, tagsUpdateInfo, userCred, false) return nil, errors.Wrap(err, "iElasticcache.SetMetadata") } - logclient.AddActionLogWithStartable(task, elasticcache, logclient.ACT_UPDATE, tagsUpdateInfo, userCred, true) - // sync back cloud metadata - iElasticcache.Refresh() - err = models.SyncVirtualResourceMetadata(ctx, userCred, elasticcache, iElasticcache) - if err != nil { - return nil, errors.Wrap(err, "syncVirtualResourceMetadata") - } + logclient.AddActionLogWithStartable(task, elasticcache, logclient.ACT_UPDATE_TAGS, tagsUpdateInfo, userCred, true) } return nil, nil }) diff --git a/pkg/compute/tasks/dbinstance_remote_update_task.go b/pkg/compute/tasks/dbinstance_remote_update_task.go index d7f9e4bc39..b5e18e3994 100644 --- a/pkg/compute/tasks/dbinstance_remote_update_task.go +++ b/pkg/compute/tasks/dbinstance_remote_update_task.go @@ -26,7 +26,7 @@ import ( ) type DBInstanceRemoteUpdateTask struct { - SGuestBaseTask + taskman.STask } func init() { @@ -48,6 +48,19 @@ func (self *DBInstanceRemoteUpdateTask) OnInit(ctx context.Context, obj db.IStan } } -func (self *DBInstanceRemoteUpdateTask) OnRemoteUpdateComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { +func (self *DBInstanceRemoteUpdateTask) OnRemoteUpdateComplete(ctx context.Context, dbinstance *models.SDBInstance, data jsonutils.JSONObject) { + self.SetStage("OnSyncStatusComplete", nil) + models.StartResourceSyncStatusTask(ctx, self.UserCred, dbinstance, "DBInstanceSyncStatusTask", self.GetTaskId()) +} + +func (self *DBInstanceRemoteUpdateTask) OnRemoteUpdateCompleteFailed(ctx context.Context, dbinstance *models.SDBInstance, data jsonutils.JSONObject) { + self.taskFail(ctx, dbinstance, data) +} + +func (self *DBInstanceRemoteUpdateTask) OnSyncStatusComplete(ctx context.Context, dbinstance *models.SDBInstance, data jsonutils.JSONObject) { self.SetStageComplete(ctx, nil) } + +func (self *DBInstanceRemoteUpdateTask) OnSyncStatusCompleteFailed(ctx context.Context, dbinstance *models.SDBInstance, data jsonutils.JSONObject) { + self.SetStageFailed(ctx, data) +} diff --git a/pkg/compute/tasks/elasticcache_remote_update_task.go b/pkg/compute/tasks/elasticcache_remote_update_task.go index 862e0cd0e0..17d6acce65 100644 --- a/pkg/compute/tasks/elasticcache_remote_update_task.go +++ b/pkg/compute/tasks/elasticcache_remote_update_task.go @@ -27,7 +27,7 @@ import ( ) type ElasticcacheRemoteUpdateTask struct { - SGuestBaseTask + taskman.STask } func init() { @@ -54,6 +54,19 @@ func (self *ElasticcacheRemoteUpdateTask) OnInit(ctx context.Context, obj db.ISt } } -func (self *ElasticcacheRemoteUpdateTask) OnRemoteUpdateComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { +func (self *ElasticcacheRemoteUpdateTask) OnRemoteUpdateComplete(ctx context.Context, elasticcache *models.SElasticcache, data jsonutils.JSONObject) { + self.SetStage("OnSyncStatusComplete", nil) + models.StartResourceSyncStatusTask(ctx, self.UserCred, elasticcache, "ElasticcacheSyncstatusTask", self.GetTaskId()) +} + +func (self *ElasticcacheRemoteUpdateTask) OnRemoteUpdateCompleteFailed(ctx context.Context, elasticcache *models.SElasticcache, data jsonutils.JSONObject) { + self.taskFail(ctx, elasticcache, data) +} + +func (self *ElasticcacheRemoteUpdateTask) OnSyncStatusComplete(ctx context.Context, elasticcache *models.SElasticcache, data jsonutils.JSONObject) { self.SetStageComplete(ctx, nil) } + +func (self *ElasticcacheRemoteUpdateTask) OnSyncStatusCompleteFailed(ctx context.Context, elasticcache *models.SElasticcache, data jsonutils.JSONObject) { + self.SetStageFailed(ctx, data) +} diff --git a/pkg/compute/tasks/loadbalancer_remote_update_task.go b/pkg/compute/tasks/loadbalancer_remote_update_task.go index ad8926ba00..8904d99912 100644 --- a/pkg/compute/tasks/loadbalancer_remote_update_task.go +++ b/pkg/compute/tasks/loadbalancer_remote_update_task.go @@ -27,7 +27,7 @@ import ( ) type LoadbalancerRemoteUpdateTask struct { - SGuestBaseTask + taskman.STask } func init() { @@ -53,6 +53,19 @@ func (self *LoadbalancerRemoteUpdateTask) OnInit(ctx context.Context, obj db.ISt } } -func (self *LoadbalancerRemoteUpdateTask) OnRemoteUpdateComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { +func (self *LoadbalancerRemoteUpdateTask) OnRemoteUpdateComplete(ctx context.Context, lb *models.SLoadbalancer, data jsonutils.JSONObject) { + self.SetStage("OnSyncStatusComplete", nil) + models.StartResourceSyncStatusTask(ctx, self.UserCred, lb, "LoadbalancerSyncstatusTask", self.GetTaskId()) +} + +func (self *LoadbalancerRemoteUpdateTask) OnRemoteUpdateCompleteFailed(ctx context.Context, lb *models.SLoadbalancer, data jsonutils.JSONObject) { + self.taskFail(ctx, lb, data) +} + +func (self *LoadbalancerRemoteUpdateTask) OnSyncStatusComplete(ctx context.Context, lb *models.SLoadbalancer, data jsonutils.JSONObject) { self.SetStageComplete(ctx, nil) } + +func (self *LoadbalancerRemoteUpdateTask) OnSyncStatusCompleteFailed(ctx context.Context, lb *models.SLoadbalancer, data jsonutils.JSONObject) { + self.SetStageFailed(ctx, data) +}