Merge pull request #9860 from lvyangyang/fix-update-tags-status

fix(region): update tags status
This commit is contained in:
Zexi Li
2021-01-13 15:19:51 +08:00
committed by GitHub
7 changed files with 54 additions and 30 deletions
+1
View File
@@ -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
@@ -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
+1
View File
@@ -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
+6 -24
View File
@@ -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
})
@@ -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)
}
@@ -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)
}
@@ -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)
}