-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/41681/
-----------------------------------------------------------
(Updated Jan. 25, 2016, 3:23 p.m.)
Review request for mesos, Adam B, Neil Conway, and Qian Zhang.
Changes
-------
Remove the key(weights) from JSON body to keep consistant with other endpoint
(such as /quota).
Bugs: MESOS-4214
https://issues.apache.org/jira/browse/MESOS-4214
Repository: mesos
Description
-------
Introduce HTTP endpoint /weights for updating weight.
Diffs (updated)
-----
include/mesos/authorizer/authorizer.hpp
5ee3c7afadd131802c93febbb6b4dbad069c2d81
include/mesos/authorizer/authorizer.proto
226441f8cbd6d0828bf1636cc08c21ffcc75e6a7
src/CMakeLists.txt 47d0a7c0fe73b9297cd7dde6086b5e6e9e1f9e4e
src/Makefile.am 8657a869f931aa7482fbb09f2c6df95b6a8c50c6
src/authorizer/local/authorizer.hpp c7321c276d566eca6a91f45c546468bea1b0da15
src/authorizer/local/authorizer.cpp 9557bbdf68ff182c4538bbf70cee576d717abc05
src/master/http.cpp 12c1fe5a514903f657911302e8770e9b245fdbb7
src/master/master.hpp 3a7e18232323a1c051bcc97915484b1195fffe58
src/master/master.cpp 9ee56277c8a472be9e683d5db505becfb5f7c422
src/master/registry.proto 9958f9c2bdb785390fca2f292b65d5a9310434d5
src/master/weights_handler.cpp PRE-CREATION
src/tests/mesos.hpp 5a737a6490060b0194db097990b327c9921221f4
src/tests/mesos.cpp 18d0d8f8037ebc27c87bcb0f1ce9f143e7505ec8
Diff: https://reviews.apache.org/r/41681/diff/
Testing
-------
Make & Make check successfully!
$ (./mesos-master.sh --ip=127.0.0.1 --work_dir=/tmp/mesos-master
--weights="role1=4.2,role2=3.1" --authenticate_http
--credentials=/opt/credentials.json >> /tmp/mesos-master.log 2>&1 &)
$ curl http://localhost:5050/roles | python -mjson.tool
{
"roles": [
{
"frameworks": [ ],
"name": "*",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 1
},
{
"frameworks": [ ],
"name": "role1",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 4.2
},
{
"frameworks": [ ],
"name": "role2",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 3.1
}
]
}
Test update:
$ curl --user framework1:secret_string1 --data
weights="[{\"weight\":1.8,\"role\":\"role1\"},{\"weight\":1.0,\"role\":\"role2\"},{\"weight\":3.4,\"role\":\"role3\"}]"
-X PUT http://127.0.0.1:5050/weights
$ curl http://localhost:5050/roles | python -mjson.tool
{
"roles": [
{
"frameworks": [],
"name": "*",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 1.0
},
{
"frameworks": [],
"name": "role1",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 1.8
},
{
"frameworks": [],
"name": "role2",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 1.0
},
{
"frameworks": [],
"name": "role3",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 3.4
}
]
}
Test recovuery:
$ ps -ef | grep mesos-master
501 56292 1 0 6:18PM ttys001 0:00.31
/Users/yqwyq/Desktop/mesos/build/src/.libs/mesos-master --ip=127.0.0.1
--work_dir=/tmp/mesos-master --weights=role1=4.2,role2=3.1 --authenticate_http
--credentials=/opt/credentials.json
$ kill -9 56292
$ (./mesos-master.sh --ip=127.0.0.1 --work_dir=/tmp/mesos-master
--weights="role1=4.2,role2=3.1,role6=9.0" --authenticate_http
--credentials=/opt/credentials.json >> /tmp/mesos-master.log 2>&1 &)
$ curl http://localhost:5050/roles | python -mjson.tool
{
"roles": [
{
"frameworks": [],
"name": "*",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 1.0
},
{
"frameworks": [],
"name": "role1",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 1.8
},
{
"frameworks": [],
"name": "role2",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 1.0
},
{
"frameworks": [],
"name": "role3",
"resources": {
"cpus": 0,
"disk": 0,
"mem": 0
},
"weight": 3.4
}
]
}
Thanks,
Yongqiao Wang