fix(region): external project sync

This commit is contained in:
ioito
2022-12-27 15:15:37 +08:00
parent 0386ea3453
commit a7e545f322
+12
View File
@@ -400,6 +400,7 @@ func (manager *SExternalProjectManager) newFromCloudProject(ctx context.Context,
if err != nil {
return nil, errors.Wrapf(err, "extModel.GetTags")
}
find := false
if pm.Rules != nil {
for _, rule := range *pm.Rules {
domainId, projectId, newProj, isMatch := rule.IsMatchTags(extTags)
@@ -412,11 +413,22 @@ func (manager *SExternalProjectManager) newFromCloudProject(ctx context.Context,
if len(domainId) > 0 && len(projectId) > 0 {
project.DomainId = domainId
project.ProjectId = projectId
find = true
break
}
}
}
}
if !find && account.AutoCreateProject {
desc := fmt.Sprintf("auto create from cloud project %s (%s)", project.Name, project.ExternalId)
domainId, projectId, err := account.getOrCreateTenant(ctx, project.Name, project.DomainId, "", desc)
if err != nil {
log.Errorf("failed to get or create tenant %s(%s) %v", project.Name, project.ExternalId, err)
} else {
project.DomainId = domainId
project.ProjectId = projectId
}
}
} else if account.AutoCreateProject {
desc := fmt.Sprintf("auto create from cloud project %s (%s)", project.Name, project.ExternalId)
domainId, projectId, err := account.getOrCreateTenant(ctx, project.Name, project.DomainId, "", desc)