Enable `Tasks` to specify their own custom maintenance SLA.
authorSanthosh Kumar Shanmugham <santhoshkumar.s@gmail.com>
Tue, 5 Jun 2018 23:15:52 +0000 (16:15 -0700)
committerSanthosh Kumar <sshanmugham@twitter.com>
Tue, 5 Jun 2018 23:15:52 +0000 (16:15 -0700)
commitf2acf53ff0d0cbb7b0c62f021cc55c9e45b32f9c
treeb7e2c747a1f589269f8eea2af17c1681721e4c02
parent34be631589ebf899e663b698dc76511eb1b9ad8a
Enable `Tasks` to specify their own custom maintenance SLA.

`Tasks` can specify custom SLA requirements as part of
their `TaskConfig`. One of the new features is the ability
to specify an external coordinator that can ACK/NACK
maintenance requests for tasks. This will be hugely
beneficial for onboarding services that cannot satisfactorily
specify SLA in terms of running instances.

Maintenance requests are driven from the Scheduler to
improve management of nodes in the cluster.

Testing Done:
./build-support/jenkins/build.sh
./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh

Bugs closed: AURORA-1978

Reviewed at https://reviews.apache.org/r/66716/
49 files changed:
RELEASE-NOTES.md
api/src/main/thrift/org/apache/aurora/gen/api.thrift
docs/README.md
docs/features/sla-requirements.md [new file with mode: 0644]
docs/operations/configuration.md
docs/reference/configuration.md
docs/reference/scheduler-configuration.md
examples/vagrant/systemd/aurora-scheduler.service
src/main/java/org/apache/aurora/scheduler/app/AppModule.java
src/main/java/org/apache/aurora/scheduler/config/CliOptions.java
src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java
src/main/java/org/apache/aurora/scheduler/maintenance/MaintenanceController.java [moved from src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java with 52% similarity]
src/main/java/org/apache/aurora/scheduler/maintenance/MaintenanceModule.java [new file with mode: 0644]
src/main/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandler.java
src/main/java/org/apache/aurora/scheduler/sla/SlaManager.java [new file with mode: 0644]
src/main/java/org/apache/aurora/scheduler/sla/SlaModule.java
src/main/java/org/apache/aurora/scheduler/state/StateModule.java
src/main/java/org/apache/aurora/scheduler/thrift/ReadOnlySchedulerImpl.java
src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
src/main/python/apache/aurora/admin/admin_util.py
src/main/python/apache/aurora/admin/host_maintenance.py
src/main/python/apache/aurora/admin/maintenance.py
src/main/python/apache/aurora/client/api/__init__.py
src/main/python/apache/aurora/client/cli/context.py
src/main/python/apache/aurora/client/cli/jobs.py
src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java
src/test/java/org/apache/aurora/scheduler/base/TaskTestUtil.java
src/test/java/org/apache/aurora/scheduler/config/CommandLineTest.java
src/test/java/org/apache/aurora/scheduler/configuration/ConfigurationManagerTest.java
src/test/java/org/apache/aurora/scheduler/cron/quartz/CronIT.java
src/test/java/org/apache/aurora/scheduler/cron/quartz/QuartzTestUtil.java
src/test/java/org/apache/aurora/scheduler/maintenance/MaintenanceControllerImplTest.java [moved from src/test/java/org/apache/aurora/scheduler/state/MaintenanceControllerImplTest.java with 58% similarity]
src/test/java/org/apache/aurora/scheduler/mesos/MesosCallbackHandlerTest.java
src/test/java/org/apache/aurora/scheduler/sla/SlaManagerTest.java [new file with mode: 0644]
src/test/java/org/apache/aurora/scheduler/sla/SlaModuleTest.java
src/test/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterfaceTest.java
src/test/java/org/apache/aurora/scheduler/thrift/ThriftIT.java
src/test/java/org/apache/aurora/scheduler/thrift/aop/MockDecoratedThrift.java
src/test/python/apache/aurora/admin/test_maintenance.py
src/test/python/apache/aurora/api_util.py
src/test/python/apache/aurora/client/api/test_scheduler_client.py
src/test/python/apache/aurora/client/cli/test_add.py
src/test/python/apache/aurora/client/cli/test_kill.py
src/test/sh/org/apache/aurora/e2e/http_example.py
src/test/sh/org/apache/aurora/e2e/partition_aware.aurora
src/test/sh/org/apache/aurora/e2e/sla_coordinator.py [new file with mode: 0644]
src/test/sh/org/apache/aurora/e2e/sla_policy.aurora [new file with mode: 0644]
src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
ui/src/main/js/components/TaskConfigSummary.js