Documentation ¶
Index ¶
- Constants
- Variables
- func CompatibleVersions(v1, v2 string) bool
- func CreateRandomID(size int) string
- func DiffSlices(s1, s2 []string) (onlyInS1, onlyInS2 []string)
- func MaintenanceChecker(file string, interval time.Duration)
- type AsyncReply
- type BasicRPCServerOpts
- type ClientResult
- type RPCClient
- func (r *RPCClient) Call(name string, arg interface{}, reply interface{}) error
- func (r *RPCClient) CallMulti(name string, arg interface{}, region int, reply interface{}) error
- func (r *RPCClient) CallMultiWithTimeout(name string, arg interface{}, region int, reply interface{}, timeout int) error
- func (r *RPCClient) CallWithTimeout(name string, arg interface{}, reply interface{}, timeout int) error
- type RPCServerOpts
- type Task
- func (t *Task) AddWarning(warn string)
- func (t *Task) Authorize() error
- func (t *Task) End(err error, async bool) error
- func (t *Task) Log(format string, args ...interface{})
- func (t *Task) LogStatus(format string, args ...interface{})
- func (t *Task) Run() error
- func (t *Task) RunAsync(r *AsyncReply) error
- type TaskExecutor
- type TaskMaintenanceExecutor
- type TaskStatus
- type TaskTracker
- func (t *TaskTracker) Idle(checkTask *Task) bool
- func (t *TaskTracker) ListIDs(types []string) []string
- func (t *TaskTracker) MaintenanceChecker(file string, interval time.Duration)
- func (t *TaskTracker) ReleaseTaskID(id string)
- func (t *TaskTracker) ReserveTaskID(task *Task) string
- func (t *TaskTracker) Result(id string) interface{}
- func (t *TaskTracker) SetMaintenance(on bool)
- func (t *TaskTracker) Status(id string) (*TaskStatus, error)
- func (t *TaskTracker) UnderMaintenance() bool
- type VersionArg
- type VersionReply
Constants ¶
View Source
const ( StatusOk = "OK" StatusMaintenance = "MAINTENANCE" StatusError = "ERROR" StatusDegraded = "DEGRADED" StatusUnknown = "UNKNOWN" StatusDone = "DONE" StatusInit = "INIT" StatusFull = "FULL" // Supervisor Health Check status when no more containers are available ManifestFile = "manifest.toml" DefaultLDAPPort = uint16(636) DefaultRegion = "dev" DefaultZone = "dev" )
Variables ¶
View Source
var ( Tracker = &TaskTracker{tasks: map[string]*Task{}} TaskStatusUnknown = &TaskStatus{Status: StatusUnknown} )
Functions ¶
func CompatibleVersions ¶
Returns false if the two major versions mismatch
func CreateRandomID ¶
NOTE[jigish]: yes, i know this has modulo bias. i don't care. we don't need a truly random string, just one that won't collide often.
func DiffSlices ¶
func MaintenanceChecker ¶
Types ¶
type AsyncReply ¶
type AsyncReply struct {
ID string
}
------------ Async ----------- used to for async requests
type BasicRPCServerOpts ¶
type BasicRPCServerOpts string
func (BasicRPCServerOpts) RPCHostAndPort ¶
func (o BasicRPCServerOpts) RPCHostAndPort() string
type ClientResult ¶
type ClientResult struct {
// contains filtered or unexported fields
}
type RPCClient ¶
type RPCClient struct { BaseName string RPCVersion string Opts []RPCServerOpts UseTLS bool VersionError error VersionOk bool }
func NewMultiRPCClientWithConfig ¶
func NewMultiRPCClientWithConfig(configs []RPCServerOpts, baseName, rpcVersion string, useTLS bool) *RPCClient
func NewRPCClient ¶
func NewRPCClientWithConfig ¶
func NewRPCClientWithConfig(config RPCServerOpts, baseName, rpcVersion string, useTLS bool) *RPCClient
func (*RPCClient) CallMultiWithTimeout ¶
type RPCServerOpts ¶
type RPCServerOpts interface {
RPCHostAndPort() string
}
type Task ¶
type Task struct { sync.RWMutex TaskStatus Err error Tracker *TaskTracker ID string Executor TaskExecutor Request interface{} Result interface{} }
func NewTask ¶
func NewTask(name string, executor TaskExecutor) *Task
func (*Task) AddWarning ¶
func (*Task) RunAsync ¶
func (t *Task) RunAsync(r *AsyncReply) error
type TaskExecutor ¶
type TaskMaintenanceExecutor ¶
type TaskMaintenanceExecutor interface {
AllowDuringMaintenance() bool
}
type TaskStatus ¶
type TaskStatus struct { Name string Description string Status string Warnings []string Done bool StartTime time.Time StatusTime time.Time EndTime time.Time }
func (*TaskStatus) CopyTaskStatus ¶
func (t *TaskStatus) CopyTaskStatus() *TaskStatus
func (*TaskStatus) Map ¶
func (t *TaskStatus) Map() map[string]interface{}
func (*TaskStatus) String ¶
func (t *TaskStatus) String() string
type TaskTracker ¶
type TaskTracker struct { sync.RWMutex ResultDuration time.Duration Maintenance bool // contains filtered or unexported fields }
func (*TaskTracker) Idle ¶
func (t *TaskTracker) Idle(checkTask *Task) bool
func (*TaskTracker) ListIDs ¶
func (t *TaskTracker) ListIDs(types []string) []string
func (*TaskTracker) MaintenanceChecker ¶
func (t *TaskTracker) MaintenanceChecker(file string, interval time.Duration)
func (*TaskTracker) ReleaseTaskID ¶
func (t *TaskTracker) ReleaseTaskID(id string)
func (*TaskTracker) ReserveTaskID ¶
func (t *TaskTracker) ReserveTaskID(task *Task) string
func (*TaskTracker) Result ¶
func (t *TaskTracker) Result(id string) interface{}
func (*TaskTracker) SetMaintenance ¶
func (t *TaskTracker) SetMaintenance(on bool)
func (*TaskTracker) Status ¶
func (t *TaskTracker) Status(id string) (*TaskStatus, error)
func (*TaskTracker) UnderMaintenance ¶
func (t *TaskTracker) UnderMaintenance() bool
type VersionArg ¶
type VersionArg struct { }
------------ Version ----------- used to check manager or supervisor version
type VersionReply ¶
Click to show internal directories.
Click to hide internal directories.