fix(region): 避免频繁清理调度器缓存

This commit is contained in:
ioito
2023-10-25 21:15:40 +08:00
parent fcae8612e5
commit 9a2a192b38
3 changed files with 10 additions and 8 deletions
+5 -2
View File
@@ -1473,8 +1473,11 @@ func (provider *SCloudprovider) markProviderDisconnected(ctx context.Context, us
if err != nil {
return err
}
provider.SetStatus(userCred, api.CLOUD_PROVIDER_DISCONNECTED, reason)
return provider.ClearSchedDescCache()
if provider.Status != api.CLOUD_PROVIDER_DISCONNECTED {
provider.SetStatus(userCred, api.CLOUD_PROVIDER_DISCONNECTED, reason)
return provider.ClearSchedDescCache()
}
return nil
}
func (cprvd *SCloudprovider) updateName(ctx context.Context, userCred mcclient.TokenCredential, name, desc string) error {
+5 -4
View File
@@ -1929,8 +1929,7 @@ func (hh *SHost) syncWithCloudHost(ctx context.Context, userCred mcclient.TokenC
return nil
})
if err != nil {
log.Errorf("syncWithCloudZone error %s", err)
return err
return errors.Wrapf(err, "syncWithCloudZone")
}
db.OpsLog.LogSyncUpdate(hh, diff, userCred)
@@ -1946,8 +1945,10 @@ func (hh *SHost) syncWithCloudHost(ctx context.Context, userCred mcclient.TokenC
return err
}
if err := HostManager.ClearSchedDescCache(hh.Id); err != nil {
log.Errorf("ClearSchedDescCache for host %s error %v", hh.Name, err)
if len(diff) > 0 {
if err := HostManager.ClearSchedDescCache(hh.Id); err != nil {
log.Errorf("ClearSchedDescCache for host %s error %v", hh.Name, err)
}
}
return nil
@@ -100,7 +100,6 @@ func (self *CloudProviderSyncInfoTask) OnSyncCloudProviderPreInfoCompleteFailed(
func (self *CloudProviderSyncInfoTask) OnSyncCloudProviderInfoComplete(ctx context.Context, obj db.IStandaloneModel, body jsonutils.JSONObject) {
provider := obj.(*models.SCloudprovider)
provider.CleanSchedCache()
db.OpsLog.LogEvent(provider, db.ACT_SYNC_HOST_COMPLETE, "", self.UserCred)
logclient.AddActionLogWithStartable(self, provider, getAction(self.Params), body, self.UserCred, true)
self.SetStageComplete(ctx, nil)
@@ -108,7 +107,6 @@ func (self *CloudProviderSyncInfoTask) OnSyncCloudProviderInfoComplete(ctx conte
func (self *CloudProviderSyncInfoTask) OnSyncCloudProviderInfoCompleteFailed(ctx context.Context, obj db.IStandaloneModel, body jsonutils.JSONObject) {
provider := obj.(*models.SCloudprovider)
provider.CleanSchedCache()
db.OpsLog.LogEvent(provider, db.ACT_SYNC_HOST_FAILED, "", self.UserCred)
logclient.AddActionLogWithStartable(self, provider, getAction(self.Params), body, self.UserCred, false)
self.SetStageFailed(ctx, nil)