Skip to content

Commit 1b83f80

Browse files
committed
Merge pull request #89 from dallasmarlow/refuse-interval
configurable offer refuse interval
2 parents 050a0e0 + f4d008f commit 1b83f80

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

cmd/etcd-mesos-scheduler/app.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ func main() {
8989
flag.String("mesos-authentication-principal", "", "Mesos authentication principal")
9090
mesosAuthSecretFile :=
9191
flag.String("mesos-authentication-secret-file", "", "Mesos authentication secret file")
92+
mesosOfferRefuseSeconds :=
93+
flag.Float64("mesos-offer-refuse-seconds", 15, "Mesos offer refuse seconds")
9294
authProvider :=
9395
flag.String("mesos-authentication-provider", sasl.ProviderName,
9496
fmt.Sprintf("Authentication provider to use, default is SASL that supports mechanisms: %+v", mech.ListSupported()))
@@ -171,7 +173,7 @@ func main() {
171173
*sandboxDisk,
172174
*sandboxCpu,
173175
*sandboxMem,
174-
)
176+
*mesosOfferRefuseSeconds)
175177
etcdScheduler.ExecutorPath = *executorPath
176178
etcdScheduler.Master = *master
177179
etcdScheduler.FrameworkName = *frameworkName

scheduler/scheduler.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ type EtcdScheduler struct {
9797
diskPerTask float64
9898
cpusPerTask float64
9999
memPerTask float64
100+
offerRefuseSeconds float64
100101
pauseChan chan struct{}
101102
chillSeconds time.Duration
102103
autoReseedEnabled bool
@@ -132,6 +133,7 @@ func NewEtcdScheduler(
132133
diskPerTask float64,
133134
cpusPerTask float64,
134135
memPerTask float64,
136+
offerRefuseSeconds float64,
135137
) *EtcdScheduler {
136138
return &EtcdScheduler{
137139
Stats: Stats{
@@ -163,6 +165,7 @@ func NewEtcdScheduler(
163165
diskPerTask: diskPerTask,
164166
cpusPerTask: cpusPerTask,
165167
memPerTask: memPerTask,
168+
offerRefuseSeconds: offerRefuseSeconds,
166169
reconciliationInfo: map[string]string{},
167170
}
168171
}
@@ -465,8 +468,8 @@ func (s *EtcdScheduler) decline(
465468
driver.DeclineOffer(
466469
offer.Id,
467470
&mesos.Filters{
468-
// Decline offers for 5 seconds.
469-
RefuseSeconds: proto.Float64(float64(5)),
471+
// Decline offers for configured interval.
472+
RefuseSeconds: proto.Float64(s.offerRefuseSeconds),
470473
},
471474
)
472475
}

scheduler/scheduler_test.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func NewOffer(id string) *mesos.Offer {
5252

5353
func TestStartup(t *gotesting.T) {
5454
mockdriver := &MockSchedulerDriver{}
55-
testScheduler := NewEtcdScheduler(1, 0, 0, false, []*mesos.CommandInfo_URI{}, false, 4096, 1, 256)
55+
testScheduler := NewEtcdScheduler(1, 0, 0, false, []*mesos.CommandInfo_URI{}, false, 4096, 1, 256, 1)
5656
testScheduler.running = map[string]*config.Node{
5757
"etcd-1": nil,
5858
"etcd-2": nil,
@@ -106,7 +106,7 @@ func TestStartup(t *gotesting.T) {
106106
}
107107

108108
func TestReconciliationOnStartup(t *gotesting.T) {
109-
testScheduler := NewEtcdScheduler(3, 0, 0, true, []*mesos.CommandInfo_URI{}, false, 4096, 1, 256)
109+
testScheduler := NewEtcdScheduler(3, 0, 0, true, []*mesos.CommandInfo_URI{}, false, 4096, 1, 256, 1)
110110
mockdriver := &MockSchedulerDriver{
111111
runningStatuses: make(chan *mesos.TaskStatus, 10),
112112
scheduler: testScheduler,
@@ -174,7 +174,7 @@ func TestReconciliationOnStartup(t *gotesting.T) {
174174
}
175175

176176
func TestGrowToDesiredAfterReconciliation(t *gotesting.T) {
177-
testScheduler := NewEtcdScheduler(3, 0, 0, true, []*mesos.CommandInfo_URI{}, false, 4096, 1, 256)
177+
testScheduler := NewEtcdScheduler(3, 0, 0, true, []*mesos.CommandInfo_URI{}, false, 4096, 1, 256, 1)
178178

179179
reconciliation := map[string]string{
180180
"etcd-1": "slave-1",
@@ -305,6 +305,7 @@ func TestScheduler(t *gotesting.T) {
305305
4096,
306306
1,
307307
256,
308+
1,
308309
)
309310

310311
// Skip initialization logic, tested in TestStartup.

0 commit comments

Comments
 (0)