Documentation ¶
Index ¶
- Constants
- Variables
- func QueryRowsMap(db *sql.DB, query string, onRow func(RowMap) error, args ...interface{}) (err error)
- func ScanRowsToArrays(rows *sql.Rows, onRow func([]CellData) error) error
- func ScanRowsToMaps(rows *sql.Rows, onRow func(RowMap) error) error
- type CellData
- type Config
- type GTIDItem
- type GTIDSet
- func (gtidSet *GTIDSet) Explode() (result [](*GTIDItem))
- func (gtidSet *GTIDSet) IsEmpty() bool
- func (gtidSet *GTIDSet) RemoveUUID(uuid string) (removed bool)
- func (gtidSet *GTIDSet) RetainUUID(uuid string) (anythingRemoved bool)
- func (gtidSet *GTIDSet) RetainUUIDs(uuids []string) (anythingRemoved bool)
- func (gtidSet *GTIDSet) SharedUUIDs(other *GTIDSet) (shared []string)
- func (gtidSet *GTIDSet) String() string
- type Manager
- func (mgr *Manager) CreateRoot(ctx context.Context) error
- func (mgr *Manager) Demote(context.Context) error
- func (mgr *Manager) EnsureServerID(ctx context.Context) (bool, error)
- func (mgr *Manager) Exec(ctx context.Context, sql string) (int64, error)
- func (mgr *Manager) Follow(ctx context.Context, cluster *dcs.Cluster) error
- func (mgr *Manager) GetDBState(ctx context.Context, cluster *dcs.Cluster) *dcs.DBState
- func (mgr *Manager) GetGlobalState(ctx context.Context, db *sql.DB) (map[string]string, error)
- func (mgr *Manager) GetHealthiestMember(cluster *dcs.Cluster, candidate string) *dcs.Member
- func (mgr *Manager) GetLeaderClient(ctx context.Context, cluster *dcs.Cluster) (*sql.DB, error)
- func (mgr *Manager) GetMasterStatus(ctx context.Context, db *sql.DB) (RowMap, error)
- func (mgr *Manager) GetMemberAddrs(ctx context.Context, cluster *dcs.Cluster) []string
- func (mgr *Manager) GetOpTimestamp(ctx context.Context, db *sql.DB) (int64, error)
- func (mgr *Manager) GetRole(ctx context.Context) (string, error)
- func (mgr *Manager) GetRoleForConsensus(ctx context.Context) (string, error)
- func (mgr *Manager) GetRoleForReplication(ctx context.Context) (string, error)
- func (mgr *Manager) GetSlaveStatus(ctx context.Context, db *sql.DB) (RowMap, error)
- func (mgr *Manager) HasOtherHealthyMembers(ctx context.Context, cluster *dcs.Cluster, leader string) []*dcs.Member
- func (mgr *Manager) InitializeCluster(ctx context.Context, cluster *dcs.Cluster) error
- func (mgr *Manager) InitiateCluster(cluster *dcs.Cluster) error
- func (mgr *Manager) IsClusterInitialized(ctx context.Context, cluster *dcs.Cluster) (bool, error)
- func (mgr *Manager) IsCurrentMemberHealthy(ctx context.Context, cluster *dcs.Cluster) bool
- func (mgr *Manager) IsCurrentMemberInCluster(ctx context.Context, cluster *dcs.Cluster) bool
- func (mgr *Manager) IsDBStartupReady() bool
- func (mgr *Manager) IsLeader(ctx context.Context, cluster *dcs.Cluster) (bool, error)
- func (mgr *Manager) IsLeaderMember(ctx context.Context, cluster *dcs.Cluster, member *dcs.Member) (bool, error)
- func (mgr *Manager) IsMemberHealthy(ctx context.Context, cluster *dcs.Cluster, member *dcs.Member) bool
- func (mgr *Manager) IsMemberLagging(ctx context.Context, cluster *dcs.Cluster, member *dcs.Member) (bool, int64)
- func (mgr *Manager) IsReadonly(ctx context.Context, cluster *dcs.Cluster, member *dcs.Member) (bool, error)
- func (mgr *Manager) IsRootCreated(ctx context.Context) (bool, error)
- func (mgr *Manager) IsRunning() bool
- func (mgr *Manager) JoinCurrentMemberToCluster(ctx context.Context, cluster *dcs.Cluster) error
- func (mgr *Manager) LeaveMemberFromCluster(context.Context, *dcs.Cluster, string) error
- func (mgr *Manager) Lock(ctx context.Context, reason string) error
- func (mgr *Manager) Promote(ctx context.Context, cluster *dcs.Cluster) error
- func (mgr *Manager) Query(ctx context.Context, sql string) ([]byte, error)
- func (mgr *Manager) ReadCheck(ctx context.Context, db *sql.DB) bool
- func (mgr *Manager) Recover(context.Context) error
- func (mgr *Manager) Unlock(ctx context.Context) error
- func (mgr *Manager) WriteCheck(ctx context.Context, db *sql.DB) bool
- type NamedResultData
- type ResultData
- type RowData
- type RowMap
- func (rm *RowMap) GetBool(key string) bool
- func (rm *RowMap) GetInt(key string) int
- func (rm *RowMap) GetInt64(key string) int64
- func (rm *RowMap) GetIntD(key string, def int) int
- func (rm *RowMap) GetNullInt64(key string) sql.NullInt64
- func (rm *RowMap) GetString(key string) string
- func (rm *RowMap) GetStringD(key string, def string) string
- func (rm *RowMap) GetTime(key string) time.Time
- func (rm *RowMap) GetUint(key string) uint
- func (rm *RowMap) GetUint64(key string) uint64
- func (rm *RowMap) GetUint64D(key string, def uint64) uint64
- func (rm *RowMap) GetUintD(key string, def uint) uint
- type WesqlManager
- func (mgr *WesqlManager) Demote(context.Context) error
- func (mgr *WesqlManager) Follow(ctx context.Context, cluster *dcs.Cluster) error
- func (mgr *WesqlManager) GetAddrWithMemberName(ctx context.Context, cluster *dcs.Cluster, memberName string) string
- func (mgr *WesqlManager) GetClusterInfo(ctx context.Context, cluster *dcs.Cluster) string
- func (mgr *WesqlManager) GetClusterLocalInfo(ctx context.Context) (RowMap, error)
- func (mgr *WesqlManager) GetDBConnWithMember(cluster *dcs.Cluster, member *dcs.Member) (*sql.DB, error)
- func (mgr *WesqlManager) GetHealthiestMember(cluster *dcs.Cluster, candidate string) *dcs.Member
- func (mgr *WesqlManager) GetLeaderConn(ctx context.Context, cluster *dcs.Cluster) (*sql.DB, error)
- func (mgr *WesqlManager) GetLeaderMember(ctx context.Context, cluster *dcs.Cluster) *dcs.Member
- func (mgr *WesqlManager) GetMemberAddrs(ctx context.Context, cluster *dcs.Cluster) []string
- func (mgr *WesqlManager) GetRole(ctx context.Context) (string, error)
- func (mgr *WesqlManager) HasOtherHealthyLeader(ctx context.Context, cluster *dcs.Cluster) *dcs.Member
- func (mgr *WesqlManager) HasOtherHealthyMembers(ctx context.Context, cluster *dcs.Cluster, leader string) []*dcs.Member
- func (mgr *WesqlManager) InitializeCluster(ctx context.Context, cluster *dcs.Cluster) error
- func (mgr *WesqlManager) InitiateCluster(cluster *dcs.Cluster) error
- func (mgr *WesqlManager) IsClusterHealthy(ctx context.Context, cluster *dcs.Cluster) bool
- func (mgr *WesqlManager) IsClusterInitialized(ctx context.Context, cluster *dcs.Cluster) (bool, error)
- func (mgr *WesqlManager) IsCurrentMemberInCluster(ctx context.Context, cluster *dcs.Cluster) bool
- func (mgr *WesqlManager) IsLeader(ctx context.Context, cluster *dcs.Cluster) (bool, error)
- func (mgr *WesqlManager) IsLeaderMember(ctx context.Context, cluster *dcs.Cluster, member *dcs.Member) (bool, error)
- func (mgr *WesqlManager) IsMemberLagging(context.Context, *dcs.Cluster, *dcs.Member) (bool, int64)
- func (mgr *WesqlManager) IsPromoted(ctx context.Context) bool
- func (mgr *WesqlManager) JoinCurrentMemberToCluster(context.Context, *dcs.Cluster) error
- func (mgr *WesqlManager) LeaveMemberFromCluster(ctx context.Context, cluster *dcs.Cluster, memberName string) error
- func (mgr *WesqlManager) Promote(ctx context.Context, cluster *dcs.Cluster) error
- func (mgr *WesqlManager) Recover(context.Context) error
Constants ¶
const ( Role = "ROLE" CurrentRole = "CURRENT_ROLE" Leader = "Leader" )
const DateTimeFormat = "2006-01-02 15:04:05.999999"
Variables ¶
var EmptyResultData = ResultData{}
Functions ¶
func QueryRowsMap ¶
func QueryRowsMap(db *sql.DB, query string, onRow func(RowMap) error, args ...interface{}) (err error)
QueryRowsMap is a convenience function allowing querying a result set while poviding a callback function activated per read row.
func ScanRowsToArrays ¶
ScanRowsToArrays is a convenience function, typically not called directly, which maps rows already read from the databse into arrays of NullString
Types ¶
type CellData ¶
type CellData sql.NullString
CellData is the result of a single (atomic) column in a single row
func (*CellData) MarshalJSON ¶
func (*CellData) NullString ¶
func (cd *CellData) NullString() *sql.NullString
func (*CellData) UnmarshalJSON ¶
UnmarshalJSON reds this object from JSON
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
func (*Config) GetDBConnWithAddr ¶
type GTIDItem ¶
GTIDItem represents an item in a set of GTID ranges, for example, the item: "bfaff6e9-3040-11ee-9393-eab5dfc9b22a:1-5:8-10"
func NewGTIDItem ¶
type GTIDSet ¶
type GTIDSet struct {
Items []*GTIDItem
}
func NewOracleGtidSet ¶
func (*GTIDSet) RemoveUUID ¶
func (*GTIDSet) RetainUUID ¶
func (*GTIDSet) RetainUUIDs ¶
func (*GTIDSet) SharedUUIDs ¶
type Manager ¶
type Manager struct { component.DBManagerBase DB *sql.DB // contains filtered or unexported fields }
func (*Manager) EnsureServerID ¶
func (*Manager) GetDBState ¶
func (*Manager) GetGlobalState ¶
func (*Manager) GetHealthiestMember ¶
func (*Manager) GetLeaderClient ¶
func (*Manager) GetMasterStatus ¶
func (*Manager) GetMemberAddrs ¶
func (*Manager) GetOpTimestamp ¶
func (*Manager) GetRoleForConsensus ¶
func (*Manager) GetRoleForReplication ¶
func (*Manager) GetSlaveStatus ¶
func (*Manager) HasOtherHealthyMembers ¶
func (mgr *Manager) HasOtherHealthyMembers(ctx context.Context, cluster *dcs.Cluster, leader string) []*dcs.Member
HasOtherHealthyMembers checks if there are any healthy members, excluding the leader
func (*Manager) InitializeCluster ¶
func (*Manager) IsClusterInitialized ¶
IsClusterInitialized is a method to check if cluster is initailized or not
func (*Manager) IsCurrentMemberHealthy ¶
func (*Manager) IsCurrentMemberInCluster ¶
func (*Manager) IsDBStartupReady ¶
func (*Manager) IsLeaderMember ¶
func (*Manager) IsMemberHealthy ¶
func (*Manager) IsMemberLagging ¶
func (*Manager) IsReadonly ¶
func (*Manager) IsRootCreated ¶
func (*Manager) JoinCurrentMemberToCluster ¶
func (*Manager) LeaveMemberFromCluster ¶
type NamedResultData ¶
type NamedResultData struct { Columns []string Data ResultData }
type RowData ¶
type RowData []CellData
RowData is the result of a single row, in positioned array format
func (*RowData) MarshalJSON ¶
MarshalJSON will marshal this map as JSON
type RowMap ¶
RowMap represents one row in a result set. Its objective is to allow for easy, typed getters by column name.
func (*RowMap) GetStringD ¶
GetStringD returns a string from the map, or a default value if the key does not exist
type WesqlManager ¶
type WesqlManager struct {
Manager
}
func NewWesqlManager ¶
func NewWesqlManager(logger logr.Logger) (*WesqlManager, error)
func (*WesqlManager) GetAddrWithMemberName ¶
func (*WesqlManager) GetClusterInfo ¶
func (*WesqlManager) GetClusterLocalInfo ¶
func (mgr *WesqlManager) GetClusterLocalInfo(ctx context.Context) (RowMap, error)
func (*WesqlManager) GetDBConnWithMember ¶
func (mgr *WesqlManager) GetDBConnWithMember(cluster *dcs.Cluster, member *dcs.Member) (*sql.DB, error)
GetDBConnWithMember retrieves a database connection for a specific member of a cluster.
func (*WesqlManager) GetHealthiestMember ¶
func (*WesqlManager) GetLeaderConn ¶
GetLeaderConn retrieves a database connection to the leader member of a cluster.
func (*WesqlManager) GetLeaderMember ¶
GetLeaderMember retrieves the leader member of a cluster
func (*WesqlManager) GetMemberAddrs ¶
func (*WesqlManager) GetRole ¶
func (mgr *WesqlManager) GetRole(ctx context.Context) (string, error)
func (*WesqlManager) HasOtherHealthyLeader ¶
func (*WesqlManager) HasOtherHealthyMembers ¶
func (mgr *WesqlManager) HasOtherHealthyMembers(ctx context.Context, cluster *dcs.Cluster, leader string) []*dcs.Member
HasOtherHealthyMembers checks if there are any healthy members, excluding the leader
func (*WesqlManager) InitializeCluster ¶
func (*WesqlManager) InitiateCluster ¶
func (mgr *WesqlManager) InitiateCluster(cluster *dcs.Cluster) error
func (*WesqlManager) IsClusterHealthy ¶
func (*WesqlManager) IsClusterInitialized ¶
func (mgr *WesqlManager) IsClusterInitialized(ctx context.Context, cluster *dcs.Cluster) (bool, error)
IsClusterInitialized is a method to check if cluster is initailized or not
func (*WesqlManager) IsCurrentMemberInCluster ¶
func (*WesqlManager) IsLeaderMember ¶
func (*WesqlManager) IsMemberLagging ¶
func (*WesqlManager) IsPromoted ¶
func (mgr *WesqlManager) IsPromoted(ctx context.Context) bool