Merge pull request #402 from ioito/hotfix/qx-auto-sync-time

Hotfix/qx auto sync time
This commit is contained in:
yunion-ci-robot
2019-04-15 18:15:12 +08:00
committed by GitHub
3 changed files with 26 additions and 12 deletions
+19 -5
View File
@@ -63,6 +63,7 @@ type SCloudaccount struct {
db.SEnabledStatusStandaloneResourceBase
SSyncableBaseResource
LastAutoSync time.Time `list:"admin"`
AccessUrl string `width:"64" charset:"ascii" nullable:"true" list:"admin" update:"admin" create:"admin_optional"`
@@ -438,7 +439,7 @@ func (self *SCloudaccount) markStartSync(userCred mcclient.TokenCredential) erro
return nil
})
if err != nil {
log.Errorf("Fail tp update last_sync %s", err)
log.Errorf("Failed to markStartSync error: %v", err)
return err
}
return nil
@@ -452,7 +453,7 @@ func (self *SCloudaccount) MarkSyncing(userCred mcclient.TokenCredential) error
return nil
})
if err != nil {
log.Errorf("Fail tp update last_sync %s", err)
log.Errorf("Failed to MarkSyncing error: %v", err)
return err
}
return nil
@@ -482,7 +483,7 @@ func (self *SCloudaccount) markEndSync(userCred mcclient.TokenCredential) error
return nil
})
if err != nil {
log.Errorf("Fail tp update last_sync %s", err)
log.Errorf("Failed to markEndSync error: %v", err)
return err
}
return nil
@@ -1097,7 +1098,7 @@ func (manager *SCloudaccountManager) AutoSyncCloudaccountTask(ctx context.Contex
accounts := make([]SCloudaccount, 0)
err := db.FetchModelObjects(manager, q, &accounts)
if err != nil {
log.Errorf("fail to fetch cloudaccount list to check status")
log.Errorf("Failed to fetch cloudaccount list to check status")
return
}
@@ -1149,7 +1150,7 @@ func (account *SCloudaccount) probeAccountStatus(ctx context.Context, userCred m
return nil
})
if err != nil {
log.Errorf("fail to update db %s", err)
log.Errorf("Failed to update db %s", err)
} else {
db.OpsLog.LogSyncUpdate(account, diff, userCred)
}
@@ -1198,6 +1199,18 @@ func (account *SCloudaccount) syncAccountStatus(ctx context.Context, userCred mc
return nil
}
func (account *SCloudaccount) markAutoSync(userCred mcclient.TokenCredential) error {
_, err := db.Update(account, func() error {
account.LastAutoSync = timeutils.UtcNow()
return nil
})
if err != nil {
log.Errorf("Failed to markAutoSync error: %v", err)
return err
}
return nil
}
func (account *SCloudaccount) SubmitSyncAccountTask(ctx context.Context, userCred mcclient.TokenCredential, waitChan chan error, autoSync bool) {
RunSyncCloudAccountTask(func() {
log.Debugf("syncAccountStatus %s %s", account.Id, account.Name)
@@ -1211,6 +1224,7 @@ func (account *SCloudaccount) SubmitSyncAccountTask(ctx context.Context, userCre
syncCnt := 0
if err == nil && autoSync && account.Enabled && account.EnableAutoSync {
syncRange := SSyncRange{FullSync: true}
account.markAutoSync(userCred)
providers := account.GetEnabledCloudproviders()
for i := range providers {
providers[i].syncCloudproviderRegions(ctx, userCred, syncRange, nil, autoSync)
+4 -4
View File
@@ -199,7 +199,7 @@ func (self *SCloudproviderregion) markStartSync(userCred mcclient.TokenCredentia
return nil
})
if err != nil {
log.Errorf("Fail tp update last_sync %s", err)
log.Errorf("Failed to markStartSync error: %v", err)
return err
}
return nil
@@ -213,7 +213,7 @@ func (self *SCloudproviderregion) markSyncing(userCred mcclient.TokenCredential)
return nil
})
if err != nil {
log.Errorf("Fail tp update last_sync %s", err)
log.Errorf("Failed to markSyncing error: %v", err)
return err
}
return nil
@@ -243,7 +243,7 @@ func (self *SCloudproviderregion) markEndSyncInternal(userCred mcclient.TokenCre
return nil
})
if err != nil {
log.Errorf("Fail tp update last_sync %s", err)
log.Errorf("Failed to markEndSyncInternal error: %v", err)
return err
}
return nil
@@ -275,7 +275,7 @@ func (self *SCloudproviderregion) DoSync(ctx context.Context, userCred mcclient.
provider := self.GetProvider()
driver, err := provider.GetProvider()
if err != nil {
log.Errorf("fail to get driver, connection problem?")
log.Errorf("Failed to get driver, connection problem?")
return err
}
+3 -3
View File
@@ -497,7 +497,7 @@ func (self *SCloudprovider) markStartSync(userCred mcclient.TokenCredential) err
return nil
})
if err != nil {
log.Errorf("Fail tp update last_sync %s", err)
log.Errorf("Failed to markStartSync error: %v", err)
return err
}
return nil
@@ -511,7 +511,7 @@ func (self *SCloudprovider) markSyncing(userCred mcclient.TokenCredential) error
return nil
})
if err != nil {
log.Errorf("Fail tp update last_sync %s", err)
log.Errorf("Failed to markSyncing error: %v", err)
return err
}
return nil
@@ -551,7 +551,7 @@ func (self *SCloudprovider) markEndSync(userCred mcclient.TokenCredential) error
return nil
})
if err != nil {
log.Errorf("Fail tp update last_sync %s", err)
log.Errorf("Failed to markEndSync error: %v", err)
return err
}
return nil