Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Nomad
Commits
05d52b62
Commit
05d52b62
authored
7 years ago
by
Preetha Appan
Browse files
Options
Download
Email Patches
Plain Diff
Changes service name validation logic to ignore any environment variables first.
parent
5d58f7b3
Branches unavailable
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc.1
v1.4.0-beta.1
v1.3.8
v1.3.7
v1.3.6
v1.3.5
v1.3.4
v1.3.3
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc.1
v1.3.0-beta.1
v1.2.15
v1.2.14
v1.2.13
v1.2.12
v1.2.11
v1.2.10
v1.2.9
v1.2.8
v1.2.7
v1.2.6
v1.2.5
v1.2.4
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc1
v1.2.0-beta1
v1.1.18
v1.1.17
v1.1.16
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.1.7
v1.1.6
v1.1.5
v1.1.4
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.1.0-rc1
v1.1.0-beta1
v1.0.18
v1.0.17
v1.0.16
v1.0.15
v1.0.14
v1.0.13
v1.0.12
v1.0.11
v1.0.10
v1.0.9
v1.0.8
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3
v1.0.2
v1.0.1
v1.0.0
v1.0.0-rc1
v1.0.0-beta3
v1.0.0-beta2
v0.12.12
v0.12.11
v0.12.10
v0.12.9
v0.12.8
v0.12.7
v0.12.6
v0.12.5
v0.12.4
v0.12.4-rc1
v0.12.3
v0.12.2
v0.12.1
v0.12.0
v0.12.0-rc1
v0.12.0-beta2
v0.12.0-beta1
v0.11.8
v0.11.7
v0.11.6
v0.11.5
v0.11.4
v0.11.3
v0.11.2
v0.11.1
v0.11.0
v0.11.0-rc1
v0.11.0-beta2
v0.11.0-beta1
v0.10.9
v0.10.8
v0.10.7
v0.10.6
v0.10.5
v0.10.4
v0.10.4-rc1
v0.10.3
v0.10.2
v0.10.2-rc1
v0.10.1
v0.10.0
v0.10.0-rc1
v0.10.0-connect1
v0.10.0-beta1
v0.9.7
v0.9.6
v0.9.5
v0.9.4
v0.9.4-rc1
v0.9.3
v0.9.2
v0.9.2-rc1
v0.9.1
v0.9.1-rc1
v0.9.0
v0.9.0-rc2
v0.9.0-rc1
v0.9.0-beta3
v0.9.0-beta2
v0.9.0-beta1
v0.8.7
v0.8.7-rc1
v0.8.6
v0.8.5
v0.8.4
v0.8.4-rc1
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.8.0-rc1
v0.7.1
v0.7.1-rc1
v0.7.1-rc1+pro
v0.7.1-rc1+ent
nightly
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
helper/args/args.go
+5
-0
helper/args/args.go
nomad/structs/structs.go
+6
-7
nomad/structs/structs.go
nomad/structs/structs_test.go
+8
-0
nomad/structs/structs_test.go
with
19 additions
and
7 deletions
+19
-7
helper/args/args.go
+
5
-
0
View file @
05d52b62
...
...
@@ -21,3 +21,8 @@ func ReplaceEnv(arg string, environments ...map[string]string) string {
return
arg
})
}
// ReplaceEnvWithPlaceHolder replaces all occurrences of environment variables with the placeholder string.
func
ReplaceEnvWithPlaceHolder
(
arg
string
,
placeholder
string
)
string
{
return
envRe
.
ReplaceAllString
(
arg
,
placeholder
)
}
This diff is collapsed.
Click to expand it.
nomad/structs/structs.go
+
6
-
7
View file @
05d52b62
...
...
@@ -3074,13 +3074,12 @@ func (s *Service) Validate() error {
var
mErr
multierror
.
Error
// Ensure the service name is valid per the below RFCs but make an exception
// for our interpolation syntax
// RFC-952 §1 (https://tools.ietf.org/html/rfc952), RFC-1123 §2.1
// (https://tools.ietf.org/html/rfc1123), and RFC-2782
// (https://tools.ietf.org/html/rfc2782).
re
:=
regexp
.
MustCompile
(
`^(?i:[a-z0-9]|[a-z0-9\$][a-zA-Z0-9\-\$\{\}\_\.]*[a-z0-9\}])$`
)
if
!
re
.
MatchString
(
s
.
Name
)
{
mErr
.
Errors
=
append
(
mErr
.
Errors
,
fmt
.
Errorf
(
"service name must be valid per RFC 1123 and can contain only alphanumeric characters or dashes: %q"
,
s
.
Name
))
// for our interpolation syntax by first stripping any environment variables from the name
serviceNameStripped
:=
args
.
ReplaceEnvWithPlaceHolder
(
s
.
Name
,
"ENV-VAR"
)
if
err
:=
s
.
ValidateName
(
serviceNameStripped
);
err
!=
nil
{
mErr
.
Errors
=
append
(
mErr
.
Errors
,
err
)
}
switch
s
.
AddressMode
{
...
...
This diff is collapsed.
Click to expand it.
nomad/structs/structs_test.go
+
8
-
0
View file @
05d52b62
...
...
@@ -1681,6 +1681,14 @@ func TestInvalidServiceCheck(t *testing.T) {
t
.
Fatalf
(
"Service should be valid: %v"
,
err
)
}
s
=
Service
{
Name
:
"my_service-${NOMAD_META_FOO}"
,
PortLabel
:
"bar"
,
}
if
err
:=
s
.
Validate
();
err
==
nil
{
t
.
Fatalf
(
"Service should be invalid (contains underscore but not in a variable name): %v"
,
err
)
}
s
=
Service
{
Name
:
"abcdef0123456789-abcdef0123456789-abcdef0123456789-abcdef0123456"
,
PortLabel
:
"bar"
,
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help