You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@aurora.apache.org by Zameer Manji <zm...@apache.org> on 2017/02/25 03:15:41 UTC

Review Request 57061: Enable Mesos HTTP API.

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

Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. The code and tests were reshufled to
maxmize logic reuse.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
disable the `SchedulerI` test. I beleive the only way out is to upgrade to
Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
Guice bindings are valid.


[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs
-----

  config/legacy_untested_classes.txt ec3e934b2e0510b9339ac71182b78546cac0e7eb 
  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 17301036e28d95ba90b3e4d8840d8a5641e49c46 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java 9bb319bb04bb386d9792c3cc0017b039e8f25044 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review166925
-----------------------------------------------------------



Master (2652fe0) is red with this patch.
  ./build-support/jenkins/build.sh

:licenseJmh UP-TO-DATE
:licenseMain UP-TO-DATE
:licenseTest UP-TO-DATE
:license UP-TO-DATE
:pmdJmh
:pmdMain
:pmdTest
:test
:jacocoTestReport
Coverage report generated: file:///home/jenkins/jenkins-slave/workspace/AuroraBot/dist/reports/jacoco/test/html/index.html
:analyzeReport
Instruction coverage is 0.8584823335004363, but must be greater than 0.89
Branch coverage is 0.7830404889228418, but must be greater than 0.835
:analyzeReport FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':analyzeReport'.
> Test coverage missing for org/apache/aurora/scheduler/app/SchedulerMain
  Test coverage missing for org/apache/aurora/scheduler/storage/CallOrderEnforcingStorage$1
  Test coverage missing for org/apache/aurora/scheduler/storage/CallOrderEnforcingStorage
  Test coverage missing for org/apache/aurora/GuiceUtils$2
  Test coverage missing for org/apache/aurora/scheduler/storage/db/MyBatisCacheImpl$1
  Test coverage missing for org/apache/aurora/scheduler/discovery/CuratorServiceDiscoveryModule$2
  Test coverage missing for org/apache/aurora/scheduler/discovery/ServiceDiscoveryModule
  Test coverage missing for org/apache/aurora/scheduler/cron/quartz/AuroraCronJob$CronBatchWorker
  Test coverage missing for org/apache/aurora/scheduler/scheduling/TaskGroups$TaskGroupBatchWorker
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorage$Settings
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorage$ScheduledExecutorSchedulingService
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorageModule
  Test coverage missing for org/apache/aurora/scheduler/storage/backup/BackupModule
  Test coverage missing for org/apache/aurora/scheduler/SchedulerLifecycle$DefaultDelayedActions

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 4 mins 3.228 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On Feb. 27, 2017, 7:34 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2017, 7:34 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
> disable the `SchedulerIT` test. I beleive the only way out is to upgrade to
> Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
> Guice bindings are valid.
> 
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt ec3e934b2e0510b9339ac71182b78546cac0e7eb 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review166933
-----------------------------------------------------------



Master (2652fe0) is red with this patch.
  ./build-support/jenkins/build.sh

:checkstyleMain
:compileTestJava/home/jenkins/jenkins-slave/workspace/AuroraBot/src/test/java/org/apache/aurora/scheduler/thrift/aop/MockDecoratedThrift.java:38: Note: Wrote forwarder org.apache.aurora.scheduler.thrift.aop.MockDecoratedThriftForwarder
@Forward(AnnotatedAuroraAdmin.class)
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:processTestResources
:testClasses
:checkstyleTest
:findbugsJmh
:findbugsMain
:findbugsTest
:licenseJmh UP-TO-DATE
:licenseMain UP-TO-DATE
:licenseTest UP-TO-DATE
:license UP-TO-DATE
:pmdJmh
:pmdMain
:pmdTest
:test
:jacocoTestReport
Coverage report generated: file:///home/jenkins/jenkins-slave/workspace/AuroraBot/dist/reports/jacoco/test/html/index.html
:analyzeReport
Instruction coverage is 0.8596520544384411, but must be greater than 0.89
Branch coverage is 0.7838044308632544, but must be greater than 0.835
:analyzeReport FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':analyzeReport'.
> Thanks for adding the first test coverage to: org/apache/aurora/scheduler/storage/db/MyBatisCacheImpl$1 please remove it from the legacyClassesWithoutCoverage list

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 4 mins 21.347 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On Feb. 27, 2017, 8:07 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2017, 8:07 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
> disable the `SchedulerIT` test. I beleive the only way out is to upgrade to
> Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
> Guice bindings are valid.
> 
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt ec3e934b2e0510b9339ac71182b78546cac0e7eb 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.

> On Feb. 27, 2017, 3:22 p.m., Stephan Erb wrote:
> > In general this looks good to me. I am not an expert on the HTTP API though, so I cannot really say if we are using it correctly in all corner cases. I trust your judgement here :-)
> > 
> > However, I have to admit I am not super thrilled about the merged SchedulerDriver. The new HTTP API is the one to stay in the future, so by keeping it separate we would have (potentially) achieved a cleaner code base and would have made it simpler to drop the old API in the future. While I achknowledge that this approach has reduced duplication, I don't believe it outweights the added complexity of the merged implementation.
> > 
> > I am happy to here what you think about this.

Do you mean merged `MesosSchedulerImpl`? I agree merging it makes the code complex, but my first two cuts on seperate implementations were not good and made me feel uncomfortable. There is a lot of subtle logic in the implementation, including event firing and metrics processing.

I feel that it's pretty easy to introduce a regression, and I did introduce several in local prototyping, mostly involving metrics.

I would feel ok splitting apart the code if there was a good way to maximize code reuse. If you have a pattern/design in mind please hare.


> On Feb. 27, 2017, 3:22 p.m., Stephan Erb wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java, line 380
> > <https://reviews.apache.org/r/57061/diff/4/?file=1650744#file1650744line380>
> >
> >     Would be great if we could log more info about the master we have connected to.

This is not clear but we do not get the "MasterInfo" object until we do Subscribe call and get a Subscribed event back. See `handleRegistration` for more information. There we log the MasterInfo object and all other data.

I believe with GLOG_v=1 the native code logs more information when connecting but alas we do not have access to that data here.


> On Feb. 27, 2017, 3:22 p.m., Stephan Erb wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java, lines 470-471
> > <https://reviews.apache.org/r/57061/diff/4/?file=1650744#file1650744line470>
> >
> >     Should we add some debug logging here? Or is this too frequent even for debug?
> 
> Stephan Erb wrote:
>     And/or we could add a counter to track the health of the scheduler connection via /vars.

The default frequency of heartbeats seems to be every 15 seconds so it is way too frequent to log.

However, I will add metrics for each event recieved.


> On Feb. 27, 2017, 3:22 p.m., Stephan Erb wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java, line 474
> > <https://reviews.apache.org/r/57061/diff/4/?file=1650744#file1650744line474>
> >
> >     Nitpick: You are somewhat inconsistent with how you format log messages.

Fixed. Thanks for the catch. I prefer to use SLF4J formatting.


> On Feb. 27, 2017, 3:22 p.m., Stephan Erb wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java, lines 91-94
> > <https://reviews.apache.org/r/57061/diff/4/?file=1650748#file1650748line91>
> >
> >     The log messages are duplicated (see V1 scheduler methods). Can we drop them in one place?

You are right that these are duplicated. I'm not sure how to fix this.

So if you look carefully at the `VersionedDriverFactory` implementations in `LibMesosLoadingModule` you will see that the `V0Mesos` takes in the framework info like the scheduler driver. This means that if you are using the V0 driver you are registering on startup of the service. However, `V1Mesos` doesn't and we are doing registration with the SUBSCRIBE call after we connect.

So technically we are doing both things in different places depending on the implementation so I feel that the logging should be here, but I'm unsure on how to deduplicate it cleanly.


- Zameer


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


On Feb. 27, 2017, 1:44 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2017, 1:44 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Stephan Erb <se...@apache.org>.

> On Feb. 28, 2017, 12:22 a.m., Stephan Erb wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java, lines 470-471
> > <https://reviews.apache.org/r/57061/diff/4/?file=1650744#file1650744line470>
> >
> >     Should we add some debug logging here? Or is this too frequent even for debug?

And/or we could add a counter to track the health of the scheduler connection via /vars.


- Stephan


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


On Feb. 27, 2017, 10:44 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2017, 10:44 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Stephan Erb <se...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review166958
-----------------------------------------------------------



In general this looks good to me. I am not an expert on the HTTP API though, so I cannot really say if we are using it correctly in all corner cases. I trust your judgement here :-)

However, I have to admit I am not super thrilled about the merged SchedulerDriver. The new HTTP API is the one to stay in the future, so by keeping it separate we would have (potentially) achieved a cleaner code base and would have made it simpler to drop the old API in the future. While I achknowledge that this approach has reduced duplication, I don't believe it outweights the added complexity of the merged implementation.

I am happy to here what you think about this.


src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java (lines 97 - 98)
<https://reviews.apache.org/r/57061/#comment239051>

    Please already file a ticket and link it here, so that we can keep track of the (upcoming) deprecation.



src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java (line 353)
<https://reviews.apache.org/r/57061/#comment239052>

    Would be great if we could log more info about the master we have connected to.



src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java (lines 443 - 444)
<https://reviews.apache.org/r/57061/#comment239053>

    Should we add some debug logging here? Or is this too frequent even for debug?



src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java (line 447)
<https://reviews.apache.org/r/57061/#comment239057>

    Nitpick: You are somewhat inconsistent with how you format log messages.



src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java (lines 91 - 94)
<https://reviews.apache.org/r/57061/#comment239060>

    The log messages are duplicated (see V1 scheduler methods). Can we drop them in one place?


- Stephan Erb


On Feb. 27, 2017, 10:44 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2017, 10:44 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review166951
-----------------------------------------------------------



Master (2652fe0) is red with this patch.
  ./build-support/jenkins/build.sh

:generateBuildProperties
:processResources
:classes
:jar
:startScripts
:distTar
:distZip
:assemble
:compileJmhJavaNote: /home/jenkins/jenkins-slave/workspace/AuroraBot/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeSchedulerDriver.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:processJmhResources UP-TO-DATE
:jmhClasses
:checkstyleJmh
:jsHint
:checkstyleMain
:compileTestJava/home/jenkins/jenkins-slave/workspace/AuroraBot/src/test/java/org/apache/aurora/scheduler/thrift/aop/MockDecoratedThrift.java:38: Note: Wrote forwarder org.apache.aurora.scheduler.thrift.aop.MockDecoratedThriftForwarder
@Forward(AnnotatedAuroraAdmin.class)
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:processTestResources
:testClasses
:checkstyleTest[ant:checkstyle] [ERROR] /home/jenkins/jenkins-slave/workspace/AuroraBot/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java:17: Wrong order for 'java.io.File' import. Order should be: java, javax, scala, com, net, org.         Each group should be separated by a single blank line. [ImportOrder]
[ant:checkstyle] [ERROR] /home/jenkins/jenkins-slave/workspace/AuroraBot/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java:94:8: Unused import - org.junit.Ignore. [UnusedImports]
 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':checkstyleTest'.
> Checkstyle rule violations were found. See the report at: file:///home/jenkins/jenkins-slave/workspace/AuroraBot/dist/reports/checkstyle/test.html

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1 mins 21.13 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On Feb. 27, 2017, 9:44 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2017, 9:44 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by David McLaughlin <da...@dmclaughlin.com>.

> On Feb. 28, 2017, 5:52 a.m., David McLaughlin wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java, lines 114-115
> > <https://reviews.apache.org/r/57061/diff/5/?file=1650845#file1650845line114>
> >
> >     Can we avoid repeating this in each method?
> 
> Zameer Manji wrote:
>     I tried but not really. This is why:
>     1. `ensureRunning` ensures the Guava service is running before we do anything. It is a good sanity check.
>     2. `blockUntilRegistered` forces callers to block until we have sucessfully persisted the framework id we get from mesos.
>     
>     Every method that does a call needs this as a safety/sanity check. Removing some of these requires changing the interface and some of the callers.

I was just thinking we could remove the duplication with something like:

    whenRegistered(() -> {
      // callback body
    });


- David


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


On March 1, 2017, 2:44 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 2:44 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. This callback now just uses the handler
> class.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.

> On Feb. 27, 2017, 9:52 p.m., David McLaughlin wrote:
> > src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java, lines 96-104
> > <https://reviews.apache.org/r/57061/diff/5/?file=1650839#file1650839line96>
> >
> >     Feels like a good place to add some context from the design doc here. E.g. why do we have multiple drivers? What are the implications of using each one?

Done.


> On Feb. 27, 2017, 9:52 p.m., David McLaughlin wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java, line 25
> > <https://reviews.apache.org/r/57061/diff/5/?file=1650840#file1650840line25>
> >
> >     Update this doc to reflect the new behavior?

Technically the new behaviour is the same.

`DriverFactoryImpl` is a wrapper around the constructor for the scheduler driver and we wrap around the `V0Mesos` and `V1Mesos` construtors here, just using lambdas instead.

We need this because all of those classes have a hard dependency on libmesos and load in native code in the constructor.


> On Feb. 27, 2017, 9:52 p.m., David McLaughlin wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java, lines 114-115
> > <https://reviews.apache.org/r/57061/diff/5/?file=1650845#file1650845line114>
> >
> >     Can we avoid repeating this in each method?

I tried but not really. This is why:
1. `ensureRunning` ensures the Guava service is running before we do anything. It is a good sanity check.
2. `blockUntilRegistered` forces callers to block until we have sucessfully persisted the framework id we get from mesos.

Every method that does a call needs this as a safety/sanity check. Removing some of these requires changing the interface and some of the callers.


> On Feb. 27, 2017, 9:52 p.m., David McLaughlin wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java, line 48
> > <https://reviews.apache.org/r/57061/diff/5/?file=1650845#file1650845line48>
> >
> >     Missing Javadoc.

Added.


> On Feb. 27, 2017, 9:52 p.m., David McLaughlin wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java, lines 414-426
> > <https://reviews.apache.org/r/57061/diff/5/?file=1650841#file1650841line414>
> >
> >     Seems like a good place to use a CacheBuilder (to avoid the String creation per event received).
> >     
> >     Also, we don't normally initialize counters to 0. Any particular reason why it's necessary here?

Added a cache for the metric name.

We normally don't but I find that aggravating for dynamic names in a fixed space. It's much easier on metric systems and for operators who just curl `/vars` to have all of them initialized to 0 instead of having them missing.


- Zameer


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


On Feb. 27, 2017, 4:43 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2017, 4:43 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.

> On Feb. 27, 2017, 9:52 p.m., David McLaughlin wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java
> > Lines 114-115 (patched)
> > <https://reviews.apache.org/r/57061/diff/5/?file=1650845#file1650845line114>
> >
> >     Can we avoid repeating this in each method?
> 
> Zameer Manji wrote:
>     I tried but not really. This is why:
>     1. `ensureRunning` ensures the Guava service is running before we do anything. It is a good sanity check.
>     2. `blockUntilRegistered` forces callers to block until we have sucessfully persisted the framework id we get from mesos.
>     
>     Every method that does a call needs this as a safety/sanity check. Removing some of these requires changing the interface and some of the callers.
> 
> David McLaughlin wrote:
>     I was just thinking we could remove the duplication with something like:
>     
>         whenRegistered(() -> {
>           // callback body
>         });

Great idea. Done.


- Zameer


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


On Feb. 28, 2017, 7:02 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 28, 2017, 7:02 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. This callback now just uses the handler
> class.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/9/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by David McLaughlin <da...@dmclaughlin.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167006
-----------------------------------------------------------




src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java (lines 96 - 104)
<https://reviews.apache.org/r/57061/#comment239113>

    Feels like a good place to add some context from the design doc here. E.g. why do we have multiple drivers? What are the implications of using each one?



src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java (line 25)
<https://reviews.apache.org/r/57061/#comment239114>

    Update this doc to reflect the new behavior?



src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java (lines 387 - 399)
<https://reviews.apache.org/r/57061/#comment239116>

    Seems like a good place to use a CacheBuilder (to avoid the String creation per event received).
    
    Also, we don't normally initialize counters to 0. Any particular reason why it's necessary here?



src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java (line 48)
<https://reviews.apache.org/r/57061/#comment239112>

    Missing Javadoc.



src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java (lines 114 - 115)
<https://reviews.apache.org/r/57061/#comment239111>

    Can we avoid repeating this in each method?


- David McLaughlin


On Feb. 28, 2017, 12:43 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 28, 2017, 12:43 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by David McLaughlin <da...@dmclaughlin.com>.

> On Feb. 28, 2017, 1:44 a.m., David McLaughlin wrote:
> > Overall approach LGTM, although I agree with Stephan that I'd like to see a bit more separation between the drivers. 
> > 
> > A more thorough review to follow, but are you able to run this in production and give some feedback on performance? It would be good to know if we can get rid of the old native driver or we're going to have to carry the different implementations around for a while. We could also try and run this patch in our scale test cluster.
> 
> Zameer Manji wrote:
>     I know that `V0Mesos` performs the same as the scheduler driver since it is a very thin API wrapper around the scheduler driver.
>     
>     I have no concrete data on the HTTP API just yet. I suspect it is much slower per some tickets in the MESOS queue.
>     
>     I will think about seperation between the scheduler callbacks. I might extract all the logic into a seperate class and we can have very thin callback implementations.
> 
> David McLaughlin wrote:
>     +1 to having the different Scheduler interfaces just take in a SchedulerCallbacksImpl.
> 
> Zameer Manji wrote:
>     Done.

I noticed you still had a single driver that implements both interfaces. Does SchedulerCallbacksImpl now make it easy to split those out a la Stephan's suggestion?


- David


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


On March 1, 2017, 6:46 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 6:46 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. This callback now just uses the handler
> class.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/10/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.

> On Feb. 27, 2017, 5:44 p.m., David McLaughlin wrote:
> > Overall approach LGTM, although I agree with Stephan that I'd like to see a bit more separation between the drivers. 
> > 
> > A more thorough review to follow, but are you able to run this in production and give some feedback on performance? It would be good to know if we can get rid of the old native driver or we're going to have to carry the different implementations around for a while. We could also try and run this patch in our scale test cluster.

I know that `V0Mesos` performs the same as the scheduler driver since it is a very thin API wrapper around the scheduler driver.

I have no concrete data on the HTTP API just yet. I suspect it is much slower per some tickets in the MESOS queue.

I will think about seperation between the scheduler callbacks. I might extract all the logic into a seperate class and we can have very thin callback implementations.


- Zameer


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


On Feb. 27, 2017, 4:43 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2017, 4:43 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.

> On Feb. 27, 2017, 5:44 p.m., David McLaughlin wrote:
> > Overall approach LGTM, although I agree with Stephan that I'd like to see a bit more separation between the drivers. 
> > 
> > A more thorough review to follow, but are you able to run this in production and give some feedback on performance? It would be good to know if we can get rid of the old native driver or we're going to have to carry the different implementations around for a while. We could also try and run this patch in our scale test cluster.
> 
> Zameer Manji wrote:
>     I know that `V0Mesos` performs the same as the scheduler driver since it is a very thin API wrapper around the scheduler driver.
>     
>     I have no concrete data on the HTTP API just yet. I suspect it is much slower per some tickets in the MESOS queue.
>     
>     I will think about seperation between the scheduler callbacks. I might extract all the logic into a seperate class and we can have very thin callback implementations.
> 
> David McLaughlin wrote:
>     +1 to having the different Scheduler interfaces just take in a SchedulerCallbacksImpl.

Done.


- Zameer


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


On Feb. 27, 2017, 4:43 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 27, 2017, 4:43 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.

> On Feb. 27, 2017, 5:44 p.m., David McLaughlin wrote:
> > Overall approach LGTM, although I agree with Stephan that I'd like to see a bit more separation between the drivers. 
> > 
> > A more thorough review to follow, but are you able to run this in production and give some feedback on performance? It would be good to know if we can get rid of the old native driver or we're going to have to carry the different implementations around for a while. We could also try and run this patch in our scale test cluster.
> 
> Zameer Manji wrote:
>     I know that `V0Mesos` performs the same as the scheduler driver since it is a very thin API wrapper around the scheduler driver.
>     
>     I have no concrete data on the HTTP API just yet. I suspect it is much slower per some tickets in the MESOS queue.
>     
>     I will think about seperation between the scheduler callbacks. I might extract all the logic into a seperate class and we can have very thin callback implementations.
> 
> David McLaughlin wrote:
>     +1 to having the different Scheduler interfaces just take in a SchedulerCallbacksImpl.
> 
> Zameer Manji wrote:
>     Done.
> 
> David McLaughlin wrote:
>     I noticed you still had a single driver that implements both interfaces. Does SchedulerCallbacksImpl now make it easy to split those out a la Stephan's suggestion?

Done.


- Zameer


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


On Feb. 28, 2017, 10:46 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 28, 2017, 10:46 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. This callback now just uses the handler
> class.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/10/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by David McLaughlin <da...@dmclaughlin.com>.

> On Feb. 28, 2017, 1:44 a.m., David McLaughlin wrote:
> > Overall approach LGTM, although I agree with Stephan that I'd like to see a bit more separation between the drivers. 
> > 
> > A more thorough review to follow, but are you able to run this in production and give some feedback on performance? It would be good to know if we can get rid of the old native driver or we're going to have to carry the different implementations around for a while. We could also try and run this patch in our scale test cluster.
> 
> Zameer Manji wrote:
>     I know that `V0Mesos` performs the same as the scheduler driver since it is a very thin API wrapper around the scheduler driver.
>     
>     I have no concrete data on the HTTP API just yet. I suspect it is much slower per some tickets in the MESOS queue.
>     
>     I will think about seperation between the scheduler callbacks. I might extract all the logic into a seperate class and we can have very thin callback implementations.

+1 to having the different Scheduler interfaces just take in a SchedulerCallbacksImpl.


- David


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


On Feb. 28, 2017, 12:43 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 28, 2017, 12:43 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by David McLaughlin <da...@dmclaughlin.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review166983
-----------------------------------------------------------



Overall approach LGTM, although I agree with Stephan that I'd like to see a bit more separation between the drivers. 

A more thorough review to follow, but are you able to run this in production and give some feedback on performance? It would be good to know if we can get rid of the old native driver or we're going to have to carry the different implementations around for a while. We could also try and run this patch in our scale test cluster.

- David McLaughlin


On Feb. 28, 2017, 12:43 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 28, 2017, 12:43 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review166979
-----------------------------------------------------------


Ship it!




Master (2652fe0) is green with this patch.
  ./build-support/jenkins/build.sh

I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On Feb. 28, 2017, 12:43 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 28, 2017, 12:43 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167203
-----------------------------------------------------------



Master (2652fe0) is red with this patch.
  ./build-support/jenkins/build.sh

:commons:generateThriftResources
:commons:processResources
:commons:classes
:commons:jar
:compileJava/home/jenkins/jenkins-slave/workspace/AuroraBot/src/main/java/org/apache/aurora/scheduler/storage/log/WriteAheadStorage.java:74: Note: Wrote forwarder org.apache.aurora.scheduler.storage.log.WriteAheadStorageForwarder
@Forward({
^
Note: Writing file:/home/jenkins/jenkins-slave/workspace/AuroraBot/dist/classes/main/org/apache/aurora/common/args/apt/cmdline.arg.info.txt.2
Note: Writing file:/home/jenkins/jenkins-slave/workspace/AuroraBot/dist/classes/main/META-INF/compiler/resource-mappings/org.apache.aurora.common.args.apt.CmdLineProcessor

:generateBuildProperties
:processResources
:classes
:jar
:startScripts
:distTar
:distZip
:assemble
:compileJmhJavaNote: /home/jenkins/jenkins-slave/workspace/AuroraBot/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeSchedulerDriver.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:processJmhResources UP-TO-DATE
:jmhClasses
:checkstyleJmh
:jsHint
:checkstyleMain[ant:checkstyle] [ERROR] /home/jenkins/jenkins-slave/workspace/AuroraBot/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java:19: Wrong order for 'java.util.List' import. Order should be: java, javax, scala, com, net, org.         Each group should be separated by a single blank line. [ImportOrder]
 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':checkstyleMain'.
> Checkstyle rule violations were found. See the report at: file:///home/jenkins/jenkins-slave/workspace/AuroraBot/dist/reports/checkstyle/main.html

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 32 mins 45.521 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 1, 2017, 2:44 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 2:44 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. This callback now just uses the handler
> class.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167209
-----------------------------------------------------------


Ship it!




Master (2652fe0) is green with this patch.
  ./build-support/jenkins/build.sh

I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 1, 2017, 3:02 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 3:02 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. This callback now just uses the handler
> class.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/9/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167216
-----------------------------------------------------------



Master (2652fe0) is red with this patch.
  ./build-support/jenkins/build.sh

:generateBuildProperties
:processResources
:classes
:jar
:startScripts
:distTar
:distZip
:assemble
:compileJmhJavaNote: /home/jenkins/jenkins-slave/workspace/AuroraBot/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeSchedulerDriver.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:processJmhResources UP-TO-DATE
:jmhClasses
:checkstyleJmh
:jsHint
:checkstyleMain
:compileTestJava/home/jenkins/jenkins-slave/workspace/AuroraBot/src/test/java/org/apache/aurora/scheduler/thrift/aop/MockDecoratedThrift.java:38: Note: Wrote forwarder org.apache.aurora.scheduler.thrift.aop.MockDecoratedThriftForwarder
@Forward(AnnotatedAuroraAdmin.class)
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:processTestResources
:testClasses
:checkstyleTest
:findbugsJmh FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':findbugsJmh'.
> Failed to run Gradle FindBugs Worker
   > Process 'Gradle FindBugs Worker 1' finished with non-zero exit value 137

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 13 mins 44.956 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 1, 2017, 6:46 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 6:46 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. This callback now just uses the handler
> class.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/10/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by David McLaughlin <da...@dmclaughlin.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167294
-----------------------------------------------------------


Ship it!




Thanks for iterating on this. Feels a lot cleaner.

- David McLaughlin


On March 1, 2017, 8:20 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 8:20 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/11/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.

> On March 2, 2017, 12:36 p.m., Mehrdad Nurolahzade wrote:
> > src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java
> > Lines 112 (patched)
> > <https://reviews.apache.org/r/57061/diff/12/?file=1652865#file1652865line112>
> >
> >     We are defaulting to `SCHEDULER_DRIVER` here and `V1_DRIVER` under vagrant, which is fine. 
> >     
> >     However, reading the release notes, I somehow got the impression that we have defaulted to `V1_DRIVER` going forward. Consider clarifying this in the relase notes.

I just removed the `V1_DRIVER` line at the end for now.


> On March 2, 2017, 12:36 p.m., Mehrdad Nurolahzade wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java
> > Lines 49 (patched)
> > <https://reviews.apache.org/r/57061/diff/12/?file=1652866#file1652866line49>
> >
> >     Consider adding an error message to `checkState()`.

Done.


> On March 2, 2017, 12:36 p.m., Mehrdad Nurolahzade wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
> > Lines 211 (patched)
> > <https://reviews.apache.org/r/57061/diff/12/?file=1652867#file1652867line211>
> >
> >     This looks kind of weird now (seems like you dropped unused parameteres).

Yes, this is weird. I have enhanced it to log some information about the message but not the body itself.


> On March 2, 2017, 12:36 p.m., Mehrdad Nurolahzade wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java
> > Lines 70 (patched)
> > <https://reviews.apache.org/r/57061/diff/12/?file=1652870#file1652870line78>
> >
> >     Consider augmenting `checkState()` with an error message.

Done.


- Zameer


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


On March 1, 2017, 11:14 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 11:14 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   RELEASE-NOTES.md 2391d32b47dfbb2884bcefac803ec77ee82b4b27 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/12/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Mehrdad Nurolahzade <me...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167579
-----------------------------------------------------------


Ship it!




LGTM, just a few minor nits.


src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java
Lines 112 (patched)
<https://reviews.apache.org/r/57061/#comment239477>

    We are defaulting to `SCHEDULER_DRIVER` here and `V1_DRIVER` under vagrant, which is fine. 
    
    However, reading the release notes, I somehow got the impression that we have defaulted to `V1_DRIVER` going forward. Consider clarifying this in the relase notes.



src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java
Lines 49 (patched)
<https://reviews.apache.org/r/57061/#comment239478>

    Consider adding an error message to `checkState()`.



src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
Lines 211 (patched)
<https://reviews.apache.org/r/57061/#comment239490>

    This looks kind of weird now (seems like you dropped unused parameteres).



src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java
Lines 70 (patched)
<https://reviews.apache.org/r/57061/#comment239494>

    Consider augmenting `checkState()` with an error message.


- Mehrdad Nurolahzade


On March 1, 2017, 11:14 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 11:14 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   RELEASE-NOTES.md 2391d32b47dfbb2884bcefac803ec77ee82b4b27 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/12/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167581
-----------------------------------------------------------


Ship it!




Master (2652fe0) is green with this patch.
  ./build-support/jenkins/build.sh

I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 1, 2017, 7:14 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 7:14 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   RELEASE-NOTES.md 2391d32b47dfbb2884bcefac803ec77ee82b4b27 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/12/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167608
-----------------------------------------------------------



Master (2652fe0) is red with this patch.
  ./build-support/jenkins/build.sh

  Test coverage missing for org/apache/aurora/scheduler/SchedulerLifecycle$2
  Test coverage missing for org/apache/aurora/scheduler/SchedulerLifecycle$1
  Test coverage missing for org/apache/aurora/scheduler/HostOffer
  Test coverage missing for org/apache/aurora/scheduler/TaskVars
  Test coverage missing for org/apache/aurora/scheduler/SchedulerLifecycle$SchedulerCandidateImpl
  Test coverage missing for org/apache/aurora/scheduler/BatchWorker$Work
  Test coverage missing for org/apache/aurora/scheduler/TierInfo
  Test coverage missing for org/apache/aurora/scheduler/SchedulerLifecycle$DefaultDelayedActions
  Test coverage missing for org/apache/aurora/scheduler/TierManager$TierManagerImpl$TierConfig
  Test coverage missing for org/apache/aurora/scheduler/TaskVars$Counter
  Test coverage missing for org/apache/aurora/scheduler/TaskVars$1
  Test coverage missing for org/apache/aurora/scheduler/SchedulerModule$TaskEventBatchWorker
  Test coverage missing for org/apache/aurora/scheduler/BatchWorker
  Test coverage missing for org/apache/aurora/scheduler/HostOffer$1
  Test coverage missing for org/apache/aurora/scheduler/SchedulerModule
  Test coverage missing for org/apache/aurora/scheduler/TaskIdGenerator$TaskIdGeneratorImpl
  Test coverage missing for org/apache/aurora/scheduler/TierManager$TierManagerImpl
  Test coverage missing for org/apache/aurora/scheduler/SchedulerModule$1
  Test coverage missing for org/apache/aurora/scheduler/TaskStatusHandlerImpl
  Test coverage missing for org/apache/aurora/scheduler/SchedulerServicesModule
  Test coverage missing for org/apache/aurora/scheduler/TaskStatusHandlerImpl$1
  Test coverage missing for org/apache/aurora/scheduler/TierModule
  Test coverage missing for org/apache/aurora/scheduler/SchedulerLifecycle
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/ScheduleStatusTypeHandler
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/VolumeModeTypeHandler
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/JobUpdateStatusTypeHandler
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/TypeHandlers
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/MaintenanceModeTypeHandler
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/CronCollisionPolicyTypeHandler
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/AbstractTEnumTypeHandler
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/JobUpdateActionTypeHandler
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/ResourceTypeHandler

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
==============================================================================

BUILD FAILED

Total time: 4 hrs 30 mins 24.414 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 1, 2017, 7:14 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 7:14 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   RELEASE-NOTES.md 2391d32b47dfbb2884bcefac803ec77ee82b4b27 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/12/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167745
-----------------------------------------------------------


Ship it!




Master (2652fe0) is green with this patch.
  ./build-support/jenkins/build.sh

I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 2, 2017, 9:29 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 2, 2017, 9:29 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   RELEASE-NOTES.md 2391d32b47dfbb2884bcefac803ec77ee82b4b27 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/13/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated March 2, 2017, 1:29 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
class. `VersionedMesosSchedulerImpl` was created to implement the new
callback interface. Both callbacks new use the handler class for logic.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  RELEASE-NOTES.md 2391d32b47dfbb2884bcefac803ec77ee82b4b27 
  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 


Diff: https://reviews.apache.org/r/57061/diff/13/

Changes: https://reviews.apache.org/r/57061/diff/12-13/


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167627
-----------------------------------------------------------



Master (2652fe0) is red with this patch.
  ./build-support/jenkins/build.sh

  Test coverage missing for org/apache/aurora/scheduler/storage/mem/MemTaskStore$SecondaryIndex$2
  Test coverage missing for org/apache/aurora/scheduler/storage/mem/MemTaskStore$SecondaryIndex$1
  Test coverage missing for org/apache/aurora/scheduler/mesos/SchedulerDriverService
  Test coverage missing for org/apache/aurora/scheduler/mesos/ProtosConversion
  Test coverage missing for org/apache/aurora/scheduler/mesos/MesosCallbackHandler$MesosCallbackHandlerImpl
  Test coverage missing for org/apache/aurora/scheduler/mesos/MesosSchedulerImpl
  Test coverage missing for org/apache/aurora/scheduler/thrift/AuditMessages
  Test coverage missing for org/apache/aurora/scheduler/preemptor/Preemptor$PreemptorImpl
  Test coverage missing for org/apache/aurora/scheduler/preemptor/PendingTaskProcessor
  Test coverage missing for org/apache/aurora/scheduler/preemptor/ClusterStateImpl
  Test coverage missing for org/apache/aurora/scheduler/preemptor/PreemptionProposal
  Test coverage missing for org/apache/aurora/scheduler/preemptor/PendingTaskProcessor$1
  Test coverage missing for org/apache/aurora/scheduler/preemptor/PendingTaskProcessor$2
  Test coverage missing for org/apache/aurora/scheduler/preemptor/PendingTaskProcessor$3
  Test coverage missing for org/apache/aurora/scheduler/preemptor/PreemptorModule$PreemptorService
  Test coverage missing for org/apache/aurora/scheduler/events/PubsubEvent$DriverDisconnected
  Test coverage missing for org/apache/aurora/scheduler/events/WebhookModule
  Test coverage missing for org/apache/aurora/scheduler/events/PubsubEventModule$RegisterSubscribers
  Test coverage missing for org/apache/aurora/scheduler/events/Webhook
  Test coverage missing for org/apache/aurora/scheduler/events/PubsubEvent$DriverRegistered
  Test coverage missing for org/apache/aurora/scheduler/events/WebhookInfo
  Test coverage missing for org/apache/aurora/scheduler/storage/log/EntrySerializer$EntrySerializerImpl$1
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorage$Settings
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorage$ScheduledExecutorSchedulingService
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorageModule
  Test coverage missing for org/apache/aurora/scheduler/storage/backup/BackupModule
  Test coverage missing for org/apache/aurora/scheduler/TaskVars
  Test coverage missing for org/apache/aurora/scheduler/SchedulerLifecycle$DefaultDelayedActions
  Test coverage missing for org/apache/aurora/scheduler/TierManager$TierManagerImpl$TierConfig
  Test coverage missing for org/apache/aurora/scheduler/TaskVars$Counter
  Test coverage missing for org/apache/aurora/scheduler/TaskVars$1
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/VolumeModeTypeHandler

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
==============================================================================

BUILD FAILED

Total time: 33 mins 6.233 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 1, 2017, 7:14 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 7:14 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   RELEASE-NOTES.md 2391d32b47dfbb2884bcefac803ec77ee82b4b27 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/12/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167612
-----------------------------------------------------------



@ReviewBot retry

- Zameer Manji


On March 1, 2017, 11:14 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 11:14 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   RELEASE-NOTES.md 2391d32b47dfbb2884bcefac803ec77ee82b4b27 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/12/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167628
-----------------------------------------------------------


Ship it!




Master (2652fe0) is green with this patch.
  ./build-support/jenkins/build.sh

I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 1, 2017, 2:14 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 2:14 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   RELEASE-NOTES.md 2391d32b47dfbb2884bcefac803ec77ee82b4b27 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/12/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated March 1, 2017, 11:14 a.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Changes
-------

Update release notes.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
class. `VersionedMesosSchedulerImpl` was created to implement the new
callback interface. Both callbacks new use the handler class for logic.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  RELEASE-NOTES.md 2391d32b47dfbb2884bcefac803ec77ee82b4b27 
  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 


Diff: https://reviews.apache.org/r/57061/diff/12/

Changes: https://reviews.apache.org/r/57061/diff/11-12/


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.

> On March 1, 2017, 10:24 a.m., Stephan Erb wrote:
> > src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java
> > Lines 111-112 (patched)
> > <https://reviews.apache.org/r/57061/diff/11/?file=1652571#file1652571line111>
> >
> >     Please add an entry to the release notes with the indication that we plan to move to the V1 API in the future.

Done. Thanks for reminding me.


> On March 1, 2017, 10:24 a.m., Stephan Erb wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java
> > Lines 171-178 (patched)
> > <https://reviews.apache.org/r/57061/diff/11/?file=1652579#file1652579line171>
> >
> >     Do you have an idea where those updates without UUID are comming from?

I think there are lots of cases where a status update will not be retried from Mesos, but I beleive the biggest cause of these are status updates triggered by reconcilation.


- Zameer


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


On March 1, 2017, 12:20 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 12:20 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/11/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Stephan Erb <se...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167373
-----------------------------------------------------------


Fix it, then Ship it!




Great work. Thanks!


src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java
Lines 111-112 (patched)
<https://reviews.apache.org/r/57061/#comment239417>

    Please add an entry to the release notes with the indication that we plan to move to the V1 API in the future.



src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java
Lines 171-178 (patched)
<https://reviews.apache.org/r/57061/#comment239416>

    Do you have an idea where those updates without UUID are comming from?


- Stephan Erb


On March 1, 2017, 9:20 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 9:20 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/11/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167236
-----------------------------------------------------------


Ship it!




Master (2652fe0) is green with this patch.
  ./build-support/jenkins/build.sh

I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 1, 2017, 8:20 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 8:20 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `VersionedMesosSchedulerImpl` was created to implement the new
> callback interface. Both callbacks new use the handler class for logic.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/11/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated March 1, 2017, 12:20 a.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description (updated)
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
class. `VersionedMesosSchedulerImpl` was created to implement the new
callback interface. Both callbacks new use the handler class for logic.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 


Diff: https://reviews.apache.org/r/57061/diff/11/


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated March 1, 2017, 12:19 a.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Changes
-------

Feedback.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
class. `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. This callback now just uses the handler
class.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImpl.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedMesosSchedulerImplTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 


Diff: https://reviews.apache.org/r/57061/diff/11/

Changes: https://reviews.apache.org/r/57061/diff/10-11/


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167219
-----------------------------------------------------------



Master (2652fe0) is red with this patch.
  ./build-support/jenkins/build.sh

:generateBuildProperties
:processResources
:classes
:jar
:startScripts
:distTar
:distZip
:assemble
:compileJmhJavaNote: /home/jenkins/jenkins-slave/workspace/AuroraBot/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeSchedulerDriver.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:processJmhResources UP-TO-DATE
:jmhClasses
:checkstyleJmh
:jsHint
:checkstyleMain
:compileTestJava/home/jenkins/jenkins-slave/workspace/AuroraBot/src/test/java/org/apache/aurora/scheduler/thrift/aop/MockDecoratedThrift.java:38: Note: Wrote forwarder org.apache.aurora.scheduler.thrift.aop.MockDecoratedThriftForwarder
@Forward(AnnotatedAuroraAdmin.class)
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:processTestResources
:testClasses
:checkstyleTest
:findbugsJmh FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':findbugsJmh'.
> Failed to run Gradle FindBugs Worker
   > Process 'Gradle FindBugs Worker 1' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3 mins 3.463 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 1, 2017, 6:46 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 6:46 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. This callback now just uses the handler
> class.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/10/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167217
-----------------------------------------------------------



@ReviewBot retry

- Zameer Manji


On Feb. 28, 2017, 10:46 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 28, 2017, 10:46 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. This callback now just uses the handler
> class.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> 
> Diff: https://reviews.apache.org/r/57061/diff/10/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 28, 2017, 10:46 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Changes
-------

Feedback.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
class. `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. This callback now just uses the handler
class.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 


Diff: https://reviews.apache.org/r/57061/diff/10/

Changes: https://reviews.apache.org/r/57061/diff/9-10/


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 28, 2017, 7:02 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Changes
-------

Increase test coverage.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
class. `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. This callback now just uses the handler
class.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 28, 2017, 6:44 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Changes
-------

Fix Style issue.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
class. `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. This callback now just uses the handler
class.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review167202
-----------------------------------------------------------



Master (2652fe0) is red with this patch.
  ./build-support/jenkins/build.sh

:commons:generateThriftResources
:commons:processResources
:commons:classes
:commons:jar
:compileJava/home/jenkins/jenkins-slave/workspace/AuroraBot/src/main/java/org/apache/aurora/scheduler/storage/log/WriteAheadStorage.java:74: Note: Wrote forwarder org.apache.aurora.scheduler.storage.log.WriteAheadStorageForwarder
@Forward({
^
Note: Writing file:/home/jenkins/jenkins-slave/workspace/AuroraBot/dist/classes/main/org/apache/aurora/common/args/apt/cmdline.arg.info.txt.2
Note: Writing file:/home/jenkins/jenkins-slave/workspace/AuroraBot/dist/classes/main/META-INF/compiler/resource-mappings/org.apache.aurora.common.args.apt.CmdLineProcessor

:generateBuildProperties
:processResources
:classes
:jar
:startScripts
:distTar
:distZip
:assemble
:compileJmhJavaNote: /home/jenkins/jenkins-slave/workspace/AuroraBot/src/jmh/java/org/apache/aurora/benchmark/fakes/FakeSchedulerDriver.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:processJmhResources UP-TO-DATE
:jmhClasses
:checkstyleJmh
:jsHint
:checkstyleMain[ant:checkstyle] [ERROR] /home/jenkins/jenkins-slave/workspace/AuroraBot/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java:19: Wrong order for 'java.util.List' import. Order should be: java, javax, scala, com, net, org.         Each group should be separated by a single blank line. [ImportOrder]
 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':checkstyleMain'.
> Checkstyle rule violations were found. See the report at: file:///home/jenkins/jenkins-slave/workspace/AuroraBot/dist/reports/checkstyle/main.html

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1 mins 14.873 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On March 1, 2017, 1:57 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated March 1, 2017, 1:57 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
> class. `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. This callback now just uses the handler
> class.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 28, 2017, 5:57 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Changes
-------

Fix benchmark wiring.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
class. `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. This callback now just uses the handler
class.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 28, 2017, 5:51 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description (updated)
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, event handling logic was extracted into a `MesosCallbackHandler`
class. `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. This callback now just uses the handler
class.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 28, 2017, 5:50 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Changes
-------

Feedback.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. The code and tests were reshufled to
maxmize logic reuse.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 6c2bf46c0d55ac6a85fed7244cba24d74e1b34aa 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 27, 2017, 4:43 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Changes
-------

Feedback.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. The code and tests were reshufled to
maxmize logic reuse.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 27, 2017, 1:44 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description (updated)
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. The code and tests were reshufled to
maxmize logic reuse.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 27, 2017, 1:44 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Changes
-------

Fix SchedulerIT


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. The code and tests were reshufled to
maxmize logic reuse.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
disable the `SchedulerIT` test. I beleive the only way out is to upgrade to
Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
Guice bindings are valid.


[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 27, 2017, 12:07 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. The code and tests were reshufled to
maxmize logic reuse.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
disable the `SchedulerIT` test. I beleive the only way out is to upgrade to
Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
Guice bindings are valid.


[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  config/legacy_untested_classes.txt ec3e934b2e0510b9339ac71182b78546cac0e7eb 
  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 27, 2017, 11:34 a.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Changes
-------

Rebase.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. The code and tests were reshufled to
maxmize logic reuse.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
disable the `SchedulerIT` test. I beleive the only way out is to upgrade to
Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
Guice bindings are valid.


[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs (updated)
-----

  config/legacy_untested_classes.txt ec3e934b2e0510b9339ac71182b78546cac0e7eb 
  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java eb210962c54cd0d33e3760b32f5b0ca1a7079204 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java c599fe30bc903b3a3fb178df70a46d2421b6c45e 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review166920
-----------------------------------------------------------



This patch does not apply cleanly against master (2652fe0), do you need to rebase?

I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On Feb. 25, 2017, 3:16 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 25, 2017, 3:16 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
> disable the `SchedulerIT` test. I beleive the only way out is to upgrade to
> Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
> Guice bindings are valid.
> 
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt ec3e934b2e0510b9339ac71182b78546cac0e7eb 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 17301036e28d95ba90b3e4d8840d8a5641e49c46 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java 9bb319bb04bb386d9792c3cc0017b039e8f25044 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review166804
-----------------------------------------------------------



Master (98eb99a) is red with this patch.
  ./build-support/jenkins/build.sh

Download https://repo1.maven.org/maven2/net/sourceforge/pmd/pmd-java/5.5.3/pmd-java-5.5.3.pom
Download https://repo1.maven.org/maven2/net/sourceforge/pmd/pmd/5.5.3/pmd-5.5.3.pom
Download https://repo1.maven.org/maven2/net/sourceforge/pmd/pmd-core/5.5.3/pmd-core-5.5.3.pom
Download https://repo1.maven.org/maven2/net/sourceforge/pmd/pmd-java/5.5.3/pmd-java-5.5.3.jar
Download https://repo1.maven.org/maven2/net/sourceforge/pmd/pmd-core/5.5.3/pmd-core-5.5.3.jar
:pmdMain
:pmdTest
:test
:jacocoTestReport
Coverage report generated: file:///home/jenkins/jenkins-slave/workspace/AuroraBot/dist/reports/jacoco/test/html/index.html
:analyzeReport
Instruction coverage is 0.8581072285347665, but must be greater than 0.89
Branch coverage is 0.7815126050420168, but must be greater than 0.835
:analyzeReport FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':analyzeReport'.
> Test coverage missing for org/apache/aurora/scheduler/app/SchedulerMain
  Test coverage missing for org/apache/aurora/scheduler/storage/CallOrderEnforcingStorage$1
  Test coverage missing for org/apache/aurora/scheduler/storage/CallOrderEnforcingStorage
  Test coverage missing for org/apache/aurora/GuiceUtils$2
  Test coverage missing for org/apache/aurora/scheduler/storage/db/MyBatisCacheImpl$1
  Test coverage missing for org/apache/aurora/scheduler/discovery/CuratorServiceDiscoveryModule$2
  Test coverage missing for org/apache/aurora/scheduler/discovery/ServiceDiscoveryModule
  Test coverage missing for org/apache/aurora/scheduler/cron/quartz/AuroraCronJob$CronBatchWorker
  Test coverage missing for org/apache/aurora/scheduler/scheduling/TaskGroups$TaskGroupBatchWorker
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorage$Settings
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorage$ScheduledExecutorSchedulingService
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorageModule
  Test coverage missing for org/apache/aurora/scheduler/storage/backup/BackupModule
  Test coverage missing for org/apache/aurora/scheduler/SchedulerLifecycle$DefaultDelayedActions

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 4 mins 0.763 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On Feb. 25, 2017, 3:16 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 25, 2017, 3:16 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
> disable the `SchedulerIT` test. I beleive the only way out is to upgrade to
> Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
> Guice bindings are valid.
> 
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt ec3e934b2e0510b9339ac71182b78546cac0e7eb 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 17301036e28d95ba90b3e4d8840d8a5641e49c46 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java 9bb319bb04bb386d9792c3cc0017b039e8f25044 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review166919
-----------------------------------------------------------



@ReviewBot retry

- Zameer Manji


On Feb. 24, 2017, 7:16 p.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 24, 2017, 7:16 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
> disable the `SchedulerIT` test. I beleive the only way out is to upgrade to
> Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
> Guice bindings are valid.
> 
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt ec3e934b2e0510b9339ac71182b78546cac0e7eb 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 17301036e28d95ba90b3e4d8840d8a5641e49c46 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java 9bb319bb04bb386d9792c3cc0017b039e8f25044 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/#review166803
-----------------------------------------------------------



Master (98eb99a) is red with this patch.
  ./build-support/jenkins/build.sh

  Test coverage missing for org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl
  Test coverage missing for org/apache/aurora/scheduler/storage/log/EntrySerializer$EntrySerializerImpl$1
  Test coverage missing for org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl$8
  Test coverage missing for org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl$7
  Test coverage missing for org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl$4
  Test coverage missing for org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl$3
  Test coverage missing for org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl$6
  Test coverage missing for org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl$5
  Test coverage missing for org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl$2
  Test coverage missing for org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl$1
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorage$Settings
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorage$ScheduledExecutorSchedulingService
  Test coverage missing for org/apache/aurora/scheduler/storage/log/LogStorageModule
  Test coverage missing for org/apache/aurora/scheduler/storage/backup/TemporaryStorage$TemporaryStorageFactory$1
  Test coverage missing for org/apache/aurora/scheduler/storage/backup/BackupModule
  Test coverage missing for org/apache/aurora/scheduler/storage/backup/Recovery$RecoveryImpl
  Test coverage missing for org/apache/aurora/scheduler/storage/backup/TemporaryStorage$TemporaryStorageFactory
  Test coverage missing for org/apache/aurora/scheduler/storage/backup/Recovery$RecoveryImpl$PendingRecovery
  Test coverage missing for org/apache/aurora/scheduler/TaskVars
  Test coverage missing for org/apache/aurora/scheduler/SchedulerLifecycle$DefaultDelayedActions
  Test coverage missing for org/apache/aurora/scheduler/TierManager$TierManagerImpl$TierConfig
  Test coverage missing for org/apache/aurora/scheduler/TaskVars$Counter
  Test coverage missing for org/apache/aurora/scheduler/TaskVars$1
  Test coverage missing for org/apache/aurora/scheduler/SchedulerModule$TaskEventBatchWorker
  Test coverage missing for org/apache/aurora/scheduler/HostOffer$1
  Test coverage missing for org/apache/aurora/scheduler/SchedulerModule
  Test coverage missing for org/apache/aurora/scheduler/TaskIdGenerator$TaskIdGeneratorImpl
  Test coverage missing for org/apache/aurora/scheduler/SchedulerModule$1
  Test coverage missing for org/apache/aurora/scheduler/TaskStatusHandlerImpl
  Test coverage missing for org/apache/aurora/scheduler/TaskStatusHandlerImpl$1
  Test coverage missing for org/apache/aurora/scheduler/TierModule
  Test coverage missing for org/apache/aurora/scheduler/storage/db/typehandlers/VolumeModeTypeHandler

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
==============================================================================

BUILD FAILED

Total time: 37 mins 46.237 secs


I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On Feb. 25, 2017, 3:16 a.m., Zameer Manji wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57061/
> -----------------------------------------------------------
> 
> (Updated Feb. 25, 2017, 3:16 a.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.
> 
> 
> Bugs: AURORA-1887 and AURORA-1888
>     https://issues.apache.org/jira/browse/AURORA-1887
>     https://issues.apache.org/jira/browse/AURORA-1888
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This patch completes the design doc[1] and enables operators to choose between
> two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
> backed by the scheduler driver and the second is `V1Mesos` which offers the V1
> API backed by a new HTTP API implementation.
> 
> There are three sets of changes in this patch.
> 
> First, the V1 Mesos code requires a Scheduler callback with a different API. To
> maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
> callback as well as the old callback. The code and tests were reshufled to
> maxmize logic reuse.
> 
> Second, a new driver implementation using the new API was created. All of the
> logic for the new driver is encapsulated in the
> `VersionedSchedulerDriverService` class.
> 
> Third, some wiring changes were done to allow for Guice to do it's work and
> allow for operators to select between the different driver implementations.
> 
> Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
> disable the `SchedulerIT` test. I beleive the only way out is to upgrade to
> Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
> Guice bindings are valid.
> 
> 
> [1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt ec3e934b2e0510b9339ac71182b78546cac0e7eb 
>   examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 17301036e28d95ba90b3e4d8840d8a5641e49c46 
>   src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
>   src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java 9bb319bb04bb386d9792c3cc0017b039e8f25044 
>   src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 
> 
> Diff: https://reviews.apache.org/r/57061/diff/
> 
> 
> Testing
> -------
> 
> The e2e test has been run three times, each time with a different driver option.
> 
> 
> Thanks,
> 
> Zameer Manji
> 
>


Re: Review Request 57061: Enable Mesos HTTP API.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57061/
-----------------------------------------------------------

(Updated Feb. 24, 2017, 7:16 p.m.)


Review request for Aurora, David McLaughlin, Mehrdad Nurolahzade, and Stephan Erb.


Bugs: AURORA-1887 and AURORA-1888
    https://issues.apache.org/jira/browse/AURORA-1887
    https://issues.apache.org/jira/browse/AURORA-1888


Repository: aurora


Description (updated)
-------

This patch completes the design doc[1] and enables operators to choose between
two V1 Mesos API implementations. The first is `V0Mesos` which offers the V1 API
backed by the scheduler driver and the second is `V1Mesos` which offers the V1
API backed by a new HTTP API implementation.

There are three sets of changes in this patch.

First, the V1 Mesos code requires a Scheduler callback with a different API. To
maximize code reuse, `MesosSchedulerImpl` was extended to implement the new
callback as well as the old callback. The code and tests were reshufled to
maxmize logic reuse.

Second, a new driver implementation using the new API was created. All of the
logic for the new driver is encapsulated in the
`VersionedSchedulerDriverService` class.

Third, some wiring changes were done to allow for Guice to do it's work and
allow for operators to select between the different driver implementations.

Unfortunately, due the interaction of Java 8 and Guice 3.0 I was forced to
disable the `SchedulerIT` test. I beleive the only way out is to upgrade to
Guice 4.0 which we cannot do yet. Since the e2e tests pass, it is clear that the
Guice bindings are valid.


[1] https://docs.google.com/document/d/1bWK8ldaQSsRXvdKwTh8tyR_0qMxAlnMW70eOKoU3myo


Diffs
-----

  config/legacy_untested_classes.txt ec3e934b2e0510b9339ac71182b78546cac0e7eb 
  examples/vagrant/upstart/aurora-scheduler.conf 49fdcbd8b7406a59ae7882473b9eddbfce3ece7c 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java e2ef9c30720698263106f22e3e24db5d0468b155 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 805e9de9bc45396cb8fc6e33ddb3d7428312c608 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java e1a23590c795a489e753b77b0835d30d3be174b5 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 17301036e28d95ba90b3e4d8840d8a5641e49c46 
  src/main/java/org/apache/aurora/scheduler/mesos/ProtosConversion.java bc9e23b7410c00b7d5ffa4f23db93a51e9d0f405 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java 5519323079b2c957a23e093dcc77929148b4a59a 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedDriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverService.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 05518048ca5518a007281269aa402a7d0710eb62 
  src/test/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImplTest.java 9bb319bb04bb386d9792c3cc0017b039e8f25044 
  src/test/java/org/apache/aurora/scheduler/mesos/VersionedSchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java f2275c757ebfa52179e31b95bf0c02b6753fb7e3 

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


Testing
-------

The e2e test has been run three times, each time with a different driver option.


Thanks,

Zameer Manji