nomad: first pass at register struct

This commit is contained in:
Armon Dadgar
2015-06-07 11:18:59 -07:00
parent ad1849353e
commit 3339a2f7ea

View File

@@ -37,6 +37,13 @@ type RPCInfo interface {
// QueryOptions is used to specify various flags for read queries
type QueryOptions struct {
// If set, wait until query exceeds given index. Must be provided
// with MaxQueryTime.
MinQueryIndex uint64
// Provided with MinQueryIndex to wait for change.
MaxQueryTime time.Duration
// The target region for this query
Region string
@@ -91,6 +98,78 @@ type QueryMeta struct {
KnownLeader bool
}
const (
// CoreCapability is used to convey the client core
// version. This is a special reserved capability.
CoreCapability = "core"
)
const (
StatusInit = "initializing"
StatusReady = "ready"
StatusMaint = "maintenance"
StatusDown = "down"
)
// RegisterRequest is used for Client.Register endpoint
// to register a node as being a schedulable entity.
type RegisterRequest struct {
// Datacenter for this node
Datacenter string
// Status of this node
Status string
// Scheduling capabilities are used by drivers.
// e.g. core = 2, docker = 1, java = 2, etc
Capabilities map[string]int
// Attributes is an arbitrary set of key/value
// data that can be used for constraints. Examples
// include "os=linux", "arch=386", "docker.runtime=1.8.3"
Attributes map[string]interface{}
// Resources is the available resources on the client.
// For example 'cpu=2' 'memory=2048'
Resouces *Resources
// Links are used to 'link' this client to external
// systems. For example 'consul=foo.dc1' 'aws=i-83212'
// 'ami=ami-123'
Links map[string]interface{}
// Meta is used to associate arbitrary metadata with this
// client. This is opaque to Nomad.
Meta map[string]string
WriteRequest
}
// Resources is used to define the resources available
// on a client
type Resources struct {
CPU float64
CPUReserved float64
MemoryMB int
MemoryMBReserved int
DiskMB int
DiskMBReservered int
IOPS int
IOPSReserved int
Networks []*NetworkResource
Other map[string]interface{}
}
// NetworkResource is used to represesent available network
// resources>
type NetworkResource struct {
Public bool // Is this a public address?
CIDR string // CIDR block of addresses
ReservedPorts []int // Reserved ports
MBits int // Throughput
MBitsReserved int
}
// msgpackHandle is a shared handle for encoding/decoding of structs
var msgpackHandle = &codec.MsgpackHandle{}