fix(region): avoid using LocalTaskworker in time-consuming synchronization of cloudaccount

This commit is contained in:
rainzm
2021-04-20 19:57:38 +08:00
parent 519997fd52
commit ea790cc82b
@@ -94,25 +94,17 @@ func (self *CloudProviderSyncInfoTask) OnSyncCloudProviderPreInfoComplete(ctx co
syncRange := self.GetSyncRange()
db.OpsLog.LogEvent(provider, db.ACT_SYNCING_HOST, "", self.UserCred)
self.SetStage("OnSyncCloudProviderInfoComplete", nil)
taskman.LocalTaskRun(self, func() (jsonutils.JSONObject, error) {
provider.SyncCallSyncCloudproviderRegions(ctx, self.UserCred, syncRange)
provider.SyncCallSyncCloudproviderInterVpcNetwork(ctx, self.UserCred)
return nil, nil
})
provider.SyncCallSyncCloudproviderRegions(ctx, self.UserCred, syncRange)
provider.SyncCallSyncCloudproviderInterVpcNetwork(ctx, self.UserCred)
provider.CleanSchedCache()
self.SetStageComplete(ctx, nil)
db.OpsLog.LogEvent(provider, db.ACT_SYNC_HOST_COMPLETE, "", self.UserCred)
logclient.AddActionLogWithStartable(self, provider, getAction(self.Params), body, self.UserCred, true)
}
func (self *CloudProviderSyncInfoTask) OnSyncCloudProviderPreInfoCompleteFailed(ctx context.Context, obj db.IStandaloneModel, body jsonutils.JSONObject) {
log.Errorf("faild to sync provider quotas %s", body.String())
self.OnSyncCloudProviderPreInfoComplete(ctx, obj, body)
}
func (self *CloudProviderSyncInfoTask) OnSyncCloudProviderInfoComplete(ctx context.Context, obj db.IStandaloneModel, body jsonutils.JSONObject) {
provider := obj.(*models.SCloudprovider)
// provider.MarkEndSync(self.UserCred)
provider.CleanSchedCache()
self.SetStageComplete(ctx, nil)
db.OpsLog.LogEvent(provider, db.ACT_SYNC_HOST_COMPLETE, "", self.UserCred)
logclient.AddActionLogWithStartable(self, provider, getAction(self.Params), body, self.UserCred, true)
}