Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Chu Peng 楚鹏
minikube
提交
87e54030
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,发现更多精彩内容 >>
未验证
提交
87e54030
编写于
7月 10, 2020
作者:
M
Medya Ghazizadeh
提交者:
GitHub
7月 10, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #8648 from jlucktay/update/profile-name-validation
disallow setting profile names with underscore
上级
c1c43333
85a64117
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
37 addition
and
22 deletion
+37
-22
cmd/minikube/cmd/config/profile.go
cmd/minikube/cmd/config/profile.go
+1
-1
cmd/minikube/cmd/start.go
cmd/minikube/cmd/start.go
+1
-1
pkg/minikube/config/profile.go
pkg/minikube/config/profile.go
+5
-4
pkg/minikube/config/profile_test.go
pkg/minikube/config/profile_test.go
+30
-16
未找到文件。
cmd/minikube/cmd/config/profile.go
浏览文件 @
87e54030
...
...
@@ -47,7 +47,7 @@ var ProfileCmd = &cobra.Command{
// 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."
)
exit
.
UsageT
(
"Only alphanumeric
and dashes '-' are permitted. Minimum 1 character, starting with
alphanumeric."
)
}
/**
we need to add code over here to check whether the profile
...
...
cmd/minikube/cmd/start.go
浏览文件 @
87e54030
...
...
@@ -145,7 +145,7 @@ func runStart(cmd *cobra.Command, args []string) {
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."
)
exit
.
UsageT
(
"Only alphanumeric
and dashes '-' are permitted. Minimum 1 character, starting with
alphanumeric."
)
}
existing
,
err
:=
config
.
Load
(
ClusterFlagValue
())
if
err
!=
nil
&&
!
config
.
IsNotExist
(
err
)
{
...
...
pkg/minikube/config/profile.go
浏览文件 @
87e54030
...
...
@@ -84,13 +84,13 @@ func PrimaryControlPlane(cc *ClusterConfig) (Node, error) {
return
cp
,
nil
}
// ProfileNameValid checks if the profile name is container name
friendly
// ProfileNameValid checks if the profile name is container name
and DNS hostname/label friendly.
func
ProfileNameValid
(
name
string
)
bool
{
// RestrictedNamePattern describes the characters allowed to represent a profile's name
const
RestrictedNamePattern
=
`(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])`
// RestrictedNameChars collects the characters allowed to represent a name
const
RestrictedNameChars
=
`[a-zA-Z0-9][a-zA-Z0-9_.-]`
var
validName
=
regexp
.
MustCompile
(
`^`
+
RestrictedNamePattern
+
`$`
)
var
validName
=
regexp
.
MustCompile
(
`^`
+
RestrictedNameChars
+
`+$`
)
return
validName
.
MatchString
(
name
)
}
...
...
@@ -181,6 +181,7 @@ func SaveProfile(name string, cfg *ClusterConfig, miniHome ...string) error {
if
err
=
os
.
Rename
(
tf
.
Name
(),
path
);
err
!=
nil
{
return
err
}
return
nil
}
...
...
pkg/minikube/config/profile_test.go
浏览文件 @
87e54030
...
...
@@ -73,24 +73,38 @@ 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
)
}
var
testCases
=
map
[
string
]
bool
{
"profile"
:
true
,
"pro-file"
:
true
,
"profile1"
:
true
,
"pro-file1"
:
true
,
"1st-profile"
:
true
,
"1st-2nd-3rd-profile"
:
true
,
"n"
:
true
,
"1"
:
true
,
"12567"
:
true
,
"pro file"
:
false
,
"pro-file-"
:
false
,
"-profile"
:
false
,
"meaningful_name"
:
false
,
"meaningful_name@"
:
false
,
"n_a_m_e_2"
:
false
,
"_name"
:
false
,
"N__a.M--E12567"
:
false
,
}
for
name
,
exp
:=
range
testCases
{
name
,
exp
:=
name
,
exp
// capture range variables
t
.
Run
(
name
,
func
(
t
*
testing
.
T
)
{
t
.
Parallel
()
got
:=
ProfileNameValid
(
name
)
if
got
!=
exp
{
t
.
Errorf
(
"expected ProfileNameValid(%s)=%t but got %t "
,
name
,
exp
,
got
)
}
})
}
}
func
TestProfileNameInReservedKeywords
(
t
*
testing
.
T
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录