fix(region): start LoadBalancerBackendSyncTask when needed (#15930)

This commit is contained in:
Zexi Li
2023-02-14 01:39:41 +08:00
committed by GitHub
parent df3ae2dc86
commit f645e89bf9
2 changed files with 23 additions and 2 deletions
+1 -1
View File
@@ -1713,7 +1713,7 @@ func updateItem(manager IModelManager, item IModel, ctx context.Context, userCre
CallUpdateNotifyHook(ctx, userCred, item)
}
item.PostUpdate(ctx, userCred, query, data)
item.PostUpdate(ctx, userCred, query, dataDict)
return getItemDetails(manager, item, ctx, userCred, query)
}
+22 -1
View File
@@ -410,10 +410,31 @@ func (lbb *SLoadbalancerBackend) ValidateUpdateData(ctx context.Context, userCre
return region.GetDriver().ValidateUpdateLoadbalancerBackendData(ctx, userCred, lbbg, input)
}
func (lbb *SLoadbalancerBackend) PreUpdate(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) {
doSyncTask := false
if data.Contains("port") {
port, _ := data.Int("port")
if lbb.Port != int(port) {
doSyncTask = true
}
}
if data.Contains("weight") {
weight, _ := data.Int("weight")
if lbb.Weight != int(weight) {
doSyncTask = true
}
}
data.(*jsonutils.JSONDict).Set("do_sync_task", jsonutils.NewBool(doSyncTask))
}
func (lbb *SLoadbalancerBackend) PostUpdate(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) {
lbb.SStatusStandaloneResourceBase.PostUpdate(ctx, userCred, query, data)
if data.Contains("port") || data.Contains("weight") {
lbb.StartLoadBalancerBackendSyncTask(ctx, userCred, "")
doSyncTask, _ := data.Bool("do_sync_task")
if doSyncTask {
lbb.StartLoadBalancerBackendSyncTask(ctx, userCred, "")
}
}
}