Project: mesos
Issue MESOS-2067: Add HTTP API to the master for maintenance operations.
Based on MESOS-1474, we'd like to provide an HTTP API on the master for the maintenance primitives in mesos. For the MVP, we'll want something like this for manipulating the schedule: {code} /maintenance/schedule GET - returns the schedule, which will include the various maintenance windows. POST - create or update the schedule with a JSON blob (see below). /maintenance/status GET - returns a list of machines and their maintenance mode. /maintenance/start POST - Transition a set of machines from Draining into Deactivated mode. /maintenance/stop POST - Transition a set of machines from Deactivated into Normal mode. /maintenance/consensus <- (Not sure what the right name is. matrix? acceptance?) GET - Returns the latest info on which frameworks have accepted or declined the maintenance schedule. {code} (Note: The slashes in URLs might not be supported yet.) A schedule might look like: {code} { "windows" : [ { "machines" : [ { "ip" : "192.168.0.1" }, { "hostname" : "localhost" }, ... ], "unavailability" : { "start" : 12345, // Epoch seconds. "duration" : 1000 // Seconds. } }, ... ] } {code} There should be firewall settings such that only those with access to master can use these endpoints.
Story points: 8