----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/59147/#review176726 -----------------------------------------------------------
src/master/http.cpp Lines 4477-4487 (patched) <https://reviews.apache.org/r/59147/#comment250179> You have this same logic in lambda callbacks just before both of the `_startMaintenance` callsites. Is there any reason you couldn't move this into `_startMaintenance` and make use of `defer` here, to eliminate the need for a lambda? src/master/http.cpp Lines 4482-4483 (patched) <https://reviews.apache.org/r/59147/#comment250173> Following on my previous comment regarding calls to `approved` which return an error: let's try to establish some consistent endpoint behavior when authorization attempts return an error. I think that the approach that you use here seems reasonable: if any authorization request returns an error, then fail the request. But if we do this here, we should probably do it elsewhere as well. I don't think the behavior of the endpoint when all authorization requests are successful should influence its behavior in the presence of an error from the authorizer. i.e., this endpoint has all-or-nothing authorization semantics when all authorization requests succeed, and GET_MAINTENANCE_STATUS has filtering-type semantics when all authorization requests succeed. However, I would argue that they should both have the same semantics in the presence of errors from the authorizer. WDYT? src/master/http.cpp Lines 4483 (patched) <https://reviews.apache.org/r/59147/#comment250174> If we return an error here, could you add some helpful output to the message? i.e., ``` return InternalServerError( "Error when authorizing: " + approved.error()); ``` src/master/http.cpp Lines 4597-4598 (patched) <https://reviews.apache.org/r/59147/#comment250177> Ditto here regarding error semantics and the error message. src/master/http.cpp Lines 4675-4685 (patched) <https://reviews.apache.org/r/59147/#comment250180> Ditto regarding moving this logic into `_stopMaintenance`. - Greg Mann On June 1, 2017, 2:57 p.m., Alexander Rojas wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/59147/ > ----------------------------------------------------------- > > (Updated June 1, 2017, 2:57 p.m.) > > > Review request for mesos, Adam B, Greg Mann, and Till Toenshoff. > > > Bugs: MESOS-7415 > https://issues.apache.org/jira/browse/MESOS-7415 > > > Repository: mesos > > > Description > ------- > > Enables the use of authorization for the `START_MAINTENANCE` and > `STOP_MAINTENANCE` v1 API calls, using the ACLs `StartMaintenance` > and `StopMaintenance` respectively as well the actions of the same > name as the API calls. > > It also updates the ApiTests to take into account the authorization > case. > > > Diffs > ----- > > src/master/http.cpp 7060b8fa53e0682681c50e051908ffbbf50fb7da > src/tests/api_tests.cpp faf3242f9c86d866c4bb5e457fcfe47c1063cc09 > > > Diff: https://reviews.apache.org/r/59147/diff/4/ > > > Testing > ------- > > make check > > > Thanks, > > Alexander Rojas > >