Documentation
¶
Index ¶
- type FailoverManager
- func (fm *FailoverManager) Close() error
- func (fm *FailoverManager) Configure(ctx context.Context, config *types.FailoverConfig) error
- func (fm *FailoverManager) ConfigureWithProvider(ctx context.Context, providerName string, config *types.FailoverConfig) error
- func (fm *FailoverManager) DeregisterEndpoint(ctx context.Context, endpointID string) error
- func (fm *FailoverManager) DeregisterEndpointWithProvider(ctx context.Context, providerName string, endpointID string) error
- func (fm *FailoverManager) ExecuteWithFailover(ctx context.Context, config *types.FailoverConfig, ...) (*types.FailoverResult, error)
- func (fm *FailoverManager) ExecuteWithFailoverAndProvider(ctx context.Context, providerName string, config *types.FailoverConfig, ...) (*types.FailoverResult, error)
- func (fm *FailoverManager) GetConfig(ctx context.Context) (*types.FailoverConfig, error)
- func (fm *FailoverManager) GetConfigWithProvider(ctx context.Context, providerName string) (*types.FailoverConfig, error)
- func (fm *FailoverManager) GetDefaultProvider() (FailoverProvider, error)
- func (fm *FailoverManager) GetEndpoint(ctx context.Context, endpointID string) (*types.ServiceEndpoint, error)
- func (fm *FailoverManager) GetEndpointWithProvider(ctx context.Context, providerName string, endpointID string) (*types.ServiceEndpoint, error)
- func (fm *FailoverManager) GetEvents(ctx context.Context, limit int) (map[string][]*types.FailoverEvent, error)
- func (fm *FailoverManager) GetProvider(name string) (FailoverProvider, error)
- func (fm *FailoverManager) GetProviderInfo() map[string]*types.ProviderInfo
- func (fm *FailoverManager) GetStats(ctx context.Context) (map[string]*types.FailoverStats, error)
- func (fm *FailoverManager) HealthCheck(ctx context.Context, endpointID string) (types.HealthStatus, error)
- func (fm *FailoverManager) HealthCheckAll(ctx context.Context) (map[string]types.HealthStatus, error)
- func (fm *FailoverManager) HealthCheckAllWithProvider(ctx context.Context, providerName string) (map[string]types.HealthStatus, error)
- func (fm *FailoverManager) HealthCheckWithProvider(ctx context.Context, providerName string, endpointID string) (types.HealthStatus, error)
- func (fm *FailoverManager) ListEndpoints(ctx context.Context) ([]*types.ServiceEndpoint, error)
- func (fm *FailoverManager) ListEndpointsWithProvider(ctx context.Context, providerName string) ([]*types.ServiceEndpoint, error)
- func (fm *FailoverManager) ListProviders() []string
- func (fm *FailoverManager) RegisterEndpoint(ctx context.Context, endpoint *types.ServiceEndpoint) error
- func (fm *FailoverManager) RegisterEndpointWithProvider(ctx context.Context, providerName string, endpoint *types.ServiceEndpoint) error
- func (fm *FailoverManager) RegisterProvider(provider FailoverProvider) error
- func (fm *FailoverManager) SelectEndpoint(ctx context.Context, config *types.FailoverConfig) (*types.FailoverResult, error)
- func (fm *FailoverManager) SelectEndpointWithProvider(ctx context.Context, providerName string, config *types.FailoverConfig) (*types.FailoverResult, error)
- func (fm *FailoverManager) UpdateEndpoint(ctx context.Context, endpoint *types.ServiceEndpoint) error
- func (fm *FailoverManager) UpdateEndpointWithProvider(ctx context.Context, providerName string, endpoint *types.ServiceEndpoint) error
- type FailoverProvider
- type ManagerConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FailoverManager ¶
type FailoverManager struct {
// contains filtered or unexported fields
}
FailoverManager manages multiple failover providers
func NewFailoverManager ¶
func NewFailoverManager(config *ManagerConfig, logger *logrus.Logger) *FailoverManager
NewFailoverManager creates a new failover manager
func (*FailoverManager) Configure ¶
func (fm *FailoverManager) Configure(ctx context.Context, config *types.FailoverConfig) error
Configure configures failover using the default provider
func (*FailoverManager) ConfigureWithProvider ¶
func (fm *FailoverManager) ConfigureWithProvider(ctx context.Context, providerName string, config *types.FailoverConfig) error
ConfigureWithProvider configures failover using a specific provider
func (*FailoverManager) DeregisterEndpoint ¶
func (fm *FailoverManager) DeregisterEndpoint(ctx context.Context, endpointID string) error
DeregisterEndpoint deregisters an endpoint using the default provider
func (*FailoverManager) DeregisterEndpointWithProvider ¶
func (fm *FailoverManager) DeregisterEndpointWithProvider(ctx context.Context, providerName string, endpointID string) error
DeregisterEndpointWithProvider deregisters an endpoint using a specific provider
func (*FailoverManager) ExecuteWithFailover ¶
func (fm *FailoverManager) ExecuteWithFailover(ctx context.Context, config *types.FailoverConfig, fn func(*types.ServiceEndpoint) (interface{}, error)) (*types.FailoverResult, error)
ExecuteWithFailover executes a function with failover using the default provider
func (*FailoverManager) ExecuteWithFailoverAndProvider ¶
func (fm *FailoverManager) ExecuteWithFailoverAndProvider(ctx context.Context, providerName string, config *types.FailoverConfig, fn func(*types.ServiceEndpoint) (interface{}, error)) (*types.FailoverResult, error)
ExecuteWithFailoverAndProvider executes a function with failover using a specific provider
func (*FailoverManager) GetConfig ¶
func (fm *FailoverManager) GetConfig(ctx context.Context) (*types.FailoverConfig, error)
GetConfig returns failover configuration using the default provider
func (*FailoverManager) GetConfigWithProvider ¶
func (fm *FailoverManager) GetConfigWithProvider(ctx context.Context, providerName string) (*types.FailoverConfig, error)
GetConfigWithProvider returns failover configuration using a specific provider
func (*FailoverManager) GetDefaultProvider ¶
func (fm *FailoverManager) GetDefaultProvider() (FailoverProvider, error)
GetDefaultProvider returns the default provider
func (*FailoverManager) GetEndpoint ¶
func (fm *FailoverManager) GetEndpoint(ctx context.Context, endpointID string) (*types.ServiceEndpoint, error)
GetEndpoint gets an endpoint using the default provider
func (*FailoverManager) GetEndpointWithProvider ¶
func (fm *FailoverManager) GetEndpointWithProvider(ctx context.Context, providerName string, endpointID string) (*types.ServiceEndpoint, error)
GetEndpointWithProvider gets an endpoint using a specific provider
func (*FailoverManager) GetEvents ¶
func (fm *FailoverManager) GetEvents(ctx context.Context, limit int) (map[string][]*types.FailoverEvent, error)
GetEvents returns failover events from all providers
func (*FailoverManager) GetProvider ¶
func (fm *FailoverManager) GetProvider(name string) (FailoverProvider, error)
GetProvider returns a specific provider by name
func (*FailoverManager) GetProviderInfo ¶
func (fm *FailoverManager) GetProviderInfo() map[string]*types.ProviderInfo
GetProviderInfo returns information about all registered providers
func (*FailoverManager) GetStats ¶
func (fm *FailoverManager) GetStats(ctx context.Context) (map[string]*types.FailoverStats, error)
GetStats returns failover statistics from all providers
func (*FailoverManager) HealthCheck ¶
func (fm *FailoverManager) HealthCheck(ctx context.Context, endpointID string) (types.HealthStatus, error)
HealthCheck performs health check on an endpoint using the default provider
func (*FailoverManager) HealthCheckAll ¶
func (fm *FailoverManager) HealthCheckAll(ctx context.Context) (map[string]types.HealthStatus, error)
HealthCheckAll performs health check on all endpoints using the default provider
func (*FailoverManager) HealthCheckAllWithProvider ¶
func (fm *FailoverManager) HealthCheckAllWithProvider(ctx context.Context, providerName string) (map[string]types.HealthStatus, error)
HealthCheckAllWithProvider performs health check on all endpoints using a specific provider
func (*FailoverManager) HealthCheckWithProvider ¶
func (fm *FailoverManager) HealthCheckWithProvider(ctx context.Context, providerName string, endpointID string) (types.HealthStatus, error)
HealthCheckWithProvider performs health check on an endpoint using a specific provider
func (*FailoverManager) ListEndpoints ¶
func (fm *FailoverManager) ListEndpoints(ctx context.Context) ([]*types.ServiceEndpoint, error)
ListEndpoints lists all endpoints using the default provider
func (*FailoverManager) ListEndpointsWithProvider ¶
func (fm *FailoverManager) ListEndpointsWithProvider(ctx context.Context, providerName string) ([]*types.ServiceEndpoint, error)
ListEndpointsWithProvider lists all endpoints using a specific provider
func (*FailoverManager) ListProviders ¶
func (fm *FailoverManager) ListProviders() []string
ListProviders returns a list of registered provider names
func (*FailoverManager) RegisterEndpoint ¶
func (fm *FailoverManager) RegisterEndpoint(ctx context.Context, endpoint *types.ServiceEndpoint) error
RegisterEndpoint registers an endpoint using the default provider
func (*FailoverManager) RegisterEndpointWithProvider ¶
func (fm *FailoverManager) RegisterEndpointWithProvider(ctx context.Context, providerName string, endpoint *types.ServiceEndpoint) error
RegisterEndpointWithProvider registers an endpoint using a specific provider
func (*FailoverManager) RegisterProvider ¶
func (fm *FailoverManager) RegisterProvider(provider FailoverProvider) error
RegisterProvider registers a failover provider
func (*FailoverManager) SelectEndpoint ¶
func (fm *FailoverManager) SelectEndpoint(ctx context.Context, config *types.FailoverConfig) (*types.FailoverResult, error)
SelectEndpoint selects an endpoint using the default provider
func (*FailoverManager) SelectEndpointWithProvider ¶
func (fm *FailoverManager) SelectEndpointWithProvider(ctx context.Context, providerName string, config *types.FailoverConfig) (*types.FailoverResult, error)
SelectEndpointWithProvider selects an endpoint using a specific provider
func (*FailoverManager) UpdateEndpoint ¶
func (fm *FailoverManager) UpdateEndpoint(ctx context.Context, endpoint *types.ServiceEndpoint) error
UpdateEndpoint updates an endpoint using the default provider
func (*FailoverManager) UpdateEndpointWithProvider ¶
func (fm *FailoverManager) UpdateEndpointWithProvider(ctx context.Context, providerName string, endpoint *types.ServiceEndpoint) error
UpdateEndpointWithProvider updates an endpoint using a specific provider
type FailoverProvider ¶
type FailoverProvider interface {
// Provider information
GetName() string
GetSupportedFeatures() []types.FailoverFeature
GetConnectionInfo() *types.ConnectionInfo
// Connection management
Connect(ctx context.Context) error
Disconnect(ctx context.Context) error
Ping(ctx context.Context) error
IsConnected() bool
// Endpoint management
RegisterEndpoint(ctx context.Context, endpoint *types.ServiceEndpoint) error
DeregisterEndpoint(ctx context.Context, endpointID string) error
UpdateEndpoint(ctx context.Context, endpoint *types.ServiceEndpoint) error
GetEndpoint(ctx context.Context, endpointID string) (*types.ServiceEndpoint, error)
ListEndpoints(ctx context.Context) ([]*types.ServiceEndpoint, error)
// Failover operations
SelectEndpoint(ctx context.Context, config *types.FailoverConfig) (*types.FailoverResult, error)
ExecuteWithFailover(ctx context.Context, config *types.FailoverConfig, fn func(*types.ServiceEndpoint) (interface{}, error)) (*types.FailoverResult, error)
HealthCheck(ctx context.Context, endpointID string) (types.HealthStatus, error)
HealthCheckAll(ctx context.Context) (map[string]types.HealthStatus, error)
// Configuration management
Configure(ctx context.Context, config *types.FailoverConfig) error
GetConfig(ctx context.Context) (*types.FailoverConfig, error)
// Statistics and monitoring
GetStats(ctx context.Context) (*types.FailoverStats, error)
GetEvents(ctx context.Context, limit int) ([]*types.FailoverEvent, error)
Close(ctx context.Context) error
}
FailoverProvider interface for failover backends
type ManagerConfig ¶
type ManagerConfig struct {
DefaultProvider string `json:"default_provider"`
RetryAttempts int `json:"retry_attempts"`
RetryDelay time.Duration `json:"retry_delay"`
Timeout time.Duration `json:"timeout"`
FallbackEnabled bool `json:"fallback_enabled"`
Metadata map[string]string `json:"metadata"`
}
ManagerConfig holds failover manager configuration