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
2ad338ef
Commit
2ad338ef
authored
5 years ago
by
Mahmood Ali
Browse files
Options
Download
Email Patches
Plain Diff
address review feedback
parent
83b08ab1
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
nightly
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
client/allocrunner/task_hook_coordinator.go
+19
-9
client/allocrunner/task_hook_coordinator.go
with
19 additions
and
9 deletions
+19
-9
client/allocrunner/task_hook_coordinator.go
+
19
-
9
View file @
2ad338ef
...
...
@@ -7,7 +7,7 @@ import (
"github.com/hashicorp/nomad/nomad/structs"
)
// TaskHookCoordinator helps coordinate
s
when main start tasks can launch
// TaskHookCoordinator helps coordinate when main start tasks can launch
// namely after all Prestart Tasks have run, and after all BlockUntilCompleted have completed
type
taskHookCoordinator
struct
{
logger
hclog
.
Logger
...
...
@@ -41,24 +41,34 @@ func newTaskHookCoordinator(logger hclog.Logger, tasks []*structs.Task) *taskHoo
func
(
c
*
taskHookCoordinator
)
setTasks
(
tasks
[]
*
structs
.
Task
)
{
for
_
,
task
:=
range
tasks
{
if
task
.
Lifecycle
==
nil
||
task
.
Lifecycle
.
Hook
!=
structs
.
TaskLifecycleHookPrestart
{
if
task
.
Lifecycle
==
nil
{
// move nothing
continue
}
// only working with prestart hooks here
if
task
.
Lifecycle
.
Sidecar
{
c
.
prestartSidecar
[
task
.
Name
]
=
struct
{}{}
}
else
{
c
.
prestartEphemeral
[
task
.
Name
]
=
struct
{}{}
switch
task
.
Lifecycle
.
Hook
{
case
structs
.
TaskLifecycleHookPrestart
:
if
task
.
Lifecycle
.
Sidecar
{
c
.
prestartSidecar
[
task
.
Name
]
=
struct
{}{}
}
else
{
c
.
prestartEphemeral
[
task
.
Name
]
=
struct
{}{}
}
default
:
c
.
logger
.
Error
(
"invalid lifecycle hook"
,
"hook"
,
task
.
Lifecycle
.
Hook
)
}
}
if
len
(
c
.
prestartSidecar
)
+
len
(
c
.
prestartEphemeral
)
==
0
{
if
!
c
.
hasPrestartTasks
()
{
c
.
mainTaskCtxCancel
()
}
}
func
(
c
*
taskHookCoordinator
)
hasPrestartTasks
()
bool
{
return
len
(
c
.
prestartSidecar
)
+
len
(
c
.
prestartEphemeral
)
>
0
}
func
(
c
*
taskHookCoordinator
)
startConditionForTask
(
task
*
structs
.
Task
)
<-
chan
struct
{}
{
if
task
.
Lifecycle
!=
nil
&&
task
.
Lifecycle
.
Hook
==
structs
.
TaskLifecycleHookPrestart
{
return
c
.
closedCh
...
...
@@ -94,7 +104,7 @@ func (c *taskHookCoordinator) taskStateUpdated(states map[string]*structs.TaskSt
}
// everything well
if
len
(
c
.
prestartSidecar
)
+
len
(
c
.
prestartEphemeral
)
==
0
{
if
!
c
.
hasPrestartTasks
()
{
c
.
mainTaskCtxCancel
()
}
}
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