Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Chu Peng 楚鹏
minikube
提交
fba5f9a2
M
minikube
项目概览
Chu Peng 楚鹏
/
minikube
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
minikube
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fba5f9a2
编写于
4月 13, 2020
作者:
P
Pablo Caderno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added validation for profile name
It must be container friendly
上级
d7341186
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
41 addition
and
0 deletion
+41
-0
cmd/minikube/cmd/config/profile.go
cmd/minikube/cmd/config/profile.go
+5
-0
cmd/minikube/cmd/start.go
cmd/minikube/cmd/start.go
+4
-0
pkg/minikube/config/profile.go
pkg/minikube/config/profile.go
+11
-0
pkg/minikube/config/profile_test.go
pkg/minikube/config/profile_test.go
+21
-0
未找到文件。
cmd/minikube/cmd/config/profile.go
浏览文件 @
fba5f9a2
...
...
@@ -44,6 +44,11 @@ var ProfileCmd = &cobra.Command{
}
profile
:=
args
[
0
]
// Check whether the profile name is container friendly
if
!
config
.
ProfileNameValid
(
profile
)
{
out
.
WarningT
(
"Profile name '{{.profilename}}' is not valid"
,
out
.
V
{
"profilename"
:
profile
})
exit
.
UsageT
(
"Only alphanumeric, dots, underscores and dashes '-' are permitted. Minimum 2 characters, starting by alphanumeric."
)
}
/**
we need to add code over here to check whether the profile
name is in the list of reserved keywords
...
...
cmd/minikube/cmd/start.go
浏览文件 @
fba5f9a2
...
...
@@ -144,6 +144,10 @@ func runStart(cmd *cobra.Command, args []string) {
registryMirror
=
viper
.
GetStringSlice
(
"registry_mirror"
)
}
if
!
config
.
ProfileNameValid
(
ClusterFlagValue
())
{
out
.
WarningT
(
"Profile name '{{.name}}' is not valid"
,
out
.
V
{
"name"
:
ClusterFlagValue
()})
exit
.
UsageT
(
"Only alphanumeric, dots, underscores and dashes '-' are permitted. Minimum 2 characters, starting by alphanumeric."
)
}
existing
,
err
:=
config
.
Load
(
ClusterFlagValue
())
if
err
!=
nil
&&
!
config
.
IsNotExist
(
err
)
{
exit
.
WithCodeT
(
exit
.
Data
,
"Unable to load config: {{.error}}"
,
out
.
V
{
"error"
:
err
})
...
...
pkg/minikube/config/profile.go
浏览文件 @
fba5f9a2
...
...
@@ -21,6 +21,7 @@ import (
"io/ioutil"
"os"
"path/filepath"
"regexp"
"strings"
"github.com/golang/glog"
...
...
@@ -83,6 +84,16 @@ func PrimaryControlPlane(cc *ClusterConfig) (Node, error) {
return
cp
,
nil
}
// ProfileNameValid checks if the profile name is container name friendly
func
ProfileNameValid
(
name
string
)
bool
{
// RestrictedNameChars collects the characters allowed to represent a name
const
RestrictedNameChars
=
`[a-zA-Z0-9][a-zA-Z0-9_.-]`
var
validName
=
regexp
.
MustCompile
(
`^`
+
RestrictedNameChars
+
`+$`
)
return
validName
.
MatchString
(
name
)
}
// ProfileNameInReservedKeywords checks if the profile is an internal keywords
func
ProfileNameInReservedKeywords
(
name
string
)
bool
{
for
_
,
v
:=
range
keywords
{
...
...
pkg/minikube/config/profile_test.go
浏览文件 @
fba5f9a2
...
...
@@ -72,6 +72,27 @@ func TestListProfiles(t *testing.T) {
}
}
func
TestProfileNameValid
(
t
*
testing
.
T
)
{
var
testCases
=
[]
struct
{
name
string
expected
bool
}{
{
"meaningful_name"
,
true
},
{
"meaningful_name@"
,
false
},
{
"n_a_m_e_2"
,
true
},
{
"n"
,
false
},
{
"_name"
,
false
},
{
"N__a.M--E12567"
,
true
},
}
for
_
,
tt
:=
range
testCases
{
got
:=
ProfileNameValid
(
tt
.
name
)
if
got
!=
tt
.
expected
{
t
.
Errorf
(
"expected ProfileNameValid(%s)=%t but got %t "
,
tt
.
name
,
tt
.
expected
,
got
)
}
}
}
func
TestProfileNameInReservedKeywords
(
t
*
testing
.
T
)
{
var
testCases
=
[]
struct
{
name
string
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录