fix: 修复cloudid用户同步及权限同步

This commit is contained in:
Qu Xuan
2020-08-18 20:42:30 +08:00
parent d5524d1ea1
commit 8a78c54dc9
10 changed files with 143 additions and 66 deletions
+11 -8
View File
@@ -1057,7 +1057,7 @@ func (self *SCloudaccount) newCloudgroup(ctx context.Context, userCred mcclient.
func (self *SCloudaccount) GetSystemPolicyByExternalId(id string) (*SCloudpolicy, error) {
policies := []SCloudpolicy{}
q := CloudpolicyManager.Query().Equals("external_id", id).Equals("provider", self.Provider)
q := CloudpolicyManager.Query().Equals("external_id", id).Equals("provider", self.Provider).Equals("policy_type", api.CLOUD_POLICY_TYPE_SYSTEM)
err := db.FetchModelObjects(CloudpolicyManager, q, &policies)
if err != nil {
return nil, errors.Wrapf(err, "db.FetchModelObjects")
@@ -1162,7 +1162,7 @@ func (self *SCloudaccount) SyncCustomCloudpoliciesForCloud(ctx context.Context,
for i := range providers {
err = providers[i].SyncCustomCloudpoliciesForCloud(ctx, clouduser)
if err != nil {
return errors.Wrapf(err, "SyncSystemCloudpoliciesForCloud for cloudprovider %s", providers[i].Name)
return errors.Wrapf(err, "SyncCustomCloudpoliciesForCloud for cloudprovider %s", providers[i].Name)
}
}
return nil
@@ -1171,7 +1171,7 @@ func (self *SCloudaccount) SyncCustomCloudpoliciesForCloud(ctx context.Context,
policyIds := []string{}
policies, err := clouduser.GetCustomCloudpolicies("")
if err != nil {
return errors.Wrap(err, "GetSystemCloudpolicies")
return errors.Wrap(err, "GetCustomCloudpolicies")
}
for i := range policies {
err = self.getOrCacheCustomCloudpolicy(ctx, "", policies[i].Id)
@@ -1184,7 +1184,7 @@ func (self *SCloudaccount) SyncCustomCloudpoliciesForCloud(ctx context.Context,
if !factory.IsSupportCreateCloudgroup() {
policies, err = clouduser.GetCustomCloudgroupPolicies()
if err != nil {
return errors.Wrap(err, "GetSystemCloudgroupPolicies")
return errors.Wrap(err, "GetCustomCloudgroupPolicies")
}
for i := range policies {
err = self.getOrCacheCustomCloudpolicy(ctx, "", policies[i].Id)
@@ -1195,9 +1195,12 @@ func (self *SCloudaccount) SyncCustomCloudpoliciesForCloud(ctx context.Context,
}
}
dbCaches, err := self.GetCloudpolicycaches(policyIds, "")
if err != nil {
return errors.Wrapf(err, "GetCloudpolicycaches")
dbCaches := []SCloudpolicycache{}
if len(policyIds) > 0 {
dbCaches, err = self.GetCloudpolicycaches(policyIds, "")
if err != nil {
return errors.Wrapf(err, "GetCloudpolicycaches")
}
}
iUser, err := clouduser.GetIClouduser()
@@ -1207,7 +1210,7 @@ func (self *SCloudaccount) SyncCustomCloudpoliciesForCloud(ctx context.Context,
iPolicies, err := iUser.GetICustomCloudpolicies()
if err != nil {
return errors.Wrap(err, "GetISystemCloudpolicies")
return errors.Wrap(err, "GetICustomCloudpolicies")
}
added := make([]SCloudpolicycache, 0)
+4
View File
@@ -285,6 +285,10 @@ func (self *SCloudgroupcache) GetOrCreateICloudgroup(ctx context.Context, userCr
if err != nil {
return nil, errors.Wrapf(err, "SyncCustomCloudpoliciesForCloud")
}
err = self.SyncCloudusersForCloud(ctx, userCred)
if err != nil {
return nil, errors.Wrapf(err, "SyncCloudusersForCloud")
}
return iGroup, nil
}
+6 -3
View File
@@ -168,9 +168,12 @@ func (self *SCloudprovider) SyncCustomCloudpoliciesForCloud(ctx context.Context,
}
}
dbCaches, err := account.GetCloudpolicycaches(policyIds, self.Id)
if err != nil {
return errors.Wrapf(err, "GetCloudpolicycaches")
dbCaches := []SCloudpolicycache{}
if len(policyIds) > 0 {
dbCaches, err = account.GetCloudpolicycaches(policyIds, self.Id)
if err != nil {
return errors.Wrapf(err, "GetCloudpolicycaches")
}
}
provider, err := self.GetProvider()