In order to modify the maintenance schedule in the replicated registry, we will need Operations (src/master/registrar.hpp).
The operations will likely correspond to the HTTP API:
- UpdateMaintenanceSchedule: Given a blob representing a maintenance schedule, perform some verification on the blob. Write the blob to the registry.
- StartMaintenance: Given a set of machines, verify then transition machines from Draining to Deactivated.
- StopMaintenance: Given a set of machines, verify then transition machines from Deactivated to Normal. Remove affected machines from the schedule(s).