blob: 362a9fab946e9fb0411df2277f7f3edbadccb61a [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
import "mesos/mesos.proto";
import "mesos/maintenance/maintenance.proto";
import "mesos/quota/quota.proto";
package mesos.internal;
/**
* A top level object that is managed by the Registrar and persisted in a
* replicated log. This object is recovered upon master startup and failover.
*/
message Registry {
// NOTE: This object defines wrappers around existing objects in case
// the Registry wishes to store more information about the wrapped objects
// in the future.
message Master {
required MasterInfo info = 1;
}
message Slave {
required SlaveInfo info = 1;
}
message Slaves {
repeated Slave slaves = 1;
}
message UnreachableSlave {
required SlaveID id = 1;
// The time when the slave was marked unreachable by the master.
required TimeInfo timestamp = 2;
}
message UnreachableSlaves {
repeated UnreachableSlave slaves = 1;
}
message Machine {
required MachineInfo info = 1;
}
message Machines {
repeated Machine machines = 1;
}
message Quota {
required quota.QuotaInfo info = 1;
}
message Weight {
required WeightInfo info = 1;
}
// Most recent leading master.
optional Master master = 1;
// All admitted (healthy) slaves.
optional Slaves slaves = 2;
// Slaves that have failed health checks. They may or may not still
// be running.
//
// New entries are added to the end of this list; hence the first
// element of the list was added first (although if there is clock
// drift, it might not necessarily have the smallest timestamp). The
// size of this list is limited by the `registry_max_agent_age` and
// `registry_max_agent_count` flags.
optional UnreachableSlaves unreachable = 7;
// Holds a list of machines and some status information about each.
// See comments in `MachineInfo` for more information.
optional Machines machines = 3;
// Describes a schedule for taking down specific machines for maintenance.
// The schedule is meant to give hints to frameworks about potential
// unavailability of resources. The `schedules` are related to the status
// information found in `machines`.
repeated maintenance.Schedule schedules = 4;
// A list of recorded quotas in the cluster. It does not hold an actual
// assignment of resources, a newly elected master shall reconstruct it
// from the cluster.
repeated Quota quotas = 5;
// A list of recorded weights in the cluster, a newly elected master shall
// reconstruct it from the registry.
repeated Weight weights = 6;
}