Documentation
¶
Index ¶
- Constants
- Variables
- func AppToRaft(app *App) *store.Application
- func ContainerFromRaft(raftContainer *store.Container) *types.Container
- func ContainerToRaft(container *types.Container) *store.Container
- func DockerFromRaft(raftDocker *store.Docker) *types.Docker
- func DockerToRaft(docker *types.Docker) *store.Docker
- func HealthCheckFromRaft(raftHealthCheck *store.HealthCheck) *types.HealthCheck
- func HealthCheckToRaft(healthCheck *types.HealthCheck) *store.HealthCheck
- func KillPolicyFromRaft(raftKillPolicy *store.KillPolicy) *types.KillPolicy
- func KillPolicyToRaft(killPolicy *types.KillPolicy) *store.KillPolicy
- func LoadAppData(userEventChan chan *event.UserEvent) map[string]*App
- func LoadOfferAllocatorMap() (map[string]*OfferInfo, error)
- func OfferAllocatorItemToRaft(slotID string, offerInfo *OfferInfo) *store.OfferAllocatorItem
- func ParameterFromRaft(raftParameter *store.Parameter) *types.Parameter
- func ParameterToRaft(parameter *types.Parameter) *store.Parameter
- func PortMappingFromRaft(raftPortMapping *store.PortMapping) *types.PortMapping
- func PortMappingToRaft(portMapping *types.PortMapping) *store.PortMapping
- func SlotToRaft(slot *Slot) *store.Slot
- func StateMachineToRaft(machine *StateMachine) *store.StateMachine
- func StateToRaft(state State) *store.State
- func TaskToRaft(task *Task) *store.Task
- func UpdatePolicyFromRaft(raftUpdatePolicy *store.UpdatePolicy) *types.UpdatePolicy
- func UpdatePolicyToRaft(updatePolicy *types.UpdatePolicy) *store.UpdatePolicy
- func VersionFromRaft(raftVersion *store.Version) *types.Version
- func VersionToRaft(version *types.Version, appID string) *store.Version
- func VolumeFromFaft(raftVolume *store.Volume) *types.Volume
- func VolumeToRaft(volume *types.Volume) *store.Volume
- type AndStatement
- type App
- func (app *App) CancelUpdate() error
- func (app *App) Delete() error
- func (app *App) EmitAppEvent(stateString string)
- func (app *App) GetSlot(index int) (*Slot, bool)
- func (app *App) GetSlots() []*Slot
- func (app *App) IsFixed() bool
- func (app *App) IsReplicates() bool
- func (app *App) ProceedingRollingUpdate(instances int, newWeights map[string]float64) error
- func (app *App) Remove()
- func (app *App) RemoveSlot(index int)
- func (app *App) SaveVersion(version *types.Version)
- func (app *App) ScaleDown(removeInstances int) error
- func (app *App) ScaleUp(newInstances int, newIps []string) error
- func (app *App) ServiceDiscoveryURL() string
- func (app *App) SetSlot(index int, slot *Slot)
- func (app *App) StateIs(state string) bool
- func (app *App) Step()
- func (app *App) Touch()
- func (app *App) TransitTo(targetState string, args ...interface{}) error
- func (app *App) Update(version *types.Version) error
- type AppMode
- type AppsByUpdated
- type ConstraintParamHolder
- type ConstraintParser
- type ContainsStatement
- type EqualStatement
- type LikeStatement
- type NotStatement
- type OfferAllocator
- func (allocator *OfferAllocator) PutSlotBackToPendingQueue(slot *Slot)
- func (allocator *OfferAllocator) RemoveOfferSlotMapByOfferId(offerId string)
- func (allocator *OfferAllocator) RemoveOfferSlotMapBySlot(slot *Slot)
- func (allocator *OfferAllocator) RemoveSlotFromAllocator(slot *Slot)
- func (allocator *OfferAllocator) RemoveSlotFromPendingOfferQueue(slot *Slot)
- func (allocator *OfferAllocator) RetrieveSlotIdByOfferId(offerId string) (string, error)
- func (allocator *OfferAllocator) SetOfferSlotMap(offer *mesos.Offer, slot *Slot)
- func (allocator *OfferAllocator) ShiftNextPendingOffer() *Slot
- func (allocator *OfferAllocator) SlotsByAgentID(agentID string) []string
- func (allocator *OfferAllocator) SlotsByHostname(hostname string) []string
- type OfferInfo
- type OfferWrapper
- type OrStatement
- type RestartPolicy
- type Slot
- func (slot *Slot) Abnormal() bool
- func (slot *Slot) Archive()
- func (slot *Slot) BuildTaskEvent(eventType string) *eventbus.Event
- func (slot *Slot) DispatchNewTask(version *types.Version)
- func (slot *Slot) Dispatched() bool
- func (slot *Slot) EmitTaskEvent(eventType string)
- func (slot *Slot) GetWeight() float64
- func (slot *Slot) Healthy() bool
- func (slot *Slot) KillTask()
- func (slot *Slot) Remove()
- func (slot *Slot) ReserveOfferAndPrepareTaskInfo(ow *OfferWrapper) (*OfferWrapper, *mesos.TaskInfo)
- func (slot *Slot) ResourcesNeeded() []*mesos.Resource
- func (slot *Slot) ResourcesUsed() *SlotResource
- func (slot *Slot) ServiceDiscoveryURL() string
- func (slot *Slot) SetHealthy(healthy bool)
- func (slot *Slot) SetState(state string) error
- func (slot *Slot) SetWeight(newWeight float64)
- func (slot *Slot) StateIs(state string) bool
- func (slot *Slot) StopRestartPolicy()
- func (slot *Slot) TestOfferMatch(ow *OfferWrapper) bool
- func (slot *Slot) Touch()
- func (slot *Slot) UpdateOfferInfo(offer *mesos.Offer) error
- type SlotResource
- type SlotsById
- type State
- type StateCancelUpdate
- type StateCreating
- type StateDeleting
- func (deleting *StateDeleting) CanTransitTo(targetState string) bool
- func (deleting *StateDeleting) OnEnter()
- func (deleting *StateDeleting) OnExit()
- func (deleting *StateDeleting) SlotSafeToRemoveFromApp(slot *Slot) bool
- func (deleting *StateDeleting) StateName() string
- func (deleting *StateDeleting) Step()
- type StateMachine
- func (machine *StateMachine) CanTransitTo(targetStateString string) bool
- func (machine *StateMachine) CurrentState() State
- func (machine *StateMachine) Is(stateExpected string) bool
- func (machine *StateMachine) ReadableState() string
- func (machine *StateMachine) Start(startState State)
- func (machine *StateMachine) Step()
- func (machine *StateMachine) TransitTo(targetState State) error
- type StateNormal
- type StateScaleDown
- func (scaleDown *StateScaleDown) CanTransitTo(targetState string) bool
- func (scaleDown *StateScaleDown) OnEnter()
- func (scaleDown *StateScaleDown) OnExit()
- func (scaleDown *StateScaleDown) SlotSafeToRemoveFromApp(slot *Slot) bool
- func (scaleDown *StateScaleDown) StateName() string
- func (scaleDown *StateScaleDown) Step()
- type StateScaleUp
- type StateUpdating
- type Statement
- type Task
- type TaskBuilder
- func (builder *TaskBuilder) AppendContainerDockerEnvironments(envs map[string]string) *TaskBuilder
- func (builder *TaskBuilder) AppendContainerDockerParameters(parameters []*types.Parameter) *TaskBuilder
- func (builder *TaskBuilder) AppendContainerDockerVolumes(volumes []*types.Volume) *TaskBuilder
- func (builder *TaskBuilder) AppendTaskInfoLabels(labelMap map[string]string) *TaskBuilder
- func (builder *TaskBuilder) GetTaskInfo() *mesos.TaskInfo
- func (builder *TaskBuilder) SetAgentId(agentId string) *TaskBuilder
- func (builder *TaskBuilder) SetCommand(cmd string, args []string) *TaskBuilder
- func (builder *TaskBuilder) SetContainerDockerForcePullImage(force bool) *TaskBuilder
- func (builder *TaskBuilder) SetContainerDockerImage(image string) *TaskBuilder
- func (builder *TaskBuilder) SetContainerDockerPrivileged(privileged bool) *TaskBuilder
- func (builder *TaskBuilder) SetContainerType(containerType string) *TaskBuilder
- func (builder *TaskBuilder) SetHealthCheck(healthCheck *types.HealthCheck) *TaskBuilder
- func (builder *TaskBuilder) SetName(name string) *TaskBuilder
- func (builder *TaskBuilder) SetNetwork(network string, portsAvailable []uint64) *TaskBuilder
- func (builder *TaskBuilder) SetResources(resources []*mesos.Resource) *TaskBuilder
- func (builder *TaskBuilder) SetTaskId(taskId string) *TaskBuilder
- func (builder *TaskBuilder) SetURIs(uriList []string) *TaskBuilder
- type TestAndRestartFunc
- type UniqueStatment
Constants ¶
const ( APP_STATE_NORMAL = "normal" APP_STATE_CREATING = "creating" APP_STATE_DELETING = "deleting" APP_STATE_UPDATING = "updating" APP_STATE_CANCEL_UPDATE = "cancel_update" APP_STATE_SCALE_UP = "scale_up" APP_STATE_SCALE_DOWN = "scale_down" )
const ( SLOT_STATE_PENDING_OFFER = "slot_task_pending_offer" SLOT_STATE_PENDING_KILL = "slot_task_pending_killed" SLOT_STATE_REAP = "slot_task_reap" SLOT_STATE_TASK_STAGING = "slot_task_staging" SLOT_STATE_TASK_STARTING = "slot_task_starting" SLOT_STATE_TASK_RUNNING = "slot_task_running" SLOT_STATE_TASK_KILLING = "slot_task_killing" SLOT_STATE_TASK_FINISHED = "slot_task_finished" SLOT_STATE_TASK_FAILED = "slot_task_failed" SLOT_STATE_TASK_KILLED = "slot_task_killed" SLOT_STATE_TASK_ERROR = "slot_task_error" SLOT_STATE_TASK_LOST = "slot_task_lost" SLOT_STATE_TASK_DROPPED = "slot_task_dropped" SLOT_STATE_TASK_UNREACHABLE = "slot_task_unreachable" SLOT_STATE_TASK_GONE = "slot_task_gone" SLOT_STATE_TASK_GONE_BY_OPERATOR = "slot_task_gone_by_operator" SLOT_STATE_TASK_UNKNOWN = "slot_task_unknown" )
const AND = 57346
const CONTAINS = 57350
const (
DEFUALT_WEIGHT = float64(100)
)
const EQUAL = 57352
const IDENTIFIER = 57353
const LIKE = 57349
const NOT = 57351
const OR = 57347
const UNIQUE = 57348
Variables ¶
var ValidNextTransitionState = []string{ APP_STATE_CANCEL_UPDATE, APP_STATE_DELETING, APP_STATE_UPDATING, APP_STATE_NORMAL, }
Functions ¶
func AppToRaft ¶
func AppToRaft(app *App) *store.Application
func HealthCheckFromRaft ¶
func HealthCheckFromRaft(raftHealthCheck *store.HealthCheck) *types.HealthCheck
func HealthCheckToRaft ¶
func HealthCheckToRaft(healthCheck *types.HealthCheck) *store.HealthCheck
func KillPolicyFromRaft ¶
func KillPolicyFromRaft(raftKillPolicy *store.KillPolicy) *types.KillPolicy
func KillPolicyToRaft ¶
func KillPolicyToRaft(killPolicy *types.KillPolicy) *store.KillPolicy
func LoadAppData ¶
load app data frm persistent data
func LoadOfferAllocatorMap ¶
func OfferAllocatorItemToRaft ¶
func OfferAllocatorItemToRaft(slotID string, offerInfo *OfferInfo) *store.OfferAllocatorItem
func PortMappingFromRaft ¶
func PortMappingFromRaft(raftPortMapping *store.PortMapping) *types.PortMapping
func PortMappingToRaft ¶
func PortMappingToRaft(portMapping *types.PortMapping) *store.PortMapping
func SlotToRaft ¶
func StateMachineToRaft ¶
func StateMachineToRaft(machine *StateMachine) *store.StateMachine
func StateToRaft ¶
func TaskToRaft ¶
func UpdatePolicyFromRaft ¶
func UpdatePolicyFromRaft(raftUpdatePolicy *store.UpdatePolicy) *types.UpdatePolicy
func UpdatePolicyToRaft ¶
func UpdatePolicyToRaft(updatePolicy *types.UpdatePolicy) *store.UpdatePolicy
Types ¶
type AndStatement ¶
and (unique hostname) (unique ip) and (not (unique hostname)) (unique ip)
func (*AndStatement) Eval ¶
func (as *AndStatement) Eval() bool
func (*AndStatement) SetContext ¶
func (as *AndStatement) SetContext(ctx *ConstraintParamHolder)
func (*AndStatement) Valid ¶
func (as *AndStatement) Valid() error
type App ¶
type App struct {
ID string `json:"id"`
Name string `json:"name"`
Versions []*types.Version `json:"versions"`
Slots map[int]*Slot `json:"slots"`
// app run with CurrentVersion config
CurrentVersion *types.Version `json:"current_version"`
// use when app updated, ProposedVersion can either be commit or revert
ProposedVersion *types.Version `json:"proposed_version"`
Mode AppMode `json:"mode"` // fixed or repliactes
Created time.Time
Updated time.Time
StateMachine *StateMachine
ClusterID string
UserEventChan chan *event.UserEvent
// contains filtered or unexported fields
}
func (*App) CancelUpdate ¶
func (*App) Delete ¶
delete a application and all related objects: versions, tasks, slots, proxies, dns record
func (*App) EmitAppEvent ¶
func (*App) IsReplicates ¶
func (*App) ProceedingRollingUpdate ¶
func (*App) RemoveSlot ¶
func (*App) SaveVersion ¶
func (*App) ServiceDiscoveryURL ¶
type AppsByUpdated ¶
type AppsByUpdated []*App
func (AppsByUpdated) Len ¶
func (a AppsByUpdated) Len() int
func (AppsByUpdated) Less ¶
func (a AppsByUpdated) Less(i, j int) bool
func (AppsByUpdated) Swap ¶
func (a AppsByUpdated) Swap(i, j int)
type ConstraintParamHolder ¶
type ConstraintParser ¶
func (*ConstraintParser) Error ¶
func (l *ConstraintParser) Error(e string)
func (*ConstraintParser) Lex ¶
func (l *ConstraintParser) Lex(lval *yySymType) int
type ContainsStatement ¶
type ContainsStatement struct {
ConstraintParamHolder
What string
Regex string
}
contains hostname barfoo
func (*ContainsStatement) Eval ¶
func (cs *ContainsStatement) Eval() bool
func (*ContainsStatement) SetContext ¶
func (cs *ContainsStatement) SetContext(ctx *ConstraintParamHolder)
func (*ContainsStatement) Valid ¶
func (cs *ContainsStatement) Valid() error
type EqualStatement ¶
type EqualStatement struct {
ConstraintParamHolder
What string
Regex string
}
equal hostname xxxx
func (*EqualStatement) Eval ¶
func (ls *EqualStatement) Eval() bool
func (*EqualStatement) SetContext ¶
func (ls *EqualStatement) SetContext(ctx *ConstraintParamHolder)
func (*EqualStatement) Valid ¶
func (ls *EqualStatement) Valid() error
type LikeStatement ¶
type LikeStatement struct {
ConstraintParamHolder
What string
Regex string
}
like hostname foobar*
func (*LikeStatement) Eval ¶
func (ls *LikeStatement) Eval() bool
func (*LikeStatement) SetContext ¶
func (ls *LikeStatement) SetContext(ctx *ConstraintParamHolder)
func (*LikeStatement) Valid ¶
func (ls *LikeStatement) Valid() error
type NotStatement ¶
type NotStatement struct {
Op1 Statement
}
not (unique hostname)
func (*NotStatement) Eval ¶
func (ns *NotStatement) Eval() bool
func (*NotStatement) SetContext ¶
func (ns *NotStatement) SetContext(ctx *ConstraintParamHolder)
func (*NotStatement) Valid ¶
func (ns *NotStatement) Valid() error
type OfferAllocator ¶
type OfferAllocator struct {
PendingOfferSlots []*Slot
// slotid -> offerinfo
AllocatedOffer map[string]*OfferInfo // we store every offer that are occupied by running slot
// contains filtered or unexported fields
}
func OfferAllocatorInstance ¶
func OfferAllocatorInstance() *OfferAllocator
func (*OfferAllocator) PutSlotBackToPendingQueue ¶
func (allocator *OfferAllocator) PutSlotBackToPendingQueue(slot *Slot)
func (*OfferAllocator) RemoveOfferSlotMapByOfferId ¶
func (allocator *OfferAllocator) RemoveOfferSlotMapByOfferId(offerId string)
func (*OfferAllocator) RemoveOfferSlotMapBySlot ¶
func (allocator *OfferAllocator) RemoveOfferSlotMapBySlot(slot *Slot)
NOTE Lock & raft write may cause performance problems
func (*OfferAllocator) RemoveSlotFromAllocator ¶
func (allocator *OfferAllocator) RemoveSlotFromAllocator(slot *Slot)
func (*OfferAllocator) RemoveSlotFromPendingOfferQueue ¶
func (allocator *OfferAllocator) RemoveSlotFromPendingOfferQueue(slot *Slot)
func (*OfferAllocator) RetrieveSlotIdByOfferId ¶
func (allocator *OfferAllocator) RetrieveSlotIdByOfferId(offerId string) (string, error)
func (*OfferAllocator) SetOfferSlotMap ¶
func (allocator *OfferAllocator) SetOfferSlotMap(offer *mesos.Offer, slot *Slot)
NOTE Lock & raft write may cause performance problems
func (*OfferAllocator) ShiftNextPendingOffer ¶
func (allocator *OfferAllocator) ShiftNextPendingOffer() *Slot
func (*OfferAllocator) SlotsByAgentID ¶
func (allocator *OfferAllocator) SlotsByAgentID(agentID string) []string
func (*OfferAllocator) SlotsByHostname ¶
func (allocator *OfferAllocator) SlotsByHostname(hostname string) []string
type OfferInfo ¶
func OfferAllocatorItemFromRaft ¶
func OfferAllocatorItemFromRaft(item *store.OfferAllocatorItem) (slotID string, offerInfo *OfferInfo)
type OfferWrapper ¶
type OfferWrapper struct {
Offer *mesos.Offer
CpusUsed float64
MemUsed float64
DiskUsed float64
PortUsedSize int
}
wrapper offer to record offer reserve history
func NewOfferWrapper ¶
func NewOfferWrapper(offer *mesos.Offer) *OfferWrapper
func (*OfferWrapper) CpuRemain ¶
func (ow *OfferWrapper) CpuRemain() float64
func (*OfferWrapper) DiskRemain ¶
func (ow *OfferWrapper) DiskRemain() float64
func (*OfferWrapper) MemRemain ¶
func (ow *OfferWrapper) MemRemain() float64
func (*OfferWrapper) PortsRemain ¶
func (ow *OfferWrapper) PortsRemain() []uint64
type OrStatement ¶
type OrStatement struct {
ConstraintParamHolder
Op1 Statement
Op2 Statement
}
or (like ip foobar) (unique hostname)
func (*OrStatement) Eval ¶
func (os *OrStatement) Eval() bool
func (*OrStatement) SetContext ¶
func (os *OrStatement) SetContext(ctx *ConstraintParamHolder)
func (*OrStatement) Valid ¶
func (os *OrStatement) Valid() error
type RestartPolicy ¶
type RestartPolicy struct {
BackoffSeconds time.Duration
BackoffFactor float64
MaxLaunchDelaySeconds time.Duration
// contains filtered or unexported fields
}
func NewRestartPolicy ¶
func NewRestartPolicy(slot *Slot, BackoffSeconds time.Duration, BackoffFactor float64, MaxLaunchDelaySeconds time.Duration, restartFunc TestAndRestartFunc) *RestartPolicy
func (*RestartPolicy) Stop ¶
func (rs *RestartPolicy) Stop()
type Slot ¶
type Slot struct {
Index int
ID string
App *App
Version *types.Version
State string
CurrentTask *Task
TaskHistory []*Task
OfferID string
AgentID string
Ip string
AgentHostName string
// contains filtered or unexported fields
}
func LoadAppSlots ¶
func (*Slot) DispatchNewTask ¶
func (*Slot) Dispatched ¶
func (*Slot) EmitTaskEvent ¶
func (*Slot) KillTask ¶
func (slot *Slot) KillTask()
kill task doesn't need cleanup slot from app.Slots
func (*Slot) ReserveOfferAndPrepareTaskInfo ¶
func (slot *Slot) ReserveOfferAndPrepareTaskInfo(ow *OfferWrapper) (*OfferWrapper, *mesos.TaskInfo)
func (*Slot) ResourcesNeeded ¶
func (*Slot) ResourcesUsed ¶
func (slot *Slot) ResourcesUsed() *SlotResource
func (*Slot) ServiceDiscoveryURL ¶
func (*Slot) SetHealthy ¶
func (*Slot) StopRestartPolicy ¶
func (slot *Slot) StopRestartPolicy()
func (*Slot) TestOfferMatch ¶
func (slot *Slot) TestOfferMatch(ow *OfferWrapper) bool
type SlotResource ¶
type State ¶
type StateCancelUpdate ¶
type StateCancelUpdate struct {
Name string
App *App
CurrentSlot *Slot
CurrentSlotIndex int
TargetSlotIndex int
// contains filtered or unexported fields
}
func NewStateCancelUpdate ¶
func NewStateCancelUpdate(app *App) *StateCancelUpdate
func (*StateCancelUpdate) CanTransitTo ¶
func (cancelUpdate *StateCancelUpdate) CanTransitTo(targetState string) bool
state machine can transit to any state if current state is cancelUpdate
func (*StateCancelUpdate) OnEnter ¶
func (cancelUpdate *StateCancelUpdate) OnEnter()
func (*StateCancelUpdate) OnExit ¶
func (cancelUpdate *StateCancelUpdate) OnExit()
func (*StateCancelUpdate) StateName ¶
func (cancelUpdate *StateCancelUpdate) StateName() string
func (*StateCancelUpdate) Step ¶
func (cancelUpdate *StateCancelUpdate) Step()
type StateCreating ¶
type StateCreating struct {
Name string
App *App
CurrentSlot *Slot
CurrentSlotIndex int
TargetSlotIndex int
// contains filtered or unexported fields
}
func NewStateCreating ¶
func NewStateCreating(app *App) *StateCreating
func (*StateCreating) CanTransitTo ¶
func (creating *StateCreating) CanTransitTo(targetState string) bool
state machine can transit to any state if current state is creating
func (*StateCreating) OnEnter ¶
func (creating *StateCreating) OnEnter()
func (*StateCreating) OnExit ¶
func (creating *StateCreating) OnExit()
func (*StateCreating) StateName ¶
func (creating *StateCreating) StateName() string
func (*StateCreating) Step ¶
func (creating *StateCreating) Step()
type StateDeleting ¶
type StateDeleting struct {
Name string
App *App
CurrentSlot *Slot
CurrentSlotIndex int
TargetSlotIndex int
// contains filtered or unexported fields
}
func NewStateDeleting ¶
func NewStateDeleting(app *App) *StateDeleting
func (*StateDeleting) CanTransitTo ¶
func (deleting *StateDeleting) CanTransitTo(targetState string) bool
state machine can transit to any state if current state is deleting
func (*StateDeleting) OnEnter ¶
func (deleting *StateDeleting) OnEnter()
func (*StateDeleting) OnExit ¶
func (deleting *StateDeleting) OnExit()
func (*StateDeleting) SlotSafeToRemoveFromApp ¶
func (deleting *StateDeleting) SlotSafeToRemoveFromApp(slot *Slot) bool
func (*StateDeleting) StateName ¶
func (deleting *StateDeleting) StateName() string
func (*StateDeleting) Step ¶
func (deleting *StateDeleting) Step()
type StateMachine ¶
func NewStateMachine ¶
func NewStateMachine() *StateMachine
default state for a new statemachine is creating
func StateMachineFromRaft ¶
func StateMachineFromRaft(app *App, machine *store.StateMachine) *StateMachine
func (*StateMachine) CanTransitTo ¶
func (machine *StateMachine) CanTransitTo(targetStateString string) bool
test if targetState is changable
func (*StateMachine) CurrentState ¶
func (machine *StateMachine) CurrentState() State
func (*StateMachine) Is ¶
func (machine *StateMachine) Is(stateExpected string) bool
test machine.state is stateExpected
func (*StateMachine) ReadableState ¶
func (machine *StateMachine) ReadableState() string
func (*StateMachine) Start ¶
func (machine *StateMachine) Start(startState State)
func (*StateMachine) TransitTo ¶
func (machine *StateMachine) TransitTo(targetState State) error
transition from one state to another, return error if not a valid transtion condition
type StateNormal ¶
func NewStateNormal ¶
func NewStateNormal(app *App) *StateNormal
func (*StateNormal) CanTransitTo ¶
func (normal *StateNormal) CanTransitTo(targetState string) bool
state machine can transit to any state if current state is normal
func (*StateNormal) OnEnter ¶
func (normal *StateNormal) OnEnter()
func (*StateNormal) OnExit ¶
func (normal *StateNormal) OnExit()
func (*StateNormal) StateName ¶
func (normal *StateNormal) StateName() string
func (*StateNormal) Step ¶
func (normal *StateNormal) Step()
type StateScaleDown ¶
type StateScaleDown struct {
Name string
App *App
CurrentSlot *Slot
CurrentSlotIndex int
TargetSlotIndex int
// contains filtered or unexported fields
}
func NewStateScaleDown ¶
func NewStateScaleDown(app *App) *StateScaleDown
func (*StateScaleDown) CanTransitTo ¶
func (scaleDown *StateScaleDown) CanTransitTo(targetState string) bool
state machine can transit to any state if current state is scaleDown
func (*StateScaleDown) OnEnter ¶
func (scaleDown *StateScaleDown) OnEnter()
func (*StateScaleDown) OnExit ¶
func (scaleDown *StateScaleDown) OnExit()
func (*StateScaleDown) SlotSafeToRemoveFromApp ¶
func (scaleDown *StateScaleDown) SlotSafeToRemoveFromApp(slot *Slot) bool
func (*StateScaleDown) StateName ¶
func (scaleDown *StateScaleDown) StateName() string
func (*StateScaleDown) Step ¶
func (scaleDown *StateScaleDown) Step()
type StateScaleUp ¶
type StateScaleUp struct {
Name string
App *App
CurrentSlot *Slot
CurrentSlotIndex int
TargetSlotIndex int
// contains filtered or unexported fields
}
func NewStateScaleUp ¶
func NewStateScaleUp(app *App) *StateScaleUp
func (*StateScaleUp) CanTransitTo ¶
func (scaleUp *StateScaleUp) CanTransitTo(targetState string) bool
state machine can transit to any state if current state is scaleUp
func (*StateScaleUp) OnEnter ¶
func (scaleUp *StateScaleUp) OnEnter()
func (*StateScaleUp) OnExit ¶
func (scaleUp *StateScaleUp) OnExit()
func (*StateScaleUp) StateName ¶
func (scaleUp *StateScaleUp) StateName() string
func (*StateScaleUp) Step ¶
func (scaleUp *StateScaleUp) Step()
type StateUpdating ¶
type StateUpdating struct {
Name string
App *App
CurrentSlot *Slot
CurrentSlotIndex int
TargetSlotIndex int
SlotCountNeedUpdate int
// contains filtered or unexported fields
}
func NewStateUpdating ¶
func NewStateUpdating(app *App, slotCountNeedUpdate int) *StateUpdating
func (*StateUpdating) CanTransitTo ¶
func (updating *StateUpdating) CanTransitTo(targetState string) bool
state machine can transit to any state if current state is updating
func (*StateUpdating) OnEnter ¶
func (updating *StateUpdating) OnEnter()
func (*StateUpdating) OnExit ¶
func (updating *StateUpdating) OnExit()
func (*StateUpdating) StateName ¶
func (updating *StateUpdating) StateName() string
func (*StateUpdating) Step ¶
func (updating *StateUpdating) Step()
type Statement ¶
type Statement interface {
Eval() bool
Valid() error
SetContext(ctx *ConstraintParamHolder)
}
func ParseConstraint ¶
type Task ¶
type Task struct {
ID string
Version *types.Version
Slot *Slot
State string
Stdout string
Stderr string
HostPorts []uint64
OfferID string
AgentID string
Ip string
AgentHostName string
Reason string // mesos updateStatus field
Message string // mesos updateStatus field
Source string // mesos updateStatus field
ContainerId string
ContainerName string
Created time.Time
ArchivedAt time.Time
// contains filtered or unexported fields
}
func (*Task) PrepareTaskInfo ¶
func (task *Task) PrepareTaskInfo(ow *OfferWrapper) *mesos.TaskInfo
type TaskBuilder ¶
type TaskBuilder struct {
HostPorts []uint64
// contains filtered or unexported fields
}
func NewTaskBuilder ¶
func NewTaskBuilder(task *Task) *TaskBuilder
func (*TaskBuilder) AppendContainerDockerEnvironments ¶
func (builder *TaskBuilder) AppendContainerDockerEnvironments(envs map[string]string) *TaskBuilder
func (*TaskBuilder) AppendContainerDockerParameters ¶
func (builder *TaskBuilder) AppendContainerDockerParameters(parameters []*types.Parameter) *TaskBuilder
func (*TaskBuilder) AppendContainerDockerVolumes ¶
func (builder *TaskBuilder) AppendContainerDockerVolumes(volumes []*types.Volume) *TaskBuilder
func (*TaskBuilder) AppendTaskInfoLabels ¶
func (builder *TaskBuilder) AppendTaskInfoLabels(labelMap map[string]string) *TaskBuilder
func (*TaskBuilder) GetTaskInfo ¶
func (builder *TaskBuilder) GetTaskInfo() *mesos.TaskInfo
func (*TaskBuilder) SetAgentId ¶
func (builder *TaskBuilder) SetAgentId(agentId string) *TaskBuilder
func (*TaskBuilder) SetCommand ¶
func (builder *TaskBuilder) SetCommand(cmd string, args []string) *TaskBuilder
func (*TaskBuilder) SetContainerDockerForcePullImage ¶
func (builder *TaskBuilder) SetContainerDockerForcePullImage(force bool) *TaskBuilder
func (*TaskBuilder) SetContainerDockerImage ¶
func (builder *TaskBuilder) SetContainerDockerImage(image string) *TaskBuilder
func (*TaskBuilder) SetContainerDockerPrivileged ¶
func (builder *TaskBuilder) SetContainerDockerPrivileged(privileged bool) *TaskBuilder
func (*TaskBuilder) SetContainerType ¶
func (builder *TaskBuilder) SetContainerType(containerType string) *TaskBuilder
func (*TaskBuilder) SetHealthCheck ¶
func (builder *TaskBuilder) SetHealthCheck(healthCheck *types.HealthCheck) *TaskBuilder
func (*TaskBuilder) SetName ¶
func (builder *TaskBuilder) SetName(name string) *TaskBuilder
func (*TaskBuilder) SetNetwork ¶
func (builder *TaskBuilder) SetNetwork(network string, portsAvailable []uint64) *TaskBuilder
func (*TaskBuilder) SetResources ¶
func (builder *TaskBuilder) SetResources(resources []*mesos.Resource) *TaskBuilder
func (*TaskBuilder) SetTaskId ¶
func (builder *TaskBuilder) SetTaskId(taskId string) *TaskBuilder
func (*TaskBuilder) SetURIs ¶
func (builder *TaskBuilder) SetURIs(uriList []string) *TaskBuilder
type TestAndRestartFunc ¶
type UniqueStatment ¶
type UniqueStatment struct {
ConstraintParamHolder
What string
}
(unique hostname)
func (*UniqueStatment) Eval ¶
func (us *UniqueStatment) Eval() bool
func (*UniqueStatment) SetContext ¶
func (us *UniqueStatment) SetContext(ctx *ConstraintParamHolder)
func (*UniqueStatment) Valid ¶
func (us *UniqueStatment) Valid() error