Documentation ¶
Index ¶
- Variables
- type AnonymousStateMainEnter
- type Event
- type EventChecker
- type EventName
- type KubeObjectLock
- type StableStateMainEnter
- type State
- type StateMachine
- func (sm *StateMachine) CheckSetStateTranslate(nowState State, obj StateResource) (State, error)
- func (sm *StateMachine) DoStateMainEnter(obj StateResource) error
- func (sm *StateMachine) RegisterIgnoreEvents(ignoreEvents []string) *StateMachine
- func (sm *StateMachine) RegisterLogger(logger logr.Logger) *StateMachine
- func (sm *StateMachine) RegisterStableState(states ...State)
- func (sm *StateMachine) RegisterStateMainEnter(state State, action func(obj StateResource) error)
- func (sm *StateMachine) RegisterStateTranslate(beforeState State, eventChecker EventChecker, afterState State)
- func (sm *StateMachine) RegisterStateTranslateMainEnter(beforeState State, eventChecker EventChecker, afterState State, ...)
- type StateMainEnter
- type StateResource
Constants ¶
This section is empty.
Variables ¶
View Source
var ObjectLockIns = KubeObjectLock{}
Functions ¶
This section is empty.
Types ¶
type AnonymousStateMainEnter ¶
type AnonymousStateMainEnter struct {
// contains filtered or unexported fields
}
func (*AnonymousStateMainEnter) GetName ¶
func (e *AnonymousStateMainEnter) GetName() string
func (*AnonymousStateMainEnter) MainEnter ¶
func (e *AnonymousStateMainEnter) MainEnter(obj StateResource) error
type Event ¶
func CreateEvent ¶
type EventChecker ¶
type EventChecker func(resource StateResource) (*Event, error)
type KubeObjectLock ¶
type KubeObjectLock struct {
// contains filtered or unexported fields
}
func (*KubeObjectLock) GetLock ¶
func (dl *KubeObjectLock) GetLock(obj StateResource) *sync.Mutex
type StableStateMainEnter ¶
type StableStateMainEnter struct {
// contains filtered or unexported fields
}
稳定状态,一直在等待event触发自身状态发生变化,除此以外,不做任何动作
func (*StableStateMainEnter) GetName ¶
func (ss *StableStateMainEnter) GetName() string
func (*StableStateMainEnter) MainEnter ¶
func (ss *StableStateMainEnter) MainEnter(obj StateResource) error
type StateMachine ¶
type StateMachine struct { Logger logr.Logger ResourceType string // contains filtered or unexported fields }
func CreateStateMachineInstance ¶
func CreateStateMachineInstance(resourceType string) *StateMachine
func (*StateMachine) CheckSetStateTranslate ¶
func (sm *StateMachine) CheckSetStateTranslate(nowState State, obj StateResource) (State, error)
检查当前状态下是否有需要transfer的事件发生. 如果发现 state change, 设置变更后的状态.
func (*StateMachine) DoStateMainEnter ¶
func (sm *StateMachine) DoStateMainEnter(obj StateResource) error
func (*StateMachine) RegisterIgnoreEvents ¶
func (sm *StateMachine) RegisterIgnoreEvents(ignoreEvents []string) *StateMachine
func (*StateMachine) RegisterLogger ¶
func (sm *StateMachine) RegisterLogger(logger logr.Logger) *StateMachine
func (*StateMachine) RegisterStableState ¶
func (sm *StateMachine) RegisterStableState(states ...State)
注册稳定状态, 等待有事件触发,离开当前状态.
func (*StateMachine) RegisterStateMainEnter ¶
func (sm *StateMachine) RegisterStateMainEnter(state State, action func(obj StateResource) error)
注册资源进入某非稳定状态要执行的动作
func (*StateMachine) RegisterStateTranslate ¶
func (sm *StateMachine) RegisterStateTranslate(beforeState State, eventChecker EventChecker, afterState State)
资源处于稳定状态(beforeState),通过eventCheckFunc检查是否发生了更新,发生更新则触发事件,并将资源状态变为非稳定态(afterState) 非稳定态都通过RegisterStateMainEnter注册了入口方法
func (*StateMachine) RegisterStateTranslateMainEnter ¶
func (sm *StateMachine) RegisterStateTranslateMainEnter(beforeState State, eventChecker EventChecker, afterState State, action func(obj StateResource) error)
type StateMainEnter ¶
type StateMainEnter interface { MainEnter(obj StateResource) error GetName() string }
type StateResource ¶
type StateResource interface { GetName() string GetNamespace() string Fetch() (StateResource, error) GetState() State UpdateState(State) (StateResource, error) IsCancelled() bool }
支持状态机的资源
Click to show internal directories.
Click to hide internal directories.