mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-10-13 07:46:56 +08:00
fix(region): start LoadBalancerBackendSyncTask when needed (#15930)
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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, "")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user