Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-07-09 Thread Joris Van Remoortere

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/#review141549
---



Closing this review due to inactivity. Please see our 
[guidelines](https://github.com/apache/mesos/blob/master/docs/reopening-reviews.md)
 for reopening reviews.

- Joris Van Remoortere


On Feb. 19, 2016, 6:52 p.m., Mark Cavage wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43269/
> ---
> 
> (Updated Feb. 19, 2016, 6:52 p.m.)
> 
> 
> Review request for mesos and Benjamin Hindman.
> 
> 
> Bugs: MESOS-4610
> https://issues.apache.org/jira/browse/MESOS-4610
> 
> 
> Repository: mesos
> 
> 
> Description
> ---
> 
> MasterContender/MasterDetector loadable as modules.
> 
> 
> Diffs
> -
> 
>   include/mesos/master/contender.hpp PRE-CREATION 
>   include/mesos/master/detector.hpp PRE-CREATION 
>   include/mesos/module/contender.hpp PRE-CREATION 
>   include/mesos/module/detector.hpp PRE-CREATION 
>   include/mesos/scheduler.hpp 14c7ff9 
>   src/Makefile.am 27aec37 
>   src/cli/resolve.cpp 257e290 
>   src/examples/test_contender_module.cpp PRE-CREATION 
>   src/examples/test_detector_module.cpp PRE-CREATION 
>   src/local/local.cpp 359fc54 
>   src/master/contender.hpp 3fd20f8 
>   src/master/contender.cpp 9ad49ce 
>   src/master/detector.hpp eb5d2a9 
>   src/master/detector.cpp 9274435 
>   src/master/main.cpp 4263110 
>   src/master/master.hpp 2f2ad2a 
>   src/master/master.cpp e1ca81d 
>   src/module/manager.cpp 6ae9950 
>   src/sched/sched.cpp 525255e 
>   src/scheduler/scheduler.cpp 99a7d0d 
>   src/slave/main.cpp e3a4d13 
>   src/slave/slave.hpp ced835d 
>   src/tests/authentication_tests.cpp 85f14c3 
>   src/tests/cluster.hpp 99a785a 
>   src/tests/cluster.cpp 084fb1c 
>   src/tests/fault_tolerance_tests.cpp 982468f 
>   src/tests/master_allocator_tests.cpp cba7c36 
>   src/tests/master_authorization_tests.cpp 29c89fb 
>   src/tests/master_contender_detector_tests.cpp 255ab81 
>   src/tests/master_slave_reconciliation_tests.cpp d41178e 
>   src/tests/master_tests.cpp 393a6f5f 
>   src/tests/module.hpp 4b32f29 
>   src/tests/module.cpp 8cc305c 
>   src/tests/oversubscription_tests.cpp d4ae819 
>   src/tests/partition_tests.cpp c5badbe 
>   src/tests/persistent_volume_tests.cpp e169e1b 
>   src/tests/reconciliation_tests.cpp 97112c4 
>   src/tests/reservation_tests.cpp d2ef159 
>   src/tests/scheduler_event_call_tests.cpp bd8920f 
>   src/tests/scheduler_http_api_tests.cpp 9eb1de7 
>   src/tests/slave_recovery_tests.cpp e2a78a0 
>   src/tests/slave_tests.cpp c7f5a70 
> 
> Diff: https://reviews.apache.org/r/43269/diff/
> 
> 
> Testing
> ---
> 
> In addition to all unit tests passing, we are currently using this 
> functionality in our environment with a custom consensus stack. In our world, 
> we have a C++ plugin that calls out to an HTTP REST service (implemented in 
> Java/Scala, not that it matters).
> 
> 
> Thanks,
> 
> Mark Cavage
> 
>



Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-19 Thread Joseph Wu


> On Feb. 18, 2016, 12:56 p.m., Joseph Wu wrote:
> > Can you split up this patch into the following groups?  (Its ok to run the 
> > tests at the end of a review chain, just add a note in the "Testing Done" 
> > section.)
> > 
> > * Interfaces for the new module.
> > * Modularization boilerplate (i.e. include/mesos/module/*, makefile 
> > changes, test modules, src/module/manager.cpp)
> > * The refactoring changes (i.e. src/master/contender.* 
> > src/master/detector.*)
> > * All the trivial header/namespace changes.
> > 
> > ---
> > 
> > A general question:
> > 
> > * Does it make sense to have a separate `Contender` and `Detector` module?  
> > Or just one `LeaderElection` module?  (One argument for separate modules is 
> > that the Mesos Agent only uses the `Detector`.)
> 
> Mark Cavage wrote:
> By different groups, do you mean go undo this commit and break it up into 
> new commits that does that set of things "step by step"? If so, why? This 
> whole change is essentially a glorified refactoring, so I don't see how that 
> would help anything.
> 
> As to the separate modules, I had considered making a single module, but 
> ultimately left it as-is since the slave doesn't use Contender, as you point 
> out. Additionally, "internally" the code was already factored to two 
> interfaces, and (1) I wanted to make the most surgical change I could, and 
> (2) I sort of assumed the code base was designed this way for a reason, so I 
> wouldn't go collapse it.

We generally break apart commits to make them easier to review.

In this case, we will probably want to take advantage of your refactor to 
revisit the interface; and make sure we don't have an interface that is too 
specific for our two implementations.  We might do this by sending out the 
patch (ideally with just the interface) out to the wider community.

---

It may also be good to add the modules-expert @karya to this review.


> On Feb. 18, 2016, 12:56 p.m., Joseph Wu wrote:
> > include/mesos/master/contender.hpp, lines 41-47
> > 
> >
> > For a module, specifying the "mechanism" here doesn't make much sense.  
> > It should expect the type of module (i.e. 
> > `"org_apache_mesos_TestContender"`).
> > 
> > Same for the Detector.
> > 
> > ---
> > 
> > To retain backwards compatibility with the master flag `--zk` and agent 
> > flag `--master`, it may be appropriate to pass both the module type and the 
> > mechanism as arguments.
> 
> Mark Cavage wrote:
> Ok, for now I renamed it to "type" and stripped out the comments in the 
> header. Note that this is backwards compatible with the existing codebase. My 
> thought was that the core process should continue to do what it does today, 
> and if those all fallthrough, then try to load a plugin. This should be the 
> least disruptive behavior (imo), and module authors don't need to worry about 
> anything else "legacy."

IMO, it is not preferable to conflate the "type" and "mechanism".

---

Some food for thought:

When someone goes to load a custom Contender/Detector module, they will have an 
entirely different way of specifying the "mechanism".

They would specify a new flag that tells the master which module to load, like 
`--master_contender="org_apache_mesos_ContenderThingy"`, and a module 
configuration flag `--modules=file:///path/to/modules.json`, which points to a 
file like:
```
{
  "libraries": [
{
  "file": "/path/to/module/lib/lib_leader_election.so",
  "modules": [
{
  "name": "org_apache_mesos_ContenderThingy",
  "parameters": [
{
  "key": "mechanism",
  "value": "zk://.../mesos"
}, {
  "key": "other_custom_module_parameters",
  "value": "foo"
}, ...
  ]
}
  ]
}
  ]
}
```
Notice that any configuration of said module now happens in the "parameters".  
The old `--zk` flag would essentially be a special override.


- Joseph


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/#review119715
---


On Feb. 19, 2016, 10:52 a.m., Mark Cavage wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43269/
> ---
> 
> (Updated Feb. 19, 2016, 10:52 a.m.)
> 
> 
> Review request for mesos and Benjamin Hindman.
> 
> 
> Bugs: MESOS-4610
> https://issues.apache.org/jira/browse/MESOS-4610
> 
> 
> Repository: mesos
> 
> 
> Description
> ---
> 
> MasterContender/MasterDetector loadable as modules.
> 
> 
> Diffs
> -
> 
>   include/mesos/master/contender.hpp PRE-CREATION 
>   include/mesos/master/detector.hpp 

Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-19 Thread Mark Cavage

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/
---

(Updated Feb. 19, 2016, 6:52 p.m.)


Review request for mesos and Benjamin Hindman.


Changes
---

Incorporating feedback from Joseph Wu, rebased off master again.


Bugs: MESOS-4610
https://issues.apache.org/jira/browse/MESOS-4610


Repository: mesos


Description
---

MasterContender/MasterDetector loadable as modules.


Diffs (updated)
-

  include/mesos/master/contender.hpp PRE-CREATION 
  include/mesos/master/detector.hpp PRE-CREATION 
  include/mesos/module/contender.hpp PRE-CREATION 
  include/mesos/module/detector.hpp PRE-CREATION 
  include/mesos/scheduler.hpp 14c7ff9 
  src/Makefile.am 27aec37 
  src/cli/resolve.cpp 257e290 
  src/examples/test_contender_module.cpp PRE-CREATION 
  src/examples/test_detector_module.cpp PRE-CREATION 
  src/local/local.cpp 359fc54 
  src/master/contender.hpp 3fd20f8 
  src/master/contender.cpp 9ad49ce 
  src/master/detector.hpp eb5d2a9 
  src/master/detector.cpp 9274435 
  src/master/main.cpp 4263110 
  src/master/master.hpp 2f2ad2a 
  src/master/master.cpp e1ca81d 
  src/module/manager.cpp 6ae9950 
  src/sched/sched.cpp 525255e 
  src/scheduler/scheduler.cpp 99a7d0d 
  src/slave/main.cpp e3a4d13 
  src/slave/slave.hpp ced835d 
  src/tests/authentication_tests.cpp 85f14c3 
  src/tests/cluster.hpp 99a785a 
  src/tests/cluster.cpp 084fb1c 
  src/tests/fault_tolerance_tests.cpp 982468f 
  src/tests/master_allocator_tests.cpp cba7c36 
  src/tests/master_authorization_tests.cpp 29c89fb 
  src/tests/master_contender_detector_tests.cpp 255ab81 
  src/tests/master_slave_reconciliation_tests.cpp d41178e 
  src/tests/master_tests.cpp 393a6f5f 
  src/tests/module.hpp 4b32f29 
  src/tests/module.cpp 8cc305c 
  src/tests/oversubscription_tests.cpp d4ae819 
  src/tests/partition_tests.cpp c5badbe 
  src/tests/persistent_volume_tests.cpp e169e1b 
  src/tests/reconciliation_tests.cpp 97112c4 
  src/tests/reservation_tests.cpp d2ef159 
  src/tests/scheduler_event_call_tests.cpp bd8920f 
  src/tests/scheduler_http_api_tests.cpp 9eb1de7 
  src/tests/slave_recovery_tests.cpp e2a78a0 
  src/tests/slave_tests.cpp c7f5a70 

Diff: https://reviews.apache.org/r/43269/diff/


Testing
---

In addition to all unit tests passing, we are currently using this 
functionality in our environment with a custom consensus stack. In our world, 
we have a C++ plugin that calls out to an HTTP REST service (implemented in 
Java/Scala, not that it matters).


Thanks,

Mark Cavage



Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-19 Thread Mark Cavage


> On Feb. 18, 2016, 8:56 p.m., Joseph Wu wrote:
> > Can you split up this patch into the following groups?  (Its ok to run the 
> > tests at the end of a review chain, just add a note in the "Testing Done" 
> > section.)
> > 
> > * Interfaces for the new module.
> > * Modularization boilerplate (i.e. include/mesos/module/*, makefile 
> > changes, test modules, src/module/manager.cpp)
> > * The refactoring changes (i.e. src/master/contender.* 
> > src/master/detector.*)
> > * All the trivial header/namespace changes.
> > 
> > ---
> > 
> > A general question:
> > 
> > * Does it make sense to have a separate `Contender` and `Detector` module?  
> > Or just one `LeaderElection` module?  (One argument for separate modules is 
> > that the Mesos Agent only uses the `Detector`.)

By different groups, do you mean go undo this commit and break it up into new 
commits that does that set of things "step by step"? If so, why? This whole 
change is essentially a glorified refactoring, so I don't see how that would 
help anything.

As to the separate modules, I had considered making a single module, but 
ultimately left it as-is since the slave doesn't use Contender, as you point 
out. Additionally, "internally" the code was already factored to two 
interfaces, and (1) I wanted to make the most surgical change I could, and (2) 
I sort of assumed the code base was designed this way for a reason, so I 
wouldn't go collapse it.


> On Feb. 18, 2016, 8:56 p.m., Joseph Wu wrote:
> > src/master/detector.cpp, lines 204-205
> > 
> >
> > Consider breaking apart the logic here into separate modules.
> > 
> > * The default behavior (no module specified, no ZK string) is to create 
> > a `StandaloneMasterDetector`.
> > * When the ZK string is specified, you should create a 
> > `ZooKeeperMasterDetector` with that ZK string.
> > * Otherwise, load the module.
> > 
> > ---
> > 
> > You may even want to consider breaking the Zookeeper logic into an 
> > actual module (which would be loaded by default when required).  This would 
> > serve as the "example" module that we usually provide when modularizing 
> > anything.

I had considered making the ZK detector it's own module, but again, erred on 
the side of minimally invasive code change that enabled people to write their 
own. As-is, the code basically acts exactly like it did before, with the caveat 
that if Standalone/ZK aren't specified, then now it falls through to new 
behavior, which is to load an external module.


> On Feb. 18, 2016, 8:56 p.m., Joseph Wu wrote:
> > include/mesos/master/contender.hpp, lines 41-47
> > 
> >
> > For a module, specifying the "mechanism" here doesn't make much sense.  
> > It should expect the type of module (i.e. 
> > `"org_apache_mesos_TestContender"`).
> > 
> > Same for the Detector.
> > 
> > ---
> > 
> > To retain backwards compatibility with the master flag `--zk` and agent 
> > flag `--master`, it may be appropriate to pass both the module type and the 
> > mechanism as arguments.

Ok, for now I renamed it to "type" and stripped out the comments in the header. 
Note that this is backwards compatible with the existing codebase. My thought 
was that the core process should continue to do what it does today, and if 
those all fallthrough, then try to load a plugin. This should be the least 
disruptive behavior (imo), and module authors don't need to worry about 
anything else "legacy."


- Mark


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/#review119715
---


On Feb. 18, 2016, 7:51 p.m., Mark Cavage wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43269/
> ---
> 
> (Updated Feb. 18, 2016, 7:51 p.m.)
> 
> 
> Review request for mesos and Benjamin Hindman.
> 
> 
> Bugs: MESOS-4610
> https://issues.apache.org/jira/browse/MESOS-4610
> 
> 
> Repository: mesos
> 
> 
> Description
> ---
> 
> MasterContender/MasterDetector loadable as modules.
> 
> 
> Diffs
> -
> 
>   include/mesos/master/contender.hpp PRE-CREATION 
>   include/mesos/master/detector.hpp PRE-CREATION 
>   include/mesos/module/contender.hpp PRE-CREATION 
>   include/mesos/module/detector.hpp PRE-CREATION 
>   include/mesos/scheduler.hpp 14c7ff9 
>   src/Makefile.am 54ebe91 
>   src/cli/resolve.cpp 257e290 
>   src/examples/test_contender_module.cpp PRE-CREATION 
>   src/examples/test_detector_module.cpp PRE-CREATION 
>   src/local/local.cpp 359fc54 
>   src/master/contender.hpp 3fd20f8 
>   src/master/contender.cpp 9ad49ce 
>   

Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-18 Thread Joseph Wu

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/#review119715
---



Can you split up this patch into the following groups?  (Its ok to run the 
tests at the end of a review chain, just add a note in the "Testing Done" 
section.)

* Interfaces for the new module.
* Modularization boilerplate (i.e. include/mesos/module/*, makefile changes, 
test modules, src/module/manager.cpp)
* The refactoring changes (i.e. src/master/contender.* src/master/detector.*)
* All the trivial header/namespace changes.

---

A general question:

* Does it make sense to have a separate `Contender` and `Detector` module?  Or 
just one `LeaderElection` module?  (One argument for separate modules is that 
the Mesos Agent only uses the `Detector`.)


include/mesos/master/contender.hpp (lines 41 - 47)


For a module, specifying the "mechanism" here doesn't make much sense.  It 
should expect the type of module (i.e. `"org_apache_mesos_TestContender"`).

Same for the Detector.

---

To retain backwards compatibility with the master flag `--zk` and agent 
flag `--master`, it may be appropriate to pass both the module type and the 
mechanism as arguments.



include/mesos/master/contender.hpp (line 69)


Nit: s/> >/>>/



include/mesos/master/detector.hpp (line 60)


Nit: s/> >/>>/



src/master/detector.cpp (lines 204 - 205)


Consider breaking apart the logic here into separate modules.

* The default behavior (no module specified, no ZK string) is to create a 
`StandaloneMasterDetector`.
* When the ZK string is specified, you should create a 
`ZooKeeperMasterDetector` with that ZK string.
* Otherwise, load the module.

---

You may even want to consider breaking the Zookeeper logic into an actual 
module (which would be loaded by default when required).  This would serve as 
the "example" module that we usually provide when modularizing anything.


- Joseph Wu


On Feb. 18, 2016, 11:51 a.m., Mark Cavage wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43269/
> ---
> 
> (Updated Feb. 18, 2016, 11:51 a.m.)
> 
> 
> Review request for mesos and Benjamin Hindman.
> 
> 
> Bugs: MESOS-4610
> https://issues.apache.org/jira/browse/MESOS-4610
> 
> 
> Repository: mesos
> 
> 
> Description
> ---
> 
> MasterContender/MasterDetector loadable as modules.
> 
> 
> Diffs
> -
> 
>   include/mesos/master/contender.hpp PRE-CREATION 
>   include/mesos/master/detector.hpp PRE-CREATION 
>   include/mesos/module/contender.hpp PRE-CREATION 
>   include/mesos/module/detector.hpp PRE-CREATION 
>   include/mesos/scheduler.hpp 14c7ff9 
>   src/Makefile.am 54ebe91 
>   src/cli/resolve.cpp 257e290 
>   src/examples/test_contender_module.cpp PRE-CREATION 
>   src/examples/test_detector_module.cpp PRE-CREATION 
>   src/local/local.cpp 359fc54 
>   src/master/contender.hpp 3fd20f8 
>   src/master/contender.cpp 9ad49ce 
>   src/master/detector.hpp eb5d2a9 
>   src/master/detector.cpp 9274435 
>   src/master/main.cpp 4263110 
>   src/master/master.hpp 2f2ad2a 
>   src/master/master.cpp e1ca81d 
>   src/module/manager.cpp 6ae9950 
>   src/sched/sched.cpp 525255e 
>   src/scheduler/scheduler.cpp 99a7d0d 
>   src/slave/main.cpp e3a4d13 
>   src/slave/slave.hpp ced835d 
>   src/tests/authentication_tests.cpp 85f14c3 
>   src/tests/cluster.hpp 99a785a 
>   src/tests/cluster.cpp 084fb1c 
>   src/tests/fault_tolerance_tests.cpp 982468f 
>   src/tests/master_allocator_tests.cpp cba7c36 
>   src/tests/master_authorization_tests.cpp 29c89fb 
>   src/tests/master_contender_detector_tests.cpp 255ab81 
>   src/tests/master_slave_reconciliation_tests.cpp d41178e 
>   src/tests/master_tests.cpp 393a6f5f 
>   src/tests/module.hpp 4b32f29 
>   src/tests/module.cpp 8cc305c 
>   src/tests/oversubscription_tests.cpp d4ae819 
>   src/tests/partition_tests.cpp c5badbe 
>   src/tests/persistent_volume_tests.cpp e169e1b 
>   src/tests/reconciliation_tests.cpp 97112c4 
>   src/tests/reservation_tests.cpp d2ef159 
>   src/tests/scheduler_event_call_tests.cpp bd8920f 
>   src/tests/scheduler_http_api_tests.cpp 9eb1de7 
>   src/tests/slave_recovery_tests.cpp e2a78a0 
>   src/tests/slave_tests.cpp c7f5a70 
> 
> Diff: https://reviews.apache.org/r/43269/diff/
> 
> 
> Testing
> ---
> 
> In addition to all unit tests passing, we are currently using this 
> functionality in our environment with a custom consensus stack. In our world, 
> we have a C++ plugin that calls out to an HTTP REST 

Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-18 Thread Mark Cavage

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/
---

(Updated Feb. 18, 2016, 7:51 p.m.)


Review request for mesos and Benjamin Hindman.


Changes
---

Apparently patch needed to be rebased, again, as reviewbot didn't like it. This 
all builds fine locally.


Bugs: MESOS-4610
https://issues.apache.org/jira/browse/MESOS-4610


Repository: mesos


Description
---

MasterContender/MasterDetector loadable as modules.


Diffs (updated)
-

  include/mesos/master/contender.hpp PRE-CREATION 
  include/mesos/master/detector.hpp PRE-CREATION 
  include/mesos/module/contender.hpp PRE-CREATION 
  include/mesos/module/detector.hpp PRE-CREATION 
  include/mesos/scheduler.hpp 14c7ff9 
  src/Makefile.am 54ebe91 
  src/cli/resolve.cpp 257e290 
  src/examples/test_contender_module.cpp PRE-CREATION 
  src/examples/test_detector_module.cpp PRE-CREATION 
  src/local/local.cpp 359fc54 
  src/master/contender.hpp 3fd20f8 
  src/master/contender.cpp 9ad49ce 
  src/master/detector.hpp eb5d2a9 
  src/master/detector.cpp 9274435 
  src/master/main.cpp 4263110 
  src/master/master.hpp 2f2ad2a 
  src/master/master.cpp e1ca81d 
  src/module/manager.cpp 6ae9950 
  src/sched/sched.cpp 525255e 
  src/scheduler/scheduler.cpp 99a7d0d 
  src/slave/main.cpp e3a4d13 
  src/slave/slave.hpp ced835d 
  src/tests/authentication_tests.cpp 85f14c3 
  src/tests/cluster.hpp 99a785a 
  src/tests/cluster.cpp 084fb1c 
  src/tests/fault_tolerance_tests.cpp 982468f 
  src/tests/master_allocator_tests.cpp cba7c36 
  src/tests/master_authorization_tests.cpp 29c89fb 
  src/tests/master_contender_detector_tests.cpp 255ab81 
  src/tests/master_slave_reconciliation_tests.cpp d41178e 
  src/tests/master_tests.cpp 393a6f5f 
  src/tests/module.hpp 4b32f29 
  src/tests/module.cpp 8cc305c 
  src/tests/oversubscription_tests.cpp d4ae819 
  src/tests/partition_tests.cpp c5badbe 
  src/tests/persistent_volume_tests.cpp e169e1b 
  src/tests/reconciliation_tests.cpp 97112c4 
  src/tests/reservation_tests.cpp d2ef159 
  src/tests/scheduler_event_call_tests.cpp bd8920f 
  src/tests/scheduler_http_api_tests.cpp 9eb1de7 
  src/tests/slave_recovery_tests.cpp e2a78a0 
  src/tests/slave_tests.cpp c7f5a70 

Diff: https://reviews.apache.org/r/43269/diff/


Testing
---

In addition to all unit tests passing, we are currently using this 
functionality in our environment with a custom consensus stack. In our world, 
we have a C++ plugin that calls out to an HTTP REST service (implemented in 
Java/Scala, not that it matters).


Thanks,

Mark Cavage



Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-17 Thread Mark Cavage

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/
---

(Updated Feb. 17, 2016, 10:10 p.m.)


Review request for mesos and Benjamin Hindman.


Changes
---

Once more, with rebasing...


Bugs: MESOS-4610
https://issues.apache.org/jira/browse/MESOS-4610


Repository: mesos


Description
---

MasterContender/MasterDetector loadable as modules.


Diffs (updated)
-

  include/mesos/master/contender.hpp PRE-CREATION 
  include/mesos/master/detector.hpp PRE-CREATION 
  include/mesos/module/contender.hpp PRE-CREATION 
  include/mesos/module/detector.hpp PRE-CREATION 
  include/mesos/scheduler.hpp 14c7ff964aa7b94f439d16e605380661d2279d54 
  src/Makefile.am 54ebe91643a17017c00cdbd5dfc8ce1a021579d5 
  src/cli/resolve.cpp 257e29034abf32491511f9a4e476b6859714829d 
  src/examples/test_contender_module.cpp PRE-CREATION 
  src/examples/test_detector_module.cpp PRE-CREATION 
  src/local/local.cpp 359fc54d7c4081f536a8de8b1dfcde413d75c9a9 
  src/master/contender.hpp 3fd20f8e94daab349b76d8f5ecc87398a187a847 
  src/master/contender.cpp 9ad49ce10439fb41d78d52eaa4c1e6b9c5c7f735 
  src/master/detector.hpp eb5d2a90b60c629150ddf04acf00f0edca1ca723 
  src/master/detector.cpp 9274435802d6292b183be48f42b43999476e016e 
  src/master/main.cpp 4263110c9b889984ef74eb94fed629958f2abd79 
  src/master/master.hpp 2f2ad2ada508e1923bf995ab124367a3b082b572 
  src/master/master.cpp e1ca81dab85a7ab1391eca0d6bd995548bf79c22 
  src/module/manager.cpp 6ae99504005581b22a44768949b1d305cec517d9 
  src/sched/sched.cpp 525255eec808c3fe5c0e38b3d1a2086bbd4eb171 
  src/scheduler/scheduler.cpp 99a7d0dfff7b0c61decc9ff6d9e6d46ef13a7e75 
  src/slave/main.cpp e3a4d13ddaeb89ba01c9b2ddfc72c37934f753eb 
  src/slave/slave.hpp ced835dec797bcc5640422468487a4289a737e38 
  src/tests/authentication_tests.cpp 85f14c3d453ca5aeffa1c915f38fe3031c2cf712 
  src/tests/cluster.hpp 99a785ab0d4ee1a1e745202d2551de58a7631a85 
  src/tests/cluster.cpp 084fb1ce37a315c561c4587c4761c870f54c8625 
  src/tests/fault_tolerance_tests.cpp 982468f851cd9d95eb6cde7c57f2d737d46a827c 
  src/tests/master_allocator_tests.cpp cba7c36471f93b678d94e1da0251a28a893696b1 
  src/tests/master_authorization_tests.cpp 
29c89fb11da792c3e71eb880a19657ea225b3cc8 
  src/tests/master_contender_detector_tests.cpp 
255ab8119a04b55bb4f1b61dee19c4be64499376 
  src/tests/master_slave_reconciliation_tests.cpp 
d41178eb41df519073fc0890c5716bbc9fed6ad2 
  src/tests/master_tests.cpp 393a6f5fe3744d6ba743f362b7e309d1ee75a303 
  src/tests/module.hpp 4b32f29f2ce76100433621a5cb6b8cc87c9b38f8 
  src/tests/module.cpp 8cc305c0ef606b07eea39d548d3165a2bb2b042a 
  src/tests/oversubscription_tests.cpp d4ae81972fd218c58a413d1968a4e9acbee52fd3 
  src/tests/partition_tests.cpp c5badbe90e302793bfbf3f16373efe241decb7d5 
  src/tests/persistent_volume_tests.cpp 
e169e1b141a38dc389eefd42c11a078c413123d5 
  src/tests/reconciliation_tests.cpp 97112c4d64c75a16fdd7bbefd517a039fbf55b64 
  src/tests/reservation_tests.cpp d2ef15934556cb879f31850d52712aec77231fc7 
  src/tests/scheduler_event_call_tests.cpp 
bd8920fa9d5475e5f6533c8424ebff1588bfe645 
  src/tests/scheduler_http_api_tests.cpp 
9eb1de7d9541395b92b951f0fe0ddbb2f219fe30 
  src/tests/slave_recovery_tests.cpp e2a78a0f55b7657057ee351a747caff51024fd67 
  src/tests/slave_tests.cpp c7f5a701eff2c2f9aa3df5722583a131bf2c072a 

Diff: https://reviews.apache.org/r/43269/diff/


Testing
---

In addition to all unit tests passing, we are currently using this 
functionality in our environment with a custom consensus stack. In our world, 
we have a C++ plugin that calls out to an HTTP REST service (implemented in 
Java/Scala, not that it matters).


Thanks,

Mark Cavage



Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-17 Thread Mark Cavage


> On Feb. 15, 2016, 6:25 p.m., Benjamin Hindman wrote:
> > src/master/contender.cpp, line 80
> > 
> >
> > Why the removal of the `Option`? Conveying the information via an empty 
> > string is far less explicit and not our preferred approach in the code 
> > base. Can you elaborate?

I thought it best to make the interface an "outside" consumer not depend on the 
stout package, but I didn't realize those headers are all shipped with mesos 
anyway, and there's precedence. Changed back to using `Option`.


- Mark


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/#review119232
---


On Feb. 17, 2016, 4:56 p.m., Mark Cavage wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43269/
> ---
> 
> (Updated Feb. 17, 2016, 4:56 p.m.)
> 
> 
> Review request for mesos and Benjamin Hindman.
> 
> 
> Bugs: MESOS-4610
> https://issues.apache.org/jira/browse/MESOS-4610
> 
> 
> Repository: mesos
> 
> 
> Description
> ---
> 
> MasterContender/MasterDetector loadable as modules.
> 
> 
> Diffs
> -
> 
>   include/mesos/master/contender.hpp PRE-CREATION 
>   include/mesos/master/detector.hpp PRE-CREATION 
>   include/mesos/module/contender.hpp PRE-CREATION 
>   include/mesos/module/detector.hpp PRE-CREATION 
>   include/mesos/scheduler.hpp 14c7ff964aa7b94f439d16e605380661d2279d54 
>   src/Makefile.am 22f51319a1c06da02cac5822d42315e3027cf500 
>   src/cli/resolve.cpp 257e29034abf32491511f9a4e476b6859714829d 
>   src/examples/test_contender_module.cpp PRE-CREATION 
>   src/examples/test_detector_module.cpp PRE-CREATION 
>   src/local/local.cpp 359fc54d7c4081f536a8de8b1dfcde413d75c9a9 
>   src/master/contender.hpp 3fd20f8e94daab349b76d8f5ecc87398a187a847 
>   src/master/contender.cpp 9ad49ce10439fb41d78d52eaa4c1e6b9c5c7f735 
>   src/master/detector.hpp eb5d2a90b60c629150ddf04acf00f0edca1ca723 
>   src/master/detector.cpp 9274435802d6292b183be48f42b43999476e016e 
>   src/master/main.cpp 4263110c9b889984ef74eb94fed629958f2abd79 
>   src/master/master.hpp 3a7e18232323a1c051bcc97915484b1195fffe58 
>   src/master/master.cpp e1ca81dab85a7ab1391eca0d6bd995548bf79c22 
>   src/module/manager.cpp 6ae99504005581b22a44768949b1d305cec517d9 
>   src/sched/sched.cpp 525255eec808c3fe5c0e38b3d1a2086bbd4eb171 
>   src/scheduler/scheduler.cpp 99a7d0dfff7b0c61decc9ff6d9e6d46ef13a7e75 
>   src/slave/main.cpp 22b833044dc3f900e3b5ea509e6e545148649f48 
>   src/slave/slave.hpp a3830ff460a6f6c5661fb8a0172fae303b245889 
>   src/tests/authentication_tests.cpp 85f14c3d453ca5aeffa1c915f38fe3031c2cf712 
>   src/tests/cluster.hpp 99a785ab0d4ee1a1e745202d2551de58a7631a85 
>   src/tests/cluster.cpp 084fb1ce37a315c561c4587c4761c870f54c8625 
>   src/tests/fault_tolerance_tests.cpp 
> 982468f851cd9d95eb6cde7c57f2d737d46a827c 
>   src/tests/master_allocator_tests.cpp 
> cba7c36471f93b678d94e1da0251a28a893696b1 
>   src/tests/master_authorization_tests.cpp 
> 29c89fb11da792c3e71eb880a19657ea225b3cc8 
>   src/tests/master_contender_detector_tests.cpp 
> 6375586c31b1fd406529bf299dad6e321b945de8 
>   src/tests/master_slave_reconciliation_tests.cpp 
> d41178eb41df519073fc0890c5716bbc9fed6ad2 
>   src/tests/master_tests.cpp 0357b1c259472213181a65e5adbe6d5caa1698ad 
>   src/tests/module.hpp 4b32f29f2ce76100433621a5cb6b8cc87c9b38f8 
>   src/tests/module.cpp 246f3a402d4fe3b273c459f6e02c009f3de65f3e 
>   src/tests/oversubscription_tests.cpp 
> c857c2bd5135d0e30edfe6f5e856fe6641b8dcfb 
>   src/tests/partition_tests.cpp c5badbe90e302793bfbf3f16373efe241decb7d5 
>   src/tests/persistent_volume_tests.cpp 
> cbf2bcedd5b4c14107d3b50a74f161aa9395d7d0 
>   src/tests/reconciliation_tests.cpp 1cbc3230d003a84277b91da6470828ebf73ef897 
>   src/tests/reservation_tests.cpp d2ef15934556cb879f31850d52712aec77231fc7 
>   src/tests/scheduler_event_call_tests.cpp 
> bd8920fa9d5475e5f6533c8424ebff1588bfe645 
>   src/tests/scheduler_http_api_tests.cpp 
> 9eb1de7d9541395b92b951f0fe0ddbb2f219fe30 
>   src/tests/slave_recovery_tests.cpp bccdf37ced5de8e759c6abb91337e7bfecc77b77 
>   src/tests/slave_tests.cpp b2b1fd4be933512c3dffa8c1c579b59782a37d77 
> 
> Diff: https://reviews.apache.org/r/43269/diff/
> 
> 
> Testing
> ---
> 
> In addition to all unit tests passing, we are currently using this 
> functionality in our environment with a custom consensus stack. In our world, 
> we have a C++ plugin that calls out to an HTTP REST service (implemented in 
> Java/Scala, not that it matters).
> 
> 
> Thanks,
> 
> Mark Cavage
> 
>



Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-17 Thread Mark Cavage

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/
---

(Updated Feb. 17, 2016, 4:56 p.m.)


Review request for mesos and Benjamin Hindman.


Changes
---

All feedback incorporated


Bugs: MESOS-4610
https://issues.apache.org/jira/browse/MESOS-4610


Repository: mesos


Description (updated)
---

MasterContender/MasterDetector loadable as modules.


Diffs (updated)
-

  include/mesos/master/contender.hpp PRE-CREATION 
  include/mesos/master/detector.hpp PRE-CREATION 
  include/mesos/module/contender.hpp PRE-CREATION 
  include/mesos/module/detector.hpp PRE-CREATION 
  include/mesos/scheduler.hpp 14c7ff964aa7b94f439d16e605380661d2279d54 
  src/Makefile.am 22f51319a1c06da02cac5822d42315e3027cf500 
  src/cli/resolve.cpp 257e29034abf32491511f9a4e476b6859714829d 
  src/examples/test_contender_module.cpp PRE-CREATION 
  src/examples/test_detector_module.cpp PRE-CREATION 
  src/local/local.cpp 359fc54d7c4081f536a8de8b1dfcde413d75c9a9 
  src/master/contender.hpp 3fd20f8e94daab349b76d8f5ecc87398a187a847 
  src/master/contender.cpp 9ad49ce10439fb41d78d52eaa4c1e6b9c5c7f735 
  src/master/detector.hpp eb5d2a90b60c629150ddf04acf00f0edca1ca723 
  src/master/detector.cpp 9274435802d6292b183be48f42b43999476e016e 
  src/master/main.cpp 4263110c9b889984ef74eb94fed629958f2abd79 
  src/master/master.hpp 3a7e18232323a1c051bcc97915484b1195fffe58 
  src/master/master.cpp e1ca81dab85a7ab1391eca0d6bd995548bf79c22 
  src/module/manager.cpp 6ae99504005581b22a44768949b1d305cec517d9 
  src/sched/sched.cpp 525255eec808c3fe5c0e38b3d1a2086bbd4eb171 
  src/scheduler/scheduler.cpp 99a7d0dfff7b0c61decc9ff6d9e6d46ef13a7e75 
  src/slave/main.cpp 22b833044dc3f900e3b5ea509e6e545148649f48 
  src/slave/slave.hpp a3830ff460a6f6c5661fb8a0172fae303b245889 
  src/tests/authentication_tests.cpp 85f14c3d453ca5aeffa1c915f38fe3031c2cf712 
  src/tests/cluster.hpp 99a785ab0d4ee1a1e745202d2551de58a7631a85 
  src/tests/cluster.cpp 084fb1ce37a315c561c4587c4761c870f54c8625 
  src/tests/fault_tolerance_tests.cpp 982468f851cd9d95eb6cde7c57f2d737d46a827c 
  src/tests/master_allocator_tests.cpp cba7c36471f93b678d94e1da0251a28a893696b1 
  src/tests/master_authorization_tests.cpp 
29c89fb11da792c3e71eb880a19657ea225b3cc8 
  src/tests/master_contender_detector_tests.cpp 
6375586c31b1fd406529bf299dad6e321b945de8 
  src/tests/master_slave_reconciliation_tests.cpp 
d41178eb41df519073fc0890c5716bbc9fed6ad2 
  src/tests/master_tests.cpp 0357b1c259472213181a65e5adbe6d5caa1698ad 
  src/tests/module.hpp 4b32f29f2ce76100433621a5cb6b8cc87c9b38f8 
  src/tests/module.cpp 246f3a402d4fe3b273c459f6e02c009f3de65f3e 
  src/tests/oversubscription_tests.cpp c857c2bd5135d0e30edfe6f5e856fe6641b8dcfb 
  src/tests/partition_tests.cpp c5badbe90e302793bfbf3f16373efe241decb7d5 
  src/tests/persistent_volume_tests.cpp 
cbf2bcedd5b4c14107d3b50a74f161aa9395d7d0 
  src/tests/reconciliation_tests.cpp 1cbc3230d003a84277b91da6470828ebf73ef897 
  src/tests/reservation_tests.cpp d2ef15934556cb879f31850d52712aec77231fc7 
  src/tests/scheduler_event_call_tests.cpp 
bd8920fa9d5475e5f6533c8424ebff1588bfe645 
  src/tests/scheduler_http_api_tests.cpp 
9eb1de7d9541395b92b951f0fe0ddbb2f219fe30 
  src/tests/slave_recovery_tests.cpp bccdf37ced5de8e759c6abb91337e7bfecc77b77 
  src/tests/slave_tests.cpp b2b1fd4be933512c3dffa8c1c579b59782a37d77 

Diff: https://reviews.apache.org/r/43269/diff/


Testing
---

In addition to all unit tests passing, we are currently using this 
functionality in our environment with a custom consensus stack. In our world, 
we have a C++ plugin that calls out to an HTTP REST service (implemented in 
Java/Scala, not that it matters).


Thanks,

Mark Cavage



Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-15 Thread Benjamin Hindman

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/#review119232
---




include/mesos/master/contender.hpp (lines 17 - 18)


Let's use the `MESOS` prefix like in include/master/allocator.hpp please. 
Please also do this in detector.hpp, thanks!



include/mesos/scheduler.hpp (line 46)


We don't indent here, my guess is your editor did this automagically but 
you can just copy this up without the indentation please.



src/examples/test_contender_module.cpp (line 50)


We try and embed single use functions as lambdas here, you can just replace 
`createTestContender` with:

```
[](const Parameters& parameters) {
  return new StandaloneMasterContender();
}
```

Same for the test detector module too please.



src/master/contender.cpp (line 80)


Why the removal of the `Option`? Conveying the information via an empty 
string is far less explicit and not our preferred approach in the code base. 
Can you elaborate?



src/tests/module.cpp (line 303)


We try and wrap one per line for these (even if you've seen some older code 
in the code base that doesn't do that):

```
addModule(
library,
TestContender,
"org_apache_mesos_TestContender");
```

Below as well, thanks!


- Benjamin Hindman


On Feb. 15, 2016, 6:06 p.m., Mark Cavage wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43269/
> ---
> 
> (Updated Feb. 15, 2016, 6:06 p.m.)
> 
> 
> Review request for mesos and Benjamin Hindman.
> 
> 
> Bugs: MESOS-4610
> https://issues.apache.org/jira/browse/MESOS-4610
> 
> 
> Repository: mesos
> 
> 
> Description
> ---
> 
> MasterContender/MasterDetector loadable as modules.
> 
> There is a large set of changes here, mostly due to a namespace rename. The 
> previous version had the MasterContender/Detector APIs under an internal 
> namespace, which didn't seem appropriate for an external contract. So the 
> actual code changes that were impactful are relatively surgical, with then a 
> wide ranging downstream cleanup to make the existing code base reference the 
> new location.
> 
> 
> Diffs
> -
> 
>   include/mesos/master/contender.hpp PRE-CREATION 
>   include/mesos/master/detector.hpp PRE-CREATION 
>   include/mesos/module/contender.hpp PRE-CREATION 
>   include/mesos/module/detector.hpp PRE-CREATION 
>   include/mesos/scheduler.hpp 14c7ff964aa7b94f439d16e605380661d2279d54 
>   src/Makefile.am 22f51319a1c06da02cac5822d42315e3027cf500 
>   src/cli/resolve.cpp 257e29034abf32491511f9a4e476b6859714829d 
>   src/examples/test_contender_module.cpp PRE-CREATION 
>   src/examples/test_detector_module.cpp PRE-CREATION 
>   src/local/local.cpp 359fc54d7c4081f536a8de8b1dfcde413d75c9a9 
>   src/master/contender.hpp 3fd20f8e94daab349b76d8f5ecc87398a187a847 
>   src/master/contender.cpp 9ad49ce10439fb41d78d52eaa4c1e6b9c5c7f735 
>   src/master/detector.hpp eb5d2a90b60c629150ddf04acf00f0edca1ca723 
>   src/master/detector.cpp 9274435802d6292b183be48f42b43999476e016e 
>   src/master/main.cpp 4263110c9b889984ef74eb94fed629958f2abd79 
>   src/master/master.hpp 3a7e18232323a1c051bcc97915484b1195fffe58 
>   src/master/master.cpp e1ca81dab85a7ab1391eca0d6bd995548bf79c22 
>   src/module/manager.cpp 6ae99504005581b22a44768949b1d305cec517d9 
>   src/sched/sched.cpp 525255eec808c3fe5c0e38b3d1a2086bbd4eb171 
>   src/scheduler/scheduler.cpp 99a7d0dfff7b0c61decc9ff6d9e6d46ef13a7e75 
>   src/slave/slave.hpp a3830ff460a6f6c5661fb8a0172fae303b245889 
>   src/tests/authentication_tests.cpp 85f14c3d453ca5aeffa1c915f38fe3031c2cf712 
>   src/tests/cluster.hpp 99a785ab0d4ee1a1e745202d2551de58a7631a85 
>   src/tests/cluster.cpp 084fb1ce37a315c561c4587c4761c870f54c8625 
>   src/tests/fault_tolerance_tests.cpp 
> 982468f851cd9d95eb6cde7c57f2d737d46a827c 
>   src/tests/master_allocator_tests.cpp 
> cba7c36471f93b678d94e1da0251a28a893696b1 
>   src/tests/master_authorization_tests.cpp 
> 29c89fb11da792c3e71eb880a19657ea225b3cc8 
>   src/tests/master_contender_detector_tests.cpp 
> 6375586c31b1fd406529bf299dad6e321b945de8 
>   src/tests/master_slave_reconciliation_tests.cpp 
> d41178eb41df519073fc0890c5716bbc9fed6ad2 
>   src/tests/master_tests.cpp 0357b1c259472213181a65e5adbe6d5caa1698ad 
>   src/tests/module.hpp 4b32f29f2ce76100433621a5cb6b8cc87c9b38f8 
>   src/tests/module.cpp 246f3a402d4fe3b273c459f6e02c009f3de65f3e 
>   src/tests/oversubscription_tests.cpp 
> 

Re: Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-06 Thread Mesos ReviewBot

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/#review118154
---



Bad review!

Reviews applied: []

Error:
No reviewers specified. Please find a reviewer by asking on JIRA or the mailing 
list.

- Mesos ReviewBot


On Feb. 6, 2016, 12:20 a.m., Mark Cavage wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43269/
> ---
> 
> (Updated Feb. 6, 2016, 12:20 a.m.)
> 
> 
> Review request for mesos.
> 
> 
> Bugs: MESOS-4610
> https://issues.apache.org/jira/browse/MESOS-4610
> 
> 
> Repository: mesos
> 
> 
> Description
> ---
> 
> MasterContender/MasterDetector loadable as modules.
> 
> There is a large set of changes here, mostly due to a namespace rename. The 
> previous version had the MasterContender/Detector APIs under an internal 
> namespace, which didn't seem appropriate for an external contract. So the 
> actual code changes that were impactful are relatively surgical, with then a 
> wide ranging downstream cleanup to make the existing code base reference the 
> new location.
> 
> 
> Diffs
> -
> 
>   include/mesos/master/contender.hpp PRE-CREATION 
>   include/mesos/master/detector.hpp PRE-CREATION 
>   include/mesos/module/contender.hpp PRE-CREATION 
>   include/mesos/module/detector.hpp PRE-CREATION 
>   include/mesos/scheduler.hpp 14c7ff964aa7b94f439d16e605380661d2279d54 
>   src/Makefile.am 22f51319a1c06da02cac5822d42315e3027cf500 
>   src/cli/resolve.cpp 257e29034abf32491511f9a4e476b6859714829d 
>   src/examples/test_contender_module.cpp PRE-CREATION 
>   src/examples/test_detector_module.cpp PRE-CREATION 
>   src/local/local.cpp 359fc54d7c4081f536a8de8b1dfcde413d75c9a9 
>   src/master/contender.hpp 3fd20f8e94daab349b76d8f5ecc87398a187a847 
>   src/master/contender.cpp 9ad49ce10439fb41d78d52eaa4c1e6b9c5c7f735 
>   src/master/detector.hpp eb5d2a90b60c629150ddf04acf00f0edca1ca723 
>   src/master/detector.cpp 9274435802d6292b183be48f42b43999476e016e 
>   src/master/main.cpp 4263110c9b889984ef74eb94fed629958f2abd79 
>   src/master/master.hpp 3a7e18232323a1c051bcc97915484b1195fffe58 
>   src/master/master.cpp e1ca81dab85a7ab1391eca0d6bd995548bf79c22 
>   src/module/manager.cpp 6ae99504005581b22a44768949b1d305cec517d9 
>   src/sched/sched.cpp 525255eec808c3fe5c0e38b3d1a2086bbd4eb171 
>   src/scheduler/scheduler.cpp 99a7d0dfff7b0c61decc9ff6d9e6d46ef13a7e75 
>   src/slave/slave.hpp a3830ff460a6f6c5661fb8a0172fae303b245889 
>   src/tests/authentication_tests.cpp 85f14c3d453ca5aeffa1c915f38fe3031c2cf712 
>   src/tests/cluster.hpp 99a785ab0d4ee1a1e745202d2551de58a7631a85 
>   src/tests/cluster.cpp 084fb1ce37a315c561c4587c4761c870f54c8625 
>   src/tests/fault_tolerance_tests.cpp 
> 982468f851cd9d95eb6cde7c57f2d737d46a827c 
>   src/tests/master_allocator_tests.cpp 
> cba7c36471f93b678d94e1da0251a28a893696b1 
>   src/tests/master_authorization_tests.cpp 
> 29c89fb11da792c3e71eb880a19657ea225b3cc8 
>   src/tests/master_contender_detector_tests.cpp 
> 6375586c31b1fd406529bf299dad6e321b945de8 
>   src/tests/master_slave_reconciliation_tests.cpp 
> d41178eb41df519073fc0890c5716bbc9fed6ad2 
>   src/tests/master_tests.cpp 0357b1c259472213181a65e5adbe6d5caa1698ad 
>   src/tests/module.hpp 4b32f29f2ce76100433621a5cb6b8cc87c9b38f8 
>   src/tests/module.cpp 246f3a402d4fe3b273c459f6e02c009f3de65f3e 
>   src/tests/oversubscription_tests.cpp 
> c857c2bd5135d0e30edfe6f5e856fe6641b8dcfb 
>   src/tests/partition_tests.cpp c5badbe90e302793bfbf3f16373efe241decb7d5 
>   src/tests/persistent_volume_tests.cpp 
> cbf2bcedd5b4c14107d3b50a74f161aa9395d7d0 
>   src/tests/reconciliation_tests.cpp 1cbc3230d003a84277b91da6470828ebf73ef897 
>   src/tests/reservation_tests.cpp d2ef15934556cb879f31850d52712aec77231fc7 
>   src/tests/scheduler_event_call_tests.cpp 
> bd8920fa9d5475e5f6533c8424ebff1588bfe645 
>   src/tests/scheduler_http_api_tests.cpp 
> 9eb1de7d9541395b92b951f0fe0ddbb2f219fe30 
>   src/tests/slave_recovery_tests.cpp bccdf37ced5de8e759c6abb91337e7bfecc77b77 
>   src/tests/slave_tests.cpp b2b1fd4be933512c3dffa8c1c579b59782a37d77 
> 
> Diff: https://reviews.apache.org/r/43269/diff/
> 
> 
> Testing
> ---
> 
> In addition to all unit tests passing, we are currently using this 
> functionality in our environment with a custom consensus stack. In our world, 
> we have a C++ plugin that calls out to an HTTP REST service (implemented in 
> Java/Scala, not that it matters).
> 
> 
> Thanks,
> 
> Mark Cavage
> 
>



Review Request 43269: MasterContender/MasterDetector loadable as modules.

2016-02-05 Thread Mark Cavage

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43269/
---

Review request for mesos.


Bugs: MESOS-4610
https://issues.apache.org/jira/browse/MESOS-4610


Repository: mesos


Description
---

MasterContender/MasterDetector loadable as modules.

There is a large set of changes here, mostly due to a namespace rename. The 
previous version had the MasterContender/Detector APIs under an internal 
namespace, which didn't seem appropriate for an external contract. So the 
actual code changes that were impactful are relatively surgical, with then a 
wide ranging downstream cleanup to make the existing code base reference the 
new location.


Diffs
-

  include/mesos/master/contender.hpp PRE-CREATION 
  include/mesos/master/detector.hpp PRE-CREATION 
  include/mesos/module/contender.hpp PRE-CREATION 
  include/mesos/module/detector.hpp PRE-CREATION 
  include/mesos/scheduler.hpp 14c7ff964aa7b94f439d16e605380661d2279d54 
  src/Makefile.am 22f51319a1c06da02cac5822d42315e3027cf500 
  src/cli/resolve.cpp 257e29034abf32491511f9a4e476b6859714829d 
  src/examples/test_contender_module.cpp PRE-CREATION 
  src/examples/test_detector_module.cpp PRE-CREATION 
  src/local/local.cpp 359fc54d7c4081f536a8de8b1dfcde413d75c9a9 
  src/master/contender.hpp 3fd20f8e94daab349b76d8f5ecc87398a187a847 
  src/master/contender.cpp 9ad49ce10439fb41d78d52eaa4c1e6b9c5c7f735 
  src/master/detector.hpp eb5d2a90b60c629150ddf04acf00f0edca1ca723 
  src/master/detector.cpp 9274435802d6292b183be48f42b43999476e016e 
  src/master/main.cpp 4263110c9b889984ef74eb94fed629958f2abd79 
  src/master/master.hpp 3a7e18232323a1c051bcc97915484b1195fffe58 
  src/master/master.cpp e1ca81dab85a7ab1391eca0d6bd995548bf79c22 
  src/module/manager.cpp 6ae99504005581b22a44768949b1d305cec517d9 
  src/sched/sched.cpp 525255eec808c3fe5c0e38b3d1a2086bbd4eb171 
  src/scheduler/scheduler.cpp 99a7d0dfff7b0c61decc9ff6d9e6d46ef13a7e75 
  src/slave/slave.hpp a3830ff460a6f6c5661fb8a0172fae303b245889 
  src/tests/authentication_tests.cpp 85f14c3d453ca5aeffa1c915f38fe3031c2cf712 
  src/tests/cluster.hpp 99a785ab0d4ee1a1e745202d2551de58a7631a85 
  src/tests/cluster.cpp 084fb1ce37a315c561c4587c4761c870f54c8625 
  src/tests/fault_tolerance_tests.cpp 982468f851cd9d95eb6cde7c57f2d737d46a827c 
  src/tests/master_allocator_tests.cpp cba7c36471f93b678d94e1da0251a28a893696b1 
  src/tests/master_authorization_tests.cpp 
29c89fb11da792c3e71eb880a19657ea225b3cc8 
  src/tests/master_contender_detector_tests.cpp 
6375586c31b1fd406529bf299dad6e321b945de8 
  src/tests/master_slave_reconciliation_tests.cpp 
d41178eb41df519073fc0890c5716bbc9fed6ad2 
  src/tests/master_tests.cpp 0357b1c259472213181a65e5adbe6d5caa1698ad 
  src/tests/module.hpp 4b32f29f2ce76100433621a5cb6b8cc87c9b38f8 
  src/tests/module.cpp 246f3a402d4fe3b273c459f6e02c009f3de65f3e 
  src/tests/oversubscription_tests.cpp c857c2bd5135d0e30edfe6f5e856fe6641b8dcfb 
  src/tests/partition_tests.cpp c5badbe90e302793bfbf3f16373efe241decb7d5 
  src/tests/persistent_volume_tests.cpp 
cbf2bcedd5b4c14107d3b50a74f161aa9395d7d0 
  src/tests/reconciliation_tests.cpp 1cbc3230d003a84277b91da6470828ebf73ef897 
  src/tests/reservation_tests.cpp d2ef15934556cb879f31850d52712aec77231fc7 
  src/tests/scheduler_event_call_tests.cpp 
bd8920fa9d5475e5f6533c8424ebff1588bfe645 
  src/tests/scheduler_http_api_tests.cpp 
9eb1de7d9541395b92b951f0fe0ddbb2f219fe30 
  src/tests/slave_recovery_tests.cpp bccdf37ced5de8e759c6abb91337e7bfecc77b77 
  src/tests/slave_tests.cpp b2b1fd4be933512c3dffa8c1c579b59782a37d77 

Diff: https://reviews.apache.org/r/43269/diff/


Testing
---

In addition to all unit tests passing, we are currently using this 
functionality in our environment with a custom consensus stack. In our world, 
we have a C++ plugin that calls out to an HTTP REST service (implemented in 
Java/Scala, not that it matters).


Thanks,

Mark Cavage