Documentation
¶
Index ¶
- Constants
- Variables
- func ClearCaches()
- func NewPluginManagerImpl(targetDriver driver.Driver, props *utils.RWMap[string, string], ...) driver_infrastructure.PluginManager
- func NewPluginServiceImpl(pluginManager driver_infrastructure.PluginManager, ...) (driver_infrastructure.PluginService, error)
- type PluginChain
- func (chain *PluginChain) Connect(pluginFunc driver_infrastructure.PluginConnectFunc, ...) (driver.Conn, error)
- func (chain *PluginChain) ConnectAddToHead(plugin driver_infrastructure.ConnectionPlugin)
- func (chain *PluginChain) ExecAddToHead(plugin driver_infrastructure.ConnectionPlugin)
- func (chain *PluginChain) Execute(pluginFunc driver_infrastructure.PluginExecFunc, ...) (any, any, bool, error)
- type PluginManagerImpl
- func (pluginManager *PluginManagerImpl) AcceptsStrategy(strategy string) bool
- func (pluginManager *PluginManagerImpl) Connect(hostInfo *host_info_util.HostInfo, props *utils.RWMap[string, string], ...) (driver.Conn, error)
- func (pluginManager *PluginManagerImpl) Execute(connInvokedOn driver.Conn, methodName string, ...) (any, any, bool, error)
- func (pluginManager *PluginManagerImpl) ForceConnect(hostInfo *host_info_util.HostInfo, props *utils.RWMap[string, string], ...) (driver.Conn, error)
- func (pluginManager *PluginManagerImpl) GetConnectionProviderManager() driver_infrastructure.ConnectionProviderManager
- func (pluginManager *PluginManagerImpl) GetDefaultConnectionProvider() driver_infrastructure.ConnectionProvider
- func (pluginManager *PluginManagerImpl) GetEffectiveConnectionProvider() driver_infrastructure.ConnectionProvider
- func (pluginManager *PluginManagerImpl) GetHostInfoByStrategy(role host_info_util.HostRole, strategy string, ...) (host *host_info_util.HostInfo, err error)
- func (pluginManager *PluginManagerImpl) GetHostSelectorStrategy(strategy string) (hostSelector driver_infrastructure.HostSelector, err error)
- func (pluginManager *PluginManagerImpl) GetTelemetryContext() context.Context
- func (pluginManager *PluginManagerImpl) GetTelemetryFactory() telemetry.TelemetryFactory
- func (pluginManager *PluginManagerImpl) Init(pluginService driver_infrastructure.PluginService, ...) error
- func (pluginManager *PluginManagerImpl) InitHostProvider(props *utils.RWMap[string, string], ...) error
- func (pluginManager *PluginManagerImpl) IsPluginInUse(pluginCode string) bool
- func (pluginManager *PluginManagerImpl) NotifyConnectionChanged(changes map[driver_infrastructure.HostChangeOptions]bool, ...) map[driver_infrastructure.OldConnectionSuggestedAction]bool
- func (pluginManager *PluginManagerImpl) NotifyHostListChanged(changes map[string]map[driver_infrastructure.HostChangeOptions]bool)
- func (pluginManager *PluginManagerImpl) NotifySubscribedPlugins(methodName string, pluginFunc driver_infrastructure.PluginExecFunc, ...) error
- func (pluginManager *PluginManagerImpl) ReleaseResources()
- func (pluginManager *PluginManagerImpl) SetTelemetryContext(ctx context.Context)
- func (pluginManager *PluginManagerImpl) UnwrapPlugin(pluginCode string) driver_infrastructure.ConnectionPlugin
- type PluginServiceImpl
- func (p *PluginServiceImpl) AcceptsStrategy(strategy string) bool
- func (p *PluginServiceImpl) Connect(hostInfo *host_info_util.HostInfo, props *utils.RWMap[string, string], ...) (driver.Conn, error)
- func (p *PluginServiceImpl) CreateHostListProvider(props *utils.RWMap[string, string]) driver_infrastructure.HostListProvider
- func (p *PluginServiceImpl) FillAliases(conn driver.Conn, hostInfo *host_info_util.HostInfo)
- func (p *PluginServiceImpl) ForceConnect(hostInfo *host_info_util.HostInfo, props *utils.RWMap[string, string]) (driver.Conn, error)
- func (p *PluginServiceImpl) ForceRefreshHostList(conn driver.Conn) error
- func (p *PluginServiceImpl) ForceRefreshHostListWithTimeout(shouldVerifyWriter bool, timeoutMs int) (bool, error)
- func (p *PluginServiceImpl) GetAllHosts() []*host_info_util.HostInfo
- func (p *PluginServiceImpl) GetBgStatus(id string) (driver_infrastructure.BlueGreenStatus, bool)
- func (p *PluginServiceImpl) GetConnectionProvider() driver_infrastructure.ConnectionProvider
- func (p *PluginServiceImpl) GetCurrentConnection() driver.Conn
- func (p *PluginServiceImpl) GetCurrentConnectionRef() *driver.Conn
- func (p *PluginServiceImpl) GetCurrentHostInfo() (*host_info_util.HostInfo, error)
- func (p *PluginServiceImpl) GetCurrentTx() driver.Tx
- func (p *PluginServiceImpl) GetDialect() driver_infrastructure.DatabaseDialect
- func (p *PluginServiceImpl) GetHostInfoByStrategy(role host_info_util.HostRole, strategy string, ...) (*host_info_util.HostInfo, error)
- func (p *PluginServiceImpl) GetHostListProvider() driver_infrastructure.HostListProvider
- func (p *PluginServiceImpl) GetHostRole(conn driver.Conn) host_info_util.HostRole
- func (p *PluginServiceImpl) GetHostSelectorStrategy(strategy string) (hostSelector driver_infrastructure.HostSelector, err error)
- func (p *PluginServiceImpl) GetHosts() []*host_info_util.HostInfo
- func (p *PluginServiceImpl) GetInitialConnectionHostInfo() *host_info_util.HostInfo
- func (p *PluginServiceImpl) GetProperties() *utils.RWMap[string, string]
- func (p *PluginServiceImpl) GetTargetDriverDialect() driver_infrastructure.DriverDialect
- func (p *PluginServiceImpl) GetTelemetryContext() context.Context
- func (p *PluginServiceImpl) GetTelemetryFactory() telemetry.TelemetryFactory
- func (p *PluginServiceImpl) GetUpdatedHostListWithTimeout(shouldVerifyWriter bool, timeoutMs int) ([]*host_info_util.HostInfo, error)
- func (p *PluginServiceImpl) IdentifyConnection(conn driver.Conn) (*host_info_util.HostInfo, error)
- func (p *PluginServiceImpl) IsInTransaction() bool
- func (p *PluginServiceImpl) IsLoginError(err error) bool
- func (p *PluginServiceImpl) IsNetworkError(err error) bool
- func (p *PluginServiceImpl) IsPluginInUse(pluginName string) bool
- func (p *PluginServiceImpl) IsStaticHostListProvider() bool
- func (p *PluginServiceImpl) RefreshHostList(conn driver.Conn) error
- func (p *PluginServiceImpl) ReleaseResources()
- func (p *PluginServiceImpl) ResetSession()
- func (p *PluginServiceImpl) SetAllowedAndBlockedHosts(allowedAndBlockedHosts *driver_infrastructure.AllowedAndBlockedHosts)
- func (p *PluginServiceImpl) SetAvailability(hostAliases map[string]bool, availability host_info_util.HostAvailability)
- func (p *PluginServiceImpl) SetBgStatus(status driver_infrastructure.BlueGreenStatus, id string)
- func (p *PluginServiceImpl) SetCurrentConnection(conn driver.Conn, hostInfo *host_info_util.HostInfo, ...) error
- func (p *PluginServiceImpl) SetCurrentTx(tx driver.Tx)
- func (p *PluginServiceImpl) SetDialect(dialect driver_infrastructure.DatabaseDialect)
- func (p *PluginServiceImpl) SetHostListProvider(hostListProvider driver_infrastructure.HostListProvider)
- func (p *PluginServiceImpl) SetInTransaction(inTransaction bool)
- func (p *PluginServiceImpl) SetInitialConnectionHostInfo(hostInfo *host_info_util.HostInfo)
- func (p *PluginServiceImpl) SetTelemetryContext(ctx context.Context)
- func (p *PluginServiceImpl) UpdateDialect(conn driver.Conn)
- func (p *PluginServiceImpl) UpdateState(sql string, methodArgs ...any)
Constants ¶
View Source
const ( ALL_METHODS = "*" CONNECT_METHOD = "Conn.Connect" FORCE_CONNECT_METHOD = "Conn.ForceConnect" ACCEPTS_STRATEGY_METHOD = "acceptsStrategy" GET_HOST_INFO_BY_STRATEGY_METHOD = "getHostInfoByStrategy" GET_HOST_SELECT_STRATEGY_METHOD = "getHostSelectorStrategy" INIT_HOST_PROVIDER_METHOD = "initHostProvider" NOTIFY_CONNECTION_CHANGED_METHOD = "notifyConnectionChanged" NOTIFY_HOST_LIST_CHANGED_METHOD = "notifyHostListChanged" )
Variables ¶
View Source
var DEFAULT_HOST_AVAILABILITY_CACHE_EXPIRE_NANO = 5 * time.Minute
View Source
var DEFAULT_STATUS_CACHE_EXPIRE_NANO = 60 * time.Minute
Functions ¶
func ClearCaches ¶
func ClearCaches()
This cleans up all long-standing caches. To be called at the end of program, not each time a Conn is closed.
func NewPluginManagerImpl ¶
func NewPluginManagerImpl( targetDriver driver.Driver, props *utils.RWMap[string, string], connProviderManager driver_infrastructure.ConnectionProviderManager, telemetryFactory telemetry.TelemetryFactory) driver_infrastructure.PluginManager
func NewPluginServiceImpl ¶
func NewPluginServiceImpl( pluginManager driver_infrastructure.PluginManager, driverDialect driver_infrastructure.DriverDialect, props *utils.RWMap[string, string], dsn string) (driver_infrastructure.PluginService, error)
Types ¶
type PluginChain ¶
type PluginChain struct {
// contains filtered or unexported fields
}
func (*PluginChain) ConnectAddToHead ¶
func (chain *PluginChain) ConnectAddToHead(plugin driver_infrastructure.ConnectionPlugin)
func (*PluginChain) ExecAddToHead ¶
func (chain *PluginChain) ExecAddToHead(plugin driver_infrastructure.ConnectionPlugin)
func (*PluginChain) Execute ¶
func (chain *PluginChain) Execute(pluginFunc driver_infrastructure.PluginExecFunc, execFunc func() (any, any, bool, error)) (any, any, bool, error)
type PluginManagerImpl ¶
type PluginManagerImpl struct {
// contains filtered or unexported fields
}
func (*PluginManagerImpl) AcceptsStrategy ¶
func (pluginManager *PluginManagerImpl) AcceptsStrategy(strategy string) bool
func (*PluginManagerImpl) Connect ¶
func (pluginManager *PluginManagerImpl) Connect( hostInfo *host_info_util.HostInfo, props *utils.RWMap[string, string], isInitialConnection bool, pluginToSkip driver_infrastructure.ConnectionPlugin) (driver.Conn, error)
func (*PluginManagerImpl) Execute ¶
func (pluginManager *PluginManagerImpl) Execute( connInvokedOn driver.Conn, methodName string, executeFunc driver_infrastructure.ExecuteFunc, methodArgs ...any) (any, any, bool, error)
func (*PluginManagerImpl) ForceConnect ¶
func (*PluginManagerImpl) GetConnectionProviderManager ¶
func (pluginManager *PluginManagerImpl) GetConnectionProviderManager() driver_infrastructure.ConnectionProviderManager
func (*PluginManagerImpl) GetDefaultConnectionProvider ¶
func (pluginManager *PluginManagerImpl) GetDefaultConnectionProvider() driver_infrastructure.ConnectionProvider
func (*PluginManagerImpl) GetEffectiveConnectionProvider ¶
func (pluginManager *PluginManagerImpl) GetEffectiveConnectionProvider() driver_infrastructure.ConnectionProvider
func (*PluginManagerImpl) GetHostInfoByStrategy ¶
func (pluginManager *PluginManagerImpl) GetHostInfoByStrategy( role host_info_util.HostRole, strategy string, hosts []*host_info_util.HostInfo) (host *host_info_util.HostInfo, err error)
func (*PluginManagerImpl) GetHostSelectorStrategy ¶
func (pluginManager *PluginManagerImpl) GetHostSelectorStrategy(strategy string) (hostSelector driver_infrastructure.HostSelector, err error)
func (*PluginManagerImpl) GetTelemetryContext ¶
func (pluginManager *PluginManagerImpl) GetTelemetryContext() context.Context
func (*PluginManagerImpl) GetTelemetryFactory ¶
func (pluginManager *PluginManagerImpl) GetTelemetryFactory() telemetry.TelemetryFactory
func (*PluginManagerImpl) Init ¶
func (pluginManager *PluginManagerImpl) Init( pluginService driver_infrastructure.PluginService, plugins []driver_infrastructure.ConnectionPlugin) error
func (*PluginManagerImpl) InitHostProvider ¶
func (pluginManager *PluginManagerImpl) InitHostProvider( props *utils.RWMap[string, string], hostListProviderService driver_infrastructure.HostListProviderService) error
func (*PluginManagerImpl) IsPluginInUse ¶ added in v1.1.0
func (pluginManager *PluginManagerImpl) IsPluginInUse(pluginCode string) bool
func (*PluginManagerImpl) NotifyConnectionChanged ¶
func (pluginManager *PluginManagerImpl) NotifyConnectionChanged( changes map[driver_infrastructure.HostChangeOptions]bool, skipNotificationForThisPlugin driver_infrastructure.ConnectionPlugin) map[driver_infrastructure.OldConnectionSuggestedAction]bool
func (*PluginManagerImpl) NotifyHostListChanged ¶
func (pluginManager *PluginManagerImpl) NotifyHostListChanged(changes map[string]map[driver_infrastructure.HostChangeOptions]bool)
func (*PluginManagerImpl) NotifySubscribedPlugins ¶
func (pluginManager *PluginManagerImpl) NotifySubscribedPlugins( methodName string, pluginFunc driver_infrastructure.PluginExecFunc, skipNotificationForThisPlugin driver_infrastructure.ConnectionPlugin) error
func (*PluginManagerImpl) ReleaseResources ¶
func (pluginManager *PluginManagerImpl) ReleaseResources()
func (*PluginManagerImpl) SetTelemetryContext ¶
func (pluginManager *PluginManagerImpl) SetTelemetryContext(ctx context.Context)
func (*PluginManagerImpl) UnwrapPlugin ¶ added in v1.1.0
func (pluginManager *PluginManagerImpl) UnwrapPlugin(pluginCode string) driver_infrastructure.ConnectionPlugin
type PluginServiceImpl ¶
type PluginServiceImpl struct {
AllHosts []*host_info_util.HostInfo
// contains filtered or unexported fields
}
func (*PluginServiceImpl) AcceptsStrategy ¶
func (p *PluginServiceImpl) AcceptsStrategy(strategy string) bool
func (*PluginServiceImpl) Connect ¶
func (p *PluginServiceImpl) Connect( hostInfo *host_info_util.HostInfo, props *utils.RWMap[string, string], pluginToSkip driver_infrastructure.ConnectionPlugin) (driver.Conn, error)
func (*PluginServiceImpl) CreateHostListProvider ¶
func (p *PluginServiceImpl) CreateHostListProvider(props *utils.RWMap[string, string]) driver_infrastructure.HostListProvider
func (*PluginServiceImpl) FillAliases ¶
func (p *PluginServiceImpl) FillAliases(conn driver.Conn, hostInfo *host_info_util.HostInfo)
func (*PluginServiceImpl) ForceConnect ¶
func (p *PluginServiceImpl) ForceConnect(hostInfo *host_info_util.HostInfo, props *utils.RWMap[string, string]) (driver.Conn, error)
func (*PluginServiceImpl) ForceRefreshHostList ¶
func (p *PluginServiceImpl) ForceRefreshHostList(conn driver.Conn) error
func (*PluginServiceImpl) ForceRefreshHostListWithTimeout ¶
func (p *PluginServiceImpl) ForceRefreshHostListWithTimeout(shouldVerifyWriter bool, timeoutMs int) (bool, error)
func (*PluginServiceImpl) GetAllHosts ¶ added in v1.2.0
func (p *PluginServiceImpl) GetAllHosts() []*host_info_util.HostInfo
func (*PluginServiceImpl) GetBgStatus ¶ added in v1.1.0
func (p *PluginServiceImpl) GetBgStatus(id string) (driver_infrastructure.BlueGreenStatus, bool)
func (*PluginServiceImpl) GetConnectionProvider ¶
func (p *PluginServiceImpl) GetConnectionProvider() driver_infrastructure.ConnectionProvider
func (*PluginServiceImpl) GetCurrentConnection ¶
func (p *PluginServiceImpl) GetCurrentConnection() driver.Conn
func (*PluginServiceImpl) GetCurrentConnectionRef ¶
func (p *PluginServiceImpl) GetCurrentConnectionRef() *driver.Conn
func (*PluginServiceImpl) GetCurrentHostInfo ¶
func (p *PluginServiceImpl) GetCurrentHostInfo() (*host_info_util.HostInfo, error)
func (*PluginServiceImpl) GetCurrentTx ¶
func (p *PluginServiceImpl) GetCurrentTx() driver.Tx
func (*PluginServiceImpl) GetDialect ¶
func (p *PluginServiceImpl) GetDialect() driver_infrastructure.DatabaseDialect
func (*PluginServiceImpl) GetHostInfoByStrategy ¶
func (p *PluginServiceImpl) GetHostInfoByStrategy( role host_info_util.HostRole, strategy string, hosts []*host_info_util.HostInfo) (*host_info_util.HostInfo, error)
func (*PluginServiceImpl) GetHostListProvider ¶
func (p *PluginServiceImpl) GetHostListProvider() driver_infrastructure.HostListProvider
func (*PluginServiceImpl) GetHostRole ¶
func (p *PluginServiceImpl) GetHostRole(conn driver.Conn) host_info_util.HostRole
func (*PluginServiceImpl) GetHostSelectorStrategy ¶
func (p *PluginServiceImpl) GetHostSelectorStrategy(strategy string) (hostSelector driver_infrastructure.HostSelector, err error)
func (*PluginServiceImpl) GetHosts ¶
func (p *PluginServiceImpl) GetHosts() []*host_info_util.HostInfo
func (*PluginServiceImpl) GetInitialConnectionHostInfo ¶
func (p *PluginServiceImpl) GetInitialConnectionHostInfo() *host_info_util.HostInfo
func (*PluginServiceImpl) GetProperties ¶
func (p *PluginServiceImpl) GetProperties() *utils.RWMap[string, string]
func (*PluginServiceImpl) GetTargetDriverDialect ¶
func (p *PluginServiceImpl) GetTargetDriverDialect() driver_infrastructure.DriverDialect
func (*PluginServiceImpl) GetTelemetryContext ¶
func (p *PluginServiceImpl) GetTelemetryContext() context.Context
func (*PluginServiceImpl) GetTelemetryFactory ¶
func (p *PluginServiceImpl) GetTelemetryFactory() telemetry.TelemetryFactory
func (*PluginServiceImpl) GetUpdatedHostListWithTimeout ¶
func (p *PluginServiceImpl) GetUpdatedHostListWithTimeout(shouldVerifyWriter bool, timeoutMs int) ([]*host_info_util.HostInfo, error)
func (*PluginServiceImpl) IdentifyConnection ¶
func (p *PluginServiceImpl) IdentifyConnection(conn driver.Conn) (*host_info_util.HostInfo, error)
func (*PluginServiceImpl) IsInTransaction ¶
func (p *PluginServiceImpl) IsInTransaction() bool
func (*PluginServiceImpl) IsLoginError ¶
func (p *PluginServiceImpl) IsLoginError(err error) bool
func (*PluginServiceImpl) IsNetworkError ¶
func (p *PluginServiceImpl) IsNetworkError(err error) bool
func (*PluginServiceImpl) IsPluginInUse ¶ added in v1.1.0
func (p *PluginServiceImpl) IsPluginInUse(pluginName string) bool
func (*PluginServiceImpl) IsStaticHostListProvider ¶
func (p *PluginServiceImpl) IsStaticHostListProvider() bool
func (*PluginServiceImpl) RefreshHostList ¶
func (p *PluginServiceImpl) RefreshHostList(conn driver.Conn) error
func (*PluginServiceImpl) ReleaseResources ¶
func (p *PluginServiceImpl) ReleaseResources()
func (*PluginServiceImpl) ResetSession ¶ added in v1.1.0
func (p *PluginServiceImpl) ResetSession()
func (*PluginServiceImpl) SetAllowedAndBlockedHosts ¶ added in v1.2.0
func (p *PluginServiceImpl) SetAllowedAndBlockedHosts(allowedAndBlockedHosts *driver_infrastructure.AllowedAndBlockedHosts)
func (*PluginServiceImpl) SetAvailability ¶
func (p *PluginServiceImpl) SetAvailability(hostAliases map[string]bool, availability host_info_util.HostAvailability)
func (*PluginServiceImpl) SetBgStatus ¶ added in v1.1.0
func (p *PluginServiceImpl) SetBgStatus(status driver_infrastructure.BlueGreenStatus, id string)
func (*PluginServiceImpl) SetCurrentConnection ¶
func (p *PluginServiceImpl) SetCurrentConnection( conn driver.Conn, hostInfo *host_info_util.HostInfo, skipNotificationForThisPlugin driver_infrastructure.ConnectionPlugin) error
func (*PluginServiceImpl) SetCurrentTx ¶
func (p *PluginServiceImpl) SetCurrentTx(tx driver.Tx)
func (*PluginServiceImpl) SetDialect ¶
func (p *PluginServiceImpl) SetDialect(dialect driver_infrastructure.DatabaseDialect)
func (*PluginServiceImpl) SetHostListProvider ¶
func (p *PluginServiceImpl) SetHostListProvider(hostListProvider driver_infrastructure.HostListProvider)
func (*PluginServiceImpl) SetInTransaction ¶
func (p *PluginServiceImpl) SetInTransaction(inTransaction bool)
func (*PluginServiceImpl) SetInitialConnectionHostInfo ¶
func (p *PluginServiceImpl) SetInitialConnectionHostInfo(hostInfo *host_info_util.HostInfo)
func (*PluginServiceImpl) SetTelemetryContext ¶
func (p *PluginServiceImpl) SetTelemetryContext(ctx context.Context)
func (*PluginServiceImpl) UpdateDialect ¶
func (p *PluginServiceImpl) UpdateDialect(conn driver.Conn)
func (*PluginServiceImpl) UpdateState ¶
func (p *PluginServiceImpl) UpdateState(sql string, methodArgs ...any)
Click to show internal directories.
Click to hide internal directories.