common

package
v0.0.0-...-35983a8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2016 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

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

func CompatibleVersions(v1, v2 string) bool

Returns false if the two major versions mismatch

func CreateRandomID

func CreateRandomID(size int) string

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 DiffSlices(s1, s2 []string) (onlyInS1, onlyInS2 []string)

func MaintenanceChecker

func MaintenanceChecker(file string, interval time.Duration)

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 NewRPCClient(hostAndPort, baseName, rpcVersion string, useTLS bool) *RPCClient

func NewRPCClientWithConfig

func NewRPCClientWithConfig(config RPCServerOpts, baseName, rpcVersion string, useTLS bool) *RPCClient

func (*RPCClient) Call

func (r *RPCClient) Call(name string, arg interface{}, reply interface{}) error

func (*RPCClient) CallMulti

func (r *RPCClient) CallMulti(name string, arg interface{}, region int, reply interface{}) error

func (*RPCClient) CallMultiWithTimeout

func (r *RPCClient) CallMultiWithTimeout(name string, arg interface{}, region int, reply interface{}, timeout int) error

func (*RPCClient) CallWithTimeout

func (r *RPCClient) CallWithTimeout(name string, arg interface{}, reply interface{}, timeout int) error

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 (t *Task) AddWarning(warn string)

func (*Task) Authorize

func (t *Task) Authorize() error

func (*Task) End

func (t *Task) End(err error, async bool) error

func (*Task) Log

func (t *Task) Log(format string, args ...interface{})

func (*Task) LogStatus

func (t *Task) LogStatus(format string, args ...interface{})

func (*Task) Run

func (t *Task) Run() error

func (*Task) RunAsync

func (t *Task) RunAsync(r *AsyncReply) error

type TaskExecutor

type TaskExecutor interface {
	Request() interface{}
	Result() interface{}
	Description() string
	Execute(t *Task) error
	Authorize() error
}

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

type VersionReply struct {
	RPCVersion string
	APIVersion string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL