mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 18:35:44 +03:00
Merge pull request #5628 from hashicorp/f-preemption-config
Add config to disable preemption for batch/service jobs
This commit is contained in:
@@ -250,7 +250,10 @@ func (s *HTTPServer) schedulerUpdateConfig(resp http.ResponseWriter, req *http.R
|
||||
}
|
||||
|
||||
args.Config = structs.SchedulerConfiguration{
|
||||
PreemptionConfig: structs.PreemptionConfig{SystemSchedulerEnabled: conf.PreemptionConfig.SystemSchedulerEnabled},
|
||||
PreemptionConfig: structs.PreemptionConfig{
|
||||
SystemSchedulerEnabled: conf.PreemptionConfig.SystemSchedulerEnabled,
|
||||
BatchSchedulerEnabled: conf.PreemptionConfig.BatchSchedulerEnabled,
|
||||
ServiceSchedulerEnabled: conf.PreemptionConfig.ServiceSchedulerEnabled},
|
||||
}
|
||||
|
||||
// Check for cas value
|
||||
|
||||
@@ -272,6 +272,8 @@ func TestOperator_SchedulerGetConfiguration(t *testing.T) {
|
||||
out, ok := obj.(structs.SchedulerConfigurationResponse)
|
||||
require.True(ok)
|
||||
require.True(out.SchedulerConfig.PreemptionConfig.SystemSchedulerEnabled)
|
||||
require.True(out.SchedulerConfig.PreemptionConfig.BatchSchedulerEnabled)
|
||||
require.True(out.SchedulerConfig.PreemptionConfig.ServiceSchedulerEnabled)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -280,7 +282,8 @@ func TestOperator_SchedulerSetConfiguration(t *testing.T) {
|
||||
httpTest(t, nil, func(s *TestAgent) {
|
||||
require := require.New(t)
|
||||
body := bytes.NewBuffer([]byte(`{"PreemptionConfig": {
|
||||
"SystemSchedulerEnabled": true
|
||||
"SystemSchedulerEnabled": true,
|
||||
"ServiceSchedulerEnabled": true
|
||||
}}`))
|
||||
req, _ := http.NewRequest("PUT", "/v1/operator/scheduler/configuration", body)
|
||||
resp := httptest.NewRecorder()
|
||||
@@ -301,6 +304,7 @@ func TestOperator_SchedulerSetConfiguration(t *testing.T) {
|
||||
err = s.RPC("Operator.SchedulerGetConfiguration", &args, &reply)
|
||||
require.Nil(err)
|
||||
require.True(reply.SchedulerConfig.PreemptionConfig.SystemSchedulerEnabled)
|
||||
require.True(reply.SchedulerConfig.PreemptionConfig.ServiceSchedulerEnabled)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -309,7 +313,8 @@ func TestOperator_SchedulerCASConfiguration(t *testing.T) {
|
||||
httpTest(t, nil, func(s *TestAgent) {
|
||||
require := require.New(t)
|
||||
body := bytes.NewBuffer([]byte(`{"PreemptionConfig": {
|
||||
"SystemSchedulerEnabled": true
|
||||
"SystemSchedulerEnabled": true,
|
||||
"BatchSchedulerEnabled":true
|
||||
}}`))
|
||||
req, _ := http.NewRequest("PUT", "/v1/operator/scheduler/configuration", body)
|
||||
resp := httptest.NewRecorder()
|
||||
@@ -331,11 +336,13 @@ func TestOperator_SchedulerCASConfiguration(t *testing.T) {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
require.True(reply.SchedulerConfig.PreemptionConfig.SystemSchedulerEnabled)
|
||||
require.True(reply.SchedulerConfig.PreemptionConfig.BatchSchedulerEnabled)
|
||||
|
||||
// Create a CAS request, bad index
|
||||
{
|
||||
buf := bytes.NewBuffer([]byte(`{"PreemptionConfig": {
|
||||
"SystemSchedulerEnabled": false
|
||||
"SystemSchedulerEnabled": false,
|
||||
"BatchSchedulerEnabled":true
|
||||
}}`))
|
||||
req, _ := http.NewRequest("PUT", fmt.Sprintf("/v1/operator/scheduler/configuration?cas=%d", reply.QueryMeta.Index-1), buf)
|
||||
resp := httptest.NewRecorder()
|
||||
@@ -351,7 +358,8 @@ func TestOperator_SchedulerCASConfiguration(t *testing.T) {
|
||||
// Create a CAS request, good index
|
||||
{
|
||||
buf := bytes.NewBuffer([]byte(`{"PreemptionConfig": {
|
||||
"SystemSchedulerEnabled": false
|
||||
"SystemSchedulerEnabled": false,
|
||||
"BatchSchedulerEnabled":false
|
||||
}}`))
|
||||
req, _ := http.NewRequest("PUT", fmt.Sprintf("/v1/operator/scheduler/configuration?cas=%d", reply.QueryMeta.Index), buf)
|
||||
resp := httptest.NewRecorder()
|
||||
@@ -369,5 +377,6 @@ func TestOperator_SchedulerCASConfiguration(t *testing.T) {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
require.False(reply.SchedulerConfig.PreemptionConfig.SystemSchedulerEnabled)
|
||||
require.False(reply.SchedulerConfig.PreemptionConfig.BatchSchedulerEnabled)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user