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
1b2cb123
Commit
1b2cb123
authored
9 years ago
by
Armon Dadgar
Browse files
Options
Download
Email Patches
Plain Diff
scheduler: Adding CreateEval to Planner
parent
d0cf06a8
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
v0.7.0
v0.7.0+pro
v0.7.0+ent
v0.7.0-rc3
v0.7.0-rc2
v0.7.0-rc1
v0.7.0-beta1
v0.6.3
v0.6.3-rc1
v0.6.2
v0.6.1
v0.6.0
v0.6.0-rc2
v0.6.0-rc1
v0.5.6
v0.5.6-rc1
v0.5.5
v0.5.5-rc2
v0.5.5-rc1
v0.5.4
v0.5.3
v0.5.3-rc1
v0.5.2
v0.5.2-rc1
v0.5.1
v0.5.1-rc2
v0.5.1-rc1
v0.5.0
v0.5.0-rc2
v0.5.0-rc1
v0.4.3
v0.4.2
v0.4.1
v0.4.1-rc1
v0.4.0
v0.4.0-rc2
v0.4.0-rc1
v0.3.2
v0.3.2-rc2
v0.3.2-rc1
v0.3.1
v0.3.0
v0.3.0-rc2
v0.3rc1
v0.2.3
v0.2.3-rc1
v0.2.2
v0.2.1
v0.2.0
v0.1.2
v0.1.1
v0.1.0
show
nightly
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
scheduler/scheduler.go
+4
-0
scheduler/scheduler.go
scheduler/scheduler_test.go
+22
-2
scheduler/scheduler_test.go
with
26 additions
and
2 deletions
+26
-2
scheduler/scheduler.go
+
4
-
0
View file @
1b2cb123
...
...
@@ -79,4 +79,8 @@ type Planner interface {
// UpdateEval is used to update an evaluation. This should update
// a copy of the input evaluation since that should be immutable.
UpdateEval
(
*
structs
.
Evaluation
)
error
// CreateEval is used to create an evaluation. This should set the
// PreviousEval to that of the current evaluation.
CreateEval
(
*
structs
.
Evaluation
)
error
}
This diff is collapsed.
Click to expand it.
scheduler/scheduler_test.go
+
22
-
2
View file @
1b2cb123
...
...
@@ -25,6 +25,10 @@ func (r *RejectPlan) UpdateEval(eval *structs.Evaluation) error {
return
nil
}
func
(
r
*
RejectPlan
)
CreateEval
(
*
structs
.
Evaluation
)
error
{
return
nil
}
// Harness is a lightweight testing harness for schedulers.
// It manages a state store copy and provides the planner
// interface. It can be extended for various testing uses.
...
...
@@ -34,8 +38,9 @@ type Harness struct {
Planner
Planner
planLock
sync
.
Mutex
Plans
[]
*
structs
.
Plan
Evals
[]
*
structs
.
Evaluation
Plans
[]
*
structs
.
Plan
Evals
[]
*
structs
.
Evaluation
CreateEvals
[]
*
structs
.
Evaluation
nextIndex
uint64
nextIndexLock
sync
.
Mutex
...
...
@@ -108,6 +113,21 @@ func (h *Harness) UpdateEval(eval *structs.Evaluation) error {
return
nil
}
func
(
h
*
Harness
)
CreateEval
(
eval
*
structs
.
Evaluation
)
error
{
// Ensure sequential plan application
h
.
planLock
.
Lock
()
defer
h
.
planLock
.
Unlock
()
// Store the eval
h
.
CreateEvals
=
append
(
h
.
CreateEvals
,
eval
)
// Check for custom planner
if
h
.
Planner
!=
nil
{
return
h
.
Planner
.
CreateEval
(
eval
)
}
return
nil
}
// NextIndex returns the next index
func
(
h
*
Harness
)
NextIndex
()
uint64
{
h
.
nextIndexLock
.
Lock
()
...
...
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