diff --git a/pkg/cloudcommon/db/namevalidator.go b/pkg/cloudcommon/db/namevalidator.go index 97a41c31a6..bf28ebc41e 100644 --- a/pkg/cloudcommon/db/namevalidator.go +++ b/pkg/cloudcommon/db/namevalidator.go @@ -115,7 +115,7 @@ func GenerateName2(manager IModelManager, ownerId mcclient.IIdentityProvider, hi } var ( - dnsNameREG = regexp.MustCompile(`^[a-zA-Z][a-zA-Z0-9-]*$`) + dnsNameREG = regexp.MustCompile(`^[a-z][a-z0-9-]*$`) ) type SDnsNameValidatorManager struct{} diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index cfc8f7e3d8..04b13c4ba8 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -69,7 +69,6 @@ type SGuestManager struct { db.SVirtualResourceBaseManager db.SExternalizedResourceBaseManager SDeletePreventableResourceBaseManager - db.SDnsNameValidatorManager SHostResourceBaseManager SBillingResourceBaseManager @@ -5226,3 +5225,14 @@ func (guest *SGuest) GetUsages() []db.IUsage { ®ionUsage, } } + +var ( + serverNameREG = regexp.MustCompile(`^[a-z$][a-z0-9-${}.]*$`) +) + +func (manager *SGuestManager) ValidateName(name string) error { + if serverNameREG.MatchString(name) { + return nil + } + return httperrors.NewInputParameterError("name starts with letter, and contains letter, number and - only") +}