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
34180de2
Unverified
Commit
34180de2
authored
5 years ago
by
Preetha Appan
Browse files
Options
Download
Email Patches
Plain Diff
More code review feedback
parent
d15d1de8
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-beta1
nightly
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
command/agent/job_endpoint.go
+1
-1
command/agent/job_endpoint.go
nomad/structs/structs.go
+13
-11
nomad/structs/structs.go
nomad/structs/structs_test.go
+10
-10
nomad/structs/structs_test.go
with
24 additions
and
22 deletions
+24
-22
command/agent/job_endpoint.go
+
1
-
1
View file @
34180de2
...
...
@@ -805,7 +805,7 @@ func ApiTaskToStructsTask(apiTask *api.Task, structsTask *structs.Task) {
structsTask
.
KillTimeout
=
*
apiTask
.
KillTimeout
structsTask
.
ShutdownDelay
=
apiTask
.
ShutdownDelay
structsTask
.
KillSignal
=
apiTask
.
KillSignal
structsTask
.
Kind
=
structs
.
Kind
(
apiTask
.
Kind
)
structsTask
.
Kind
=
structs
.
Task
Kind
(
apiTask
.
Kind
)
structsTask
.
Constraints
=
ApiConstraintsToStructs
(
apiTask
.
Constraints
)
structsTask
.
Affinities
=
ApiAffinitiesToStructs
(
apiTask
.
Affinities
)
...
...
This diff is collapsed.
Click to expand it.
nomad/structs/structs.go
+
13
-
11
View file @
34180de2
...
...
@@ -5202,9 +5202,9 @@ type Task struct {
// specification and defaults to SIGINT
KillSignal
string
// Used internally to manage tasks according to their Kind. Initial use case
// Used internally to manage tasks according to their
Task
Kind. Initial use case
// is for Consul Connect
Kind
Kind
Kind
Task
Kind
}
func
(
t
*
Task
)
Copy
()
*
Task
{
...
...
@@ -5410,8 +5410,7 @@ func (t *Task) Validate(ephemeralDisk *EphemeralDisk, jobType string, tgServices
}
}
// Validation for Kind field which is used for Consul Connect integration
// TODO better wording for all error messages
// Validation for TaskKind field which is used for Consul Connect integration
taskKind
:=
t
.
Kind
if
taskKind
.
IsConnect
()
{
// This task is a Connect proxy so it should not have service stanzas
...
...
@@ -5421,7 +5420,7 @@ func (t *Task) Validate(ephemeralDisk *EphemeralDisk, jobType string, tgServices
if
t
.
Leader
{
mErr
.
Errors
=
append
(
mErr
.
Errors
,
fmt
.
Errorf
(
"Connect proxy task must not have leader set"
))
}
serviceErr
:=
taskKind
.
V
alidateService
(
tgServices
)
serviceErr
:=
taskKind
.
v
alidate
Proxy
Service
(
tgServices
)
if
serviceErr
!=
nil
{
mErr
.
Errors
=
append
(
mErr
.
Errors
,
serviceErr
)
}
...
...
@@ -5569,20 +5568,23 @@ func (t *Task) Warnings() error {
return
mErr
.
ErrorOrNil
()
}
type
Kind
string
type
Task
Kind
string
const
connect
_p
refix
=
"connect:"
const
connect
P
refix
=
"connect
-proxy
:"
func
(
k
Kind
)
IsConnect
()
bool
{
return
strings
.
HasPrefix
(
string
(
k
),
connect
_p
refix
)
&&
len
(
k
)
>
len
(
connect
_p
refix
)
func
(
k
Task
Kind
)
IsConnect
()
bool
{
return
strings
.
HasPrefix
(
string
(
k
),
connect
P
refix
)
&&
len
(
k
)
>
len
(
connect
P
refix
)
}
func
(
k
Kind
)
ValidateService
(
tgServices
[]
*
Service
)
error
{
// validateProxyService checks that the service that is being
// proxied by this task exists in the task group and contains
// valid Connect config.
func
(
k
TaskKind
)
validateProxyService
(
tgServices
[]
*
Service
)
error
{
var
mErr
multierror
.
Error
parts
:=
strings
.
Split
(
string
(
k
),
":"
)
serviceName
:=
strings
.
Join
(
parts
[
1
:
],
""
)
if
len
(
parts
)
>
2
{
mErr
.
Errors
=
append
(
mErr
.
Errors
,
fmt
.
Errorf
(
"Connect proxy service kind %q
should
not contain `:`"
,
k
))
mErr
.
Errors
=
append
(
mErr
.
Errors
,
fmt
.
Errorf
(
"Connect proxy service kind %q
must
not contain `:`"
,
k
))
}
found
:=
false
...
...
This diff is collapsed.
Click to expand it.
nomad/structs/structs_test.go
+
10
-
10
View file @
34180de2
...
...
@@ -1515,7 +1515,7 @@ func TestTask_Validate_Service_Check_CheckRestart(t *testing.T) {
func
TestTask_Validate_ConnectKind
(
t
*
testing
.
T
)
{
ephemeralDisk
:=
DefaultEphemeralDisk
()
getTask
:=
func
(
kind
Kind
,
leader
bool
)
*
Task
{
getTask
:=
func
(
kind
Task
Kind
,
leader
bool
)
*
Task
{
task
:=
&
Task
{
Name
:
"web"
,
Driver
:
"docker"
,
...
...
@@ -1540,7 +1540,7 @@ func TestTask_Validate_ConnectKind(t *testing.T) {
cases
:=
[]
struct
{
Desc
string
Kind
Kind
Kind
Task
Kind
Leader
bool
Service
*
Service
TgService
[]
*
Service
...
...
@@ -1552,15 +1552,15 @@ func TestTask_Validate_ConnectKind(t *testing.T) {
},
{
Desc
:
"Invalid because of service in task definition"
,
Kind
:
"connect:redis"
,
Kind
:
"connect
-proxy
:redis"
,
Service
:
&
Service
{
Name
:
"redis"
,
},
ErrContains
:
"Connect proxy task
should
not have service stanza
in it
"
,
ErrContains
:
"Connect proxy task
must
not have
a
service stanza"
,
},
{
Desc
:
"Leader should not be set"
,
Kind
:
"connect:redis"
,
Kind
:
"connect
-proxy
:redis"
,
Leader
:
true
,
Service
:
&
Service
{
Name
:
"redis"
,
...
...
@@ -1569,20 +1569,20 @@ func TestTask_Validate_ConnectKind(t *testing.T) {
},
{
Desc
:
"Service name invalid"
,
Kind
:
"connect:redis:test"
,
Kind
:
"connect
-proxy
:redis:test"
,
Service
:
&
Service
{
Name
:
"redis"
,
},
ErrContains
:
"Connect proxy service kind
\"
connect:redis:test
\"
should
not contain `:`"
,
ErrContains
:
"Connect proxy service kind
\"
connect
-proxy
:redis:test
\"
must
not contain `:`"
,
},
{
Desc
:
"Service name not found in group"
,
Kind
:
"connect:redis"
,
Kind
:
"connect
-proxy
:redis"
,
ErrContains
:
"Connect proxy service name not found in services from task group"
,
},
{
Desc
:
"Connect stanza not configured in group"
,
Kind
:
"connect:redis"
,
Kind
:
"connect
-proxy
:redis"
,
TgService
:
[]
*
Service
{{
Name
:
"redis"
,
}},
...
...
@@ -1590,7 +1590,7 @@ func TestTask_Validate_ConnectKind(t *testing.T) {
},
{
Desc
:
"Valid connect proxy kind"
,
Kind
:
"connect:redis"
,
Kind
:
"connect
-proxy
:redis"
,
TgService
:
[]
*
Service
{{
Name
:
"redis"
,
Connect
:
&
ConsulConnect
{
...
...
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