Documentation ¶
Index ¶
- Constants
- Variables
- func DefaultUserInfoParser(req *bindings.InvokeRequest, object *UserInfo) error
- func ParseObjFromRequest[T customizedObjType](req *bindings.InvokeRequest, parse objectParser[T], ...) error
- func SentProbeEvent(ctx context.Context, opsResult OpsResult, log logger.Logger)
- func SortRoleByWeight(r1, r2 RoleType) bool
- func String2RoleType(roleName string) RoleType
- func UserNameAndPasswdValidator(user UserInfo) error
- func UserNameAndRoleValidator(user UserInfo) error
- func UserNameValidator(user UserInfo) error
- type AccessMode
- type BaseInternalOps
- type BaseOperations
- func (ops *BaseOperations) CheckRoleOps(ctx context.Context, req *bindings.InvokeRequest, ...) (OpsResult, error)
- func (ops *BaseOperations) CheckRunningOps(ctx context.Context, req *bindings.InvokeRequest, ...) (OpsResult, error)
- func (ops *BaseOperations) GetRoleOps(ctx context.Context, req *bindings.InvokeRequest, ...) (OpsResult, error)
- func (ops *BaseOperations) Init(metadata bindings.Metadata)
- func (ops *BaseOperations) Invoke(ctx context.Context, req *bindings.InvokeRequest) (*bindings.InvokeResponse, error)
- func (ops *BaseOperations) JoinMemberOps(ctx context.Context, req *bindings.InvokeRequest, ...) (OpsResult, error)
- func (ops *BaseOperations) LeaveMemberOps(ctx context.Context, req *bindings.InvokeRequest, ...) (OpsResult, error)
- func (ops *BaseOperations) LockOps(ctx context.Context, req *bindings.InvokeRequest, rsp *bindings.InvokeResponse) (OpsResult, error)
- func (ops *BaseOperations) Operations() []bindings.OperationKind
- func (ops *BaseOperations) RegisterOperation(opsKind bindings.OperationKind, operation Operation)
- func (ops *BaseOperations) RegisterOperationOnDBReady(opsKind bindings.OperationKind, operation Operation, ...)
- func (ops *BaseOperations) SwitchoverOps(ctx context.Context, req *bindings.InvokeRequest, ...) (OpsResult, error)
- func (ops *BaseOperations) UnlockOps(ctx context.Context, req *bindings.InvokeRequest, rsp *bindings.InvokeResponse) (OpsResult, error)
- func (ops *BaseOperations) VolumeProtectionOps(ctx context.Context, req *bindings.InvokeRequest, rsp *bindings.InvokeResponse) (OpsResult, error)
- type Operation
- type OpsResult
- type RedisEntry
- type SlaveStatus
Constants ¶
const ( ReadWrite AccessMode = "ReadWrite" Readonly AccessMode = "Readonly" None AccessMode = "None" // keys from response's metadata. RespOpKey = "operation" RespStartTimeKey = "start-time" RespRowsAffectedKey = "rows-affected" RespEndTimeKey = "end-time" RespDurationKey = "duration" StatusCode = "status-code" // 451 Unavailable For Legal Reasons, used to indicate operation failed. OperationFailedHTTPCode = "451" // 404 Not Found, used to indicate operation not found. OperationNotFoundHTTPCode = "404" // CommandSQLKey keys from request's metadata. CommandSQLKey = "sql" )
const ( // types for probe CheckRunningType int = iota CheckStatusType CheckRoleChangedType )
const ( PRIMARY = "primary" SECONDARY = "secondary" MASTER = "master" SLAVE = "slave" LEADER = "Leader" FOLLOWER = "Follower" LEARNER = "Learner" CANDIDATE = "Candidate" )
Variables ¶
Functions ¶
func DefaultUserInfoParser ¶
func DefaultUserInfoParser(req *bindings.InvokeRequest, object *UserInfo) error
func ParseObjFromRequest ¶
func ParseObjFromRequest[T customizedObjType](req *bindings.InvokeRequest, parse objectParser[T], validator objectValidator[T], object *T) error
func SentProbeEvent ¶
func SortRoleByWeight ¶
func SortRoleByWeight(r1, r2 RoleType) bool
func String2RoleType ¶
func String2RoleType(roleName string) RoleType
func UserNameAndPasswdValidator ¶
func UserNameAndPasswdValidator(user UserInfo) error
func UserNameAndRoleValidator ¶
func UserNameAndRoleValidator(user UserInfo) error
func UserNameValidator ¶
func UserNameValidator(user UserInfo) error
Types ¶
type BaseInternalOps ¶
type BaseOperations ¶
type BaseOperations struct { CheckRunningFailedCount int CheckStatusFailedCount int CheckRoleFailedCount int RoleUnchangedCount int FailedEventReportFrequency int // RoleDetectionThreshold is used to set the report duration of role event after role changed, // then event controller can always get rolechanged events to maintain pod label accurately // in cases of: // 1 rolechanged event lost; // 2 pod role label deleted or updated incorrectly. RoleDetectionThreshold int DBPort int DBAddress string DBType string OriRole string DBRoles map[string]AccessMode Logger logger.Logger Metadata bindings.Metadata InitIfNeed func() bool Manager component.DBManager GetRole func(context.Context, *bindings.InvokeRequest, *bindings.InvokeResponse) (string, error) OperationsMap map[bindings.OperationKind]Operation }
func (*BaseOperations) CheckRoleOps ¶
func (ops *BaseOperations) CheckRoleOps(ctx context.Context, req *bindings.InvokeRequest, resp *bindings.InvokeResponse) (OpsResult, error)
func (*BaseOperations) CheckRunningOps ¶
func (ops *BaseOperations) CheckRunningOps(ctx context.Context, req *bindings.InvokeRequest, resp *bindings.InvokeResponse) (OpsResult, error)
CheckRunningOps checks whether the binding service is in running status, If check fails continuously, report an event at FailedEventReportFrequency frequency
func (*BaseOperations) GetRoleOps ¶
func (ops *BaseOperations) GetRoleOps(ctx context.Context, req *bindings.InvokeRequest, resp *bindings.InvokeResponse) (OpsResult, error)
func (*BaseOperations) Init ¶
func (ops *BaseOperations) Init(metadata bindings.Metadata)
func (*BaseOperations) Invoke ¶
func (ops *BaseOperations) Invoke(ctx context.Context, req *bindings.InvokeRequest) (*bindings.InvokeResponse, error)
Invoke handles all invoke operations.
func (*BaseOperations) JoinMemberOps ¶
func (ops *BaseOperations) JoinMemberOps(ctx context.Context, req *bindings.InvokeRequest, resp *bindings.InvokeResponse) (OpsResult, error)
JoinMemberOps is used to join the current member into the DB cluster. If OpsResult["event"] == "success" and err == nil, it indicates that the member has successfully Joined. In any other situation, it signifies a failure.
func (*BaseOperations) LeaveMemberOps ¶
func (ops *BaseOperations) LeaveMemberOps(ctx context.Context, req *bindings.InvokeRequest, resp *bindings.InvokeResponse) (OpsResult, error)
LeaveMemberOps is used to remove the current member from the DB cluster. If OpsResult["event"] == "success" and err == nil, it indicates that the member has successfully left. In any other situation, it signifies a failure. - "error": is used to indicate if the leave operation has failed. If error is nil, it signifies a successful leave, and if it is not nil, it indicates a failure. - "OpsResult": provides additional detailed messages regarding the operation.
- "OpsResult['event']" can hold either "fail" or "success" based on the outcome of the leave operation.
- "OpsResult['message']" provides a specific reason explaining the event.
func (*BaseOperations) LockOps ¶ added in v0.6.0
func (ops *BaseOperations) LockOps(ctx context.Context, req *bindings.InvokeRequest, rsp *bindings.InvokeResponse) (OpsResult, error)
func (*BaseOperations) Operations ¶
func (ops *BaseOperations) Operations() []bindings.OperationKind
Operations returns list of operations supported by the binding.
func (*BaseOperations) RegisterOperation ¶
func (ops *BaseOperations) RegisterOperation(opsKind bindings.OperationKind, operation Operation)
func (*BaseOperations) RegisterOperationOnDBReady ¶ added in v0.6.0
func (ops *BaseOperations) RegisterOperationOnDBReady(opsKind bindings.OperationKind, operation Operation, manager component.DBManager)
func (*BaseOperations) SwitchoverOps ¶ added in v0.6.0
func (ops *BaseOperations) SwitchoverOps(ctx context.Context, req *bindings.InvokeRequest, resp *bindings.InvokeResponse) (OpsResult, error)
func (*BaseOperations) UnlockOps ¶ added in v0.6.0
func (ops *BaseOperations) UnlockOps(ctx context.Context, req *bindings.InvokeRequest, rsp *bindings.InvokeResponse) (OpsResult, error)
func (*BaseOperations) VolumeProtectionOps ¶ added in v0.6.0
func (ops *BaseOperations) VolumeProtectionOps(ctx context.Context, req *bindings.InvokeRequest, rsp *bindings.InvokeResponse) (OpsResult, error)
type Operation ¶
type Operation func(ctx context.Context, request *bindings.InvokeRequest, response *bindings.InvokeResponse) (OpsResult, error)
type OpsResult ¶
type OpsResult map[string]interface{}
func ExecuteObject ¶
func ExecuteObject[T customizedObjType](ctx context.Context, ops BaseInternalOps, req *bindings.InvokeRequest, opsKind bindings.OperationKind, sqlTplRend cmdRender[T], msgTplRend cmdRender[T], object T) (OpsResult, error)
func QueryObject ¶
func QueryObject[T customizedObjType](ctx context.Context, ops BaseInternalOps, req *bindings.InvokeRequest, opsKind bindings.OperationKind, sqlTplRend cmdRender[T], dataProcessor resultRender[T], object T) (OpsResult, error)
type RedisEntry ¶
type SlaveStatus ¶ added in v0.6.0
type SlaveStatus struct {
SecondsBehindMaster int64 `json:"Seconds_Behind_Master"`
}