From 2edded489c05b940f26d6d35f49f54401c434890 Mon Sep 17 00:00:00 2001 From: dyliu Date: Thu, 12 Aug 2021 14:38:37 +0800 Subject: [PATCH] The host name needs to fully comply with the naming convention of shell variables (#168) * cvm name standard Signed-off-by: liu deyi * cvm name standard Signed-off-by: liu deyi * cvm name standard Signed-off-by: liu deyi * modify regular expression Signed-off-by: liu deyi * modify regular expression Signed-off-by: liu deyi --- pkg/microservice/aslan/config/consts.go | 5 +++-- pkg/microservice/aslan/core/system/service/private_key.go | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pkg/microservice/aslan/config/consts.go b/pkg/microservice/aslan/config/consts.go index 5af2c9bac5..e7bd1f5fe0 100644 --- a/pkg/microservice/aslan/config/consts.go +++ b/pkg/microservice/aslan/config/consts.go @@ -24,14 +24,14 @@ var ( // RenderTemplateAlias ... RenderTemplateAlias = regexp.MustCompile(`{{\s?\.\w+\s?}}`) ServiceNameAlias = regexp.MustCompile(`\$Service\$`) - - NameSpaceRegex = regexp.MustCompile(NameSpaceRegexString) + NameSpaceRegex = regexp.MustCompile(NameSpaceRegexString) ) const ( ServiceNameRegexString = "^[a-zA-Z0-9-_]+$" ConfigNameRegexString = "^[a-zA-Z0-9-]+$" ImageRegexString = "^[a-zA-Z0-9.:\\/-]+$" + CVMNameRegexString = "^[a-zA-Z_]\\w+$" EnvRecyclePolicyAlways = "always" EnvRecyclePolicyTaskStatus = "success" @@ -46,6 +46,7 @@ var ( ServiceNameRegex = regexp.MustCompile(ServiceNameRegexString) ConfigNameRegex = regexp.MustCompile(ConfigNameRegexString) ImageRegex = regexp.MustCompile(ImageRegexString) + CVMNameRegex = regexp.MustCompile(CVMNameRegexString) ) // ScheduleType 触发模式 diff --git a/pkg/microservice/aslan/core/system/service/private_key.go b/pkg/microservice/aslan/core/system/service/private_key.go index 46e325229b..8e32a0d83a 100644 --- a/pkg/microservice/aslan/core/system/service/private_key.go +++ b/pkg/microservice/aslan/core/system/service/private_key.go @@ -19,6 +19,7 @@ package service import ( "go.uber.org/zap" + "github.com/koderover/zadig/pkg/microservice/aslan/config" commonmodels "github.com/koderover/zadig/pkg/microservice/aslan/core/common/repository/models" commonrepo "github.com/koderover/zadig/pkg/microservice/aslan/core/common/repository/mongodb" e "github.com/koderover/zadig/pkg/tool/errors" @@ -43,9 +44,14 @@ func GetPrivateKey(id string, log *zap.SugaredLogger) (*commonmodels.PrivateKey, } func CreatePrivateKey(args *commonmodels.PrivateKey, log *zap.SugaredLogger) error { + if !config.CVMNameRegex.MatchString(args.Name) { + return e.ErrCreatePrivateKey.AddDesc("主机名称仅支持字母,数字和下划线且首个字符不以数字开头") + } + if privateKeys, _ := commonrepo.NewPrivateKeyColl().List(&commonrepo.PrivateKeyArgs{Name: args.Name}); len(privateKeys) > 0 { return e.ErrCreatePrivateKey.AddDesc("Name already exists") } + err := commonrepo.NewPrivateKeyColl().Create(args) if err != nil { log.Errorf("PrivateKey.Create error: %v", err)