-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/44450/
-----------------------------------------------------------
(Updated March 14, 2016, 2:07 p.m.)
Review request for mesos, Adam B and Alexander Rukletsov.
Changes
-------
Addressed comments of Adam.
Bugs: MESOS-4881
https://issues.apache.org/jira/browse/MESOS-4881
Repository: mesos
Description
-------
Rescind all outstanding offers to satisfy weights update.
Diffs (updated)
-----
src/master/master.hpp 124d43931a5c8a00ee0aaa604feb1761795209f2
src/master/weights_handler.cpp c9a1b0d9adbeb1e165999cdbb4f295b24f10b18f
Diff: https://reviews.apache.org/r/44450/diff/
Testing
-------
Make && Make check.
Manual test steps:
- Start Mesos master:
$ ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/tmp/mesos-master
- Start Mesos slave:
$ ./bin/mesos-slave.sh --master=127.0.0.1:5050
- Register a framwork with `curl`
$ curl -v http://127.0.0.1:5050/api/v1/scheduler -H "Content-type:
application/json" -X POST -d @subscribe.json
$ cat subscribe.json
{
"type" : "SUBSCRIBE",
"subscribe" : {
"framework_info" : {
"user" : "root",
"name" : "comsumer c1 HTTP Framework",
"role" : "mesos",
"principal":"wyq"
},
"force" : true
}
}
And this framework will receive an offer:
{"subscribed":{"framework_id":{"value":"7de42f40-2ddd-44a1-a4ff-4af932d25e02-0000"}},"type":"SUBSCRIBED"}20
{"type":"HEARTBEAT"}680
{"offers":{"offers":[{"agent_id":{"value":"7de42f40-2ddd-44a1-a4ff-4af932d25e02-S0"},"framework_id":{"value":"7de42f40-2ddd-44a1-a4ff-4af932d25e02-0000"},"hostname":"192.168.1.5","id":{"value":"7de42f40-2ddd-44a1-a4ff-4af932d25e02-O0"},"resources":[{"name":"cpus","role":"*","scalar":{"value":8.0},"type":"SCALAR"},{"name":"mem","role":"*","scalar":{"value":15360.0},"type":"SCALAR"},{"name":"disk","role":"*","scalar":{"value":470832.0},"type":"SCALAR"},{"name":"ports","ranges":{"range":[{"begin":31000,"end":32000}]},"role":"*","type":"RANGES"}],"url":{"address":{"hostname":"192.168.1.5","ip":"192.168.1.5","port":5051},"path":"\/slave(1)","scheme":"http"}}]},"type":"OFFERS"}20
{"type":"HEARTBEAT"}20
- Update the weight of role `mesos`
$ curl --data "[{\"weight\":1.8,\"role\":\"mesos\"}]" -X PUT
http://127.0.0.1:5050/weights
Receive an rescind offer, and a new offer received:
{"rescind":{"offer_id":{"value":"7de42f40-2ddd-44a1-a4ff-4af932d25e02-O0"}},"type":"RESCIND"}680
{"offers":{"offers":[{"agent_id":{"value":"7de42f40-2ddd-44a1-a4ff-4af932d25e02-S0"},"framework_id":{"value":"7de42f40-2ddd-44a1-a4ff-4af932d25e02-0000"},"hostname":"192.168.1.5","id":{"value":"7de42f40-2ddd-44a1-a4ff-4af932d25e02-O1"},"resources":[{"name":"cpus","role":"*","scalar":{"value":8.0},"type":"SCALAR"},{"name":"mem","role":"*","scalar":{"value":15360.0},"type":"SCALAR"},{"name":"disk","role":"*","scalar":{"value":470832.0},"type":"SCALAR"},{"name":"ports","ranges":{"range":[{"begin":31000,"end":32000}]},"role":"*","type":"RANGES"}],"url":{"address":{"hostname":"192.168.1.5","ip":"192.168.1.5","port":5051},"path":"\/slave(1)","scheme":"http"}}]},"type":"OFFERS"}20
{"type":"HEARTBEAT"}20
- Update the weight of role `mesos1`
$ curl --data "[{\"weight\":2.8,\"role\":\"mesos1\"}]" -X PUT
http://127.0.0.1:5050/weights
- The outstanding offer will not be rescinded.
(TODO) I will add couple of tests for this patch in another JIRA.
Thanks,
Yongqiao Wang