mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 02:37:24 +08:00
fix: generate unique name should exclude existing name
This commit is contained in:
@@ -80,6 +80,10 @@ func alterNameValidator(model IModel, name string) error {
|
||||
}
|
||||
|
||||
func GenerateName(manager IModelManager, ownerId mcclient.IIdentityProvider, hint string) (string, error) {
|
||||
return GenerateName2(manager, ownerId, hint, nil)
|
||||
}
|
||||
|
||||
func GenerateName2(manager IModelManager, ownerId mcclient.IIdentityProvider, hint string, model IModel) (string, error) {
|
||||
_, pattern, patternLen := stringutils.ParseNamePattern(hint)
|
||||
var name string
|
||||
idx := 1
|
||||
@@ -90,7 +94,13 @@ func GenerateName(manager IModelManager, ownerId mcclient.IIdentityProvider, hin
|
||||
idx += 1
|
||||
}
|
||||
for {
|
||||
uniq, err := isNameUnique(manager, ownerId, name)
|
||||
var uniq bool
|
||||
var err error
|
||||
if model == nil {
|
||||
uniq, err = isNameUnique(manager, ownerId, name)
|
||||
} else {
|
||||
uniq, err = isAlterNameUnique(model, name)
|
||||
}
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
@@ -174,7 +174,7 @@ func (self *SLDAPDriver) syncDomainInfo(ctx context.Context, info SDomainInfo) (
|
||||
if err == nil {
|
||||
if domain.Name != info.Name {
|
||||
// sync domain name
|
||||
newName, err := db.GenerateName(models.DomainManager, nil, info.Name)
|
||||
newName, err := db.GenerateName2(models.DomainManager, nil, info.Name, domain)
|
||||
if err != nil {
|
||||
log.Errorf("sync existing domain name (%s=%s) generate fail %s", domain.Name, info.Name, err)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user