fix(region): update manager name

This commit is contained in:
Qu Xuan
2021-07-06 20:23:57 +08:00
parent ca21e3d122
commit 9187d9abf7
2 changed files with 18 additions and 6 deletions
+4 -6
View File
@@ -941,16 +941,14 @@ func (self *SCloudaccount) importSubAccount(ctx context.Context, userCred mcclie
return nil, isNew, cloudprovider.ErrDuplicateId
}
if providerCount == 1 {
providerObj, err := db.NewModelObject(CloudproviderManager)
if err != nil {
return nil, isNew, err
}
provider := providerObj.(*SCloudprovider)
provider := &SCloudprovider{}
provider.SetModelManager(CloudproviderManager, provider)
err = q.First(provider)
if err != nil {
return nil, isNew, err
return nil, isNew, errors.Wrapf(err, "q.First")
}
provider.markProviderConnected(ctx, userCred, subAccount.HealthStatus)
provider.updateName(ctx, userCred, subAccount.Name)
return provider, isNew, nil
}
// not found, create a new cloudprovider
+14
View File
@@ -1347,6 +1347,20 @@ func (provider *SCloudprovider) markProviderDisconnected(ctx context.Context, us
return provider.ClearSchedDescCache()
}
func (self *SCloudprovider) updateName(ctx context.Context, userCred mcclient.TokenCredential, name string) error {
if self.Name != name {
diff, err := db.Update(self, func() error {
self.Name = name
return nil
})
if err != nil {
return errors.Wrapf(err, "db.Update")
}
db.OpsLog.LogEvent(self, db.ACT_UPDATE, diff, userCred)
}
return nil
}
func (provider *SCloudprovider) markProviderConnected(ctx context.Context, userCred mcclient.TokenCredential, healthStatus string) error {
if healthStatus != provider.HealthStatus {
diff, err := db.Update(provider, func() error {