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
75ac7c4b
Commit
75ac7c4b
authored
6 years ago
by
Alex Dadgar
Browse files
Options
Download
Email Patches
Plain Diff
Make alloc health watcher a postrun hook rather than shutdown hook
parent
12dc1877
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
nightly
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
client/allocrunner/health_hook.go
+3
-3
client/allocrunner/health_hook.go
client/allocrunner/health_hook_test.go
+24
-21
client/allocrunner/health_hook_test.go
with
27 additions
and
24 deletions
+27
-24
client/allocrunner/health_hook.go
+
3
-
3
View file @
75ac7c4b
...
...
@@ -175,7 +175,7 @@ func (h *allocHealthWatcherHook) Update(req *interfaces.RunnerUpdateRequest) err
return
h
.
init
()
}
func
(
h
*
allocHealthWatcherHook
)
De
str
oy
()
error
{
func
(
h
*
allocHealthWatcherHook
)
Po
str
un
()
error
{
h
.
hookLock
.
Lock
()
defer
h
.
hookLock
.
Unlock
()
...
...
@@ -189,8 +189,8 @@ func (h *allocHealthWatcherHook) Destroy() error {
}
func
(
h
*
allocHealthWatcherHook
)
Shutdown
()
{
// Same as
De
str
oy
h
.
De
str
oy
()
// Same as
Po
str
un
h
.
Po
str
un
()
}
// watchHealth watches alloc health until it is set, the alloc is stopped, or
...
...
This diff is collapsed.
Click to expand it.
client/allocrunner/health_hook_test.go
+
24
-
21
View file @
75ac7c4b
...
...
@@ -22,7 +22,7 @@ import (
// statically assert health hook implements the expected interfaces
var
_
interfaces
.
RunnerPrerunHook
=
(
*
allocHealthWatcherHook
)(
nil
)
var
_
interfaces
.
RunnerUpdateHook
=
(
*
allocHealthWatcherHook
)(
nil
)
var
_
interfaces
.
Runner
De
str
oy
Hook
=
(
*
allocHealthWatcherHook
)(
nil
)
var
_
interfaces
.
Runner
Po
str
un
Hook
=
(
*
allocHealthWatcherHook
)(
nil
)
var
_
interfaces
.
ShutdownHook
=
(
*
allocHealthWatcherHook
)(
nil
)
// allocHealth is emitted to a chan whenever SetHealth is called
...
...
@@ -76,8 +76,9 @@ func (m *mockHealthSetter) ClearHealth() {
m
.
taskEvents
=
nil
}
// TestHealthHook_PrerunDestroy asserts a health hook does not error if it is run and destroyed.
func
TestHealthHook_PrerunDestroy
(
t
*
testing
.
T
)
{
// TestHealthHook_PrerunPostrun asserts a health hook does not error if it is
// run and postrunned.
func
TestHealthHook_PrerunPostrun
(
t
*
testing
.
T
)
{
t
.
Parallel
()
require
:=
require
.
New
(
t
)
...
...
@@ -96,7 +97,7 @@ func TestHealthHook_PrerunDestroy(t *testing.T) {
require
.
True
(
ok
)
_
,
ok
=
h
.
(
interfaces
.
RunnerUpdateHook
)
require
.
True
(
ok
)
de
str
oy
h
,
ok
:=
h
.
(
interfaces
.
Runner
De
str
oy
Hook
)
po
str
un
h
,
ok
:=
h
.
(
interfaces
.
Runner
Po
str
un
Hook
)
require
.
True
(
ok
)
// Prerun
...
...
@@ -109,12 +110,12 @@ func TestHealthHook_PrerunDestroy(t *testing.T) {
assert
.
False
(
t
,
ahw
.
isDeploy
)
ahw
.
hookLock
.
Unlock
()
//
De
str
oy
require
.
NoError
(
de
str
oyh
.
De
str
oy
())
//
Po
str
un
require
.
NoError
(
po
str
unh
.
Po
str
un
())
}
// TestHealthHook_PrerunUpdate
De
str
oy
asserts Updates may be applied concurrently.
func
TestHealthHook_PrerunUpdate
De
str
oy
(
t
*
testing
.
T
)
{
// TestHealthHook_PrerunUpdate
Po
str
un
asserts Updates may be applied concurrently.
func
TestHealthHook_PrerunUpdate
Po
str
un
(
t
*
testing
.
T
)
{
t
.
Parallel
()
require
:=
require
.
New
(
t
)
...
...
@@ -147,13 +148,13 @@ func TestHealthHook_PrerunUpdateDestroy(t *testing.T) {
assert
.
NoError
(
t
,
err
)
}
//
De
str
oy
require
.
NoError
(
h
.
De
str
oy
())
//
Po
str
un
require
.
NoError
(
h
.
Po
str
un
())
}
// TestHealthHook_UpdatePrerun
De
str
oy
asserts that a hook may have Update
// TestHealthHook_UpdatePrerun
Po
str
un
asserts that a hook may have Update
// called before Prerun.
func
TestHealthHook_UpdatePrerun
De
str
oy
(
t
*
testing
.
T
)
{
func
TestHealthHook_UpdatePrerun
Po
str
un
(
t
*
testing
.
T
)
{
t
.
Parallel
()
require
:=
require
.
New
(
t
)
...
...
@@ -191,12 +192,12 @@ func TestHealthHook_UpdatePrerunDestroy(t *testing.T) {
assert
.
True
(
t
,
h
.
isDeploy
)
h
.
hookLock
.
Unlock
()
//
De
str
oy
require
.
NoError
(
h
.
De
str
oy
())
//
Po
str
un
require
.
NoError
(
h
.
Po
str
un
())
}
// TestHealthHook_
De
str
oy
asserts that a hook may have only
De
str
oy
called.
func
TestHealthHook_
De
str
oy
(
t
*
testing
.
T
)
{
// TestHealthHook_
Po
str
un
asserts that a hook may have only
Po
str
un
called.
func
TestHealthHook_
Po
str
un
(
t
*
testing
.
T
)
{
t
.
Parallel
()
require
:=
require
.
New
(
t
)
...
...
@@ -209,8 +210,8 @@ func TestHealthHook_Destroy(t *testing.T) {
h
:=
newAllocHealthWatcherHook
(
logger
,
mock
.
Alloc
(),
hs
,
b
.
Listen
(),
consul
)
.
(
*
allocHealthWatcherHook
)
//
De
str
oy
require
.
NoError
(
h
.
De
str
oy
())
//
Po
str
un
require
.
NoError
(
h
.
Po
str
un
())
}
// TestHealthHook_SetHealth asserts SetHealth is called when health status is
...
...
@@ -290,8 +291,8 @@ func TestHealthHook_SetHealth(t *testing.T) {
require
.
Nilf
(
ev
,
"%#v"
,
health
.
taskEvents
)
}
//
De
str
oy
require
.
NoError
(
h
.
De
str
oy
())
//
Po
str
un
require
.
NoError
(
h
.
Po
str
un
())
}
// TestHealthHook_SystemNoop asserts that system jobs return the noop tracker.
...
...
@@ -309,7 +310,9 @@ func TestHealthHook_SystemNoop(t *testing.T) {
require
.
False
(
t
,
ok
)
_
,
ok
=
h
.
(
interfaces
.
RunnerUpdateHook
)
require
.
False
(
t
,
ok
)
_
,
ok
=
h
.
(
interfaces
.
RunnerDestroyHook
)
_
,
ok
=
h
.
(
interfaces
.
RunnerPostrunHook
)
require
.
False
(
t
,
ok
)
_
,
ok
=
h
.
(
interfaces
.
ShutdownHook
)
require
.
False
(
t
,
ok
)
}
...
...
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