mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
nomad: first pass at register struct
This commit is contained in:
@@ -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{}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user