bg

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2025 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const BG_CLUSTER_ID = "941d00a8-8238-4f7d-bf59-771bff783a8e"
View Source
const DEFAULT_CHECK_INTERVAL = 5 * 60_000 // 5 minutes
View Source
const SLEEP_CHUNK_DURATION = 50 * time.Millisecond
View Source
const SLEEP_TIME_DURATION = 100 * time.Millisecond
View Source
const TELEMETRY_SWITCHOVER = "Blue/Green switchover"

Variables

This section is empty.

Functions

Types

type BaseRouting

type BaseRouting struct {
	// contains filtered or unexported fields
}

func NewBaseRouting

func NewBaseRouting(hostAndPort string, role driver_infrastructure.BlueGreenRole) BaseRouting

func (BaseRouting) Delay

func (b BaseRouting) Delay(delayNanos time.Duration, bgStatus driver_infrastructure.BlueGreenStatus,
	pluginService driver_infrastructure.PluginService, bgId string)

func (BaseRouting) IsMatch

func (BaseRouting) String

func (b BaseRouting) String() string

type BlueGreenInterimStatus

type BlueGreenInterimStatus struct {
	// contains filtered or unexported fields
}

func NewTestBlueGreenInterimStatus

func NewTestBlueGreenInterimStatus(phase driver_infrastructure.BlueGreenPhase, startTopology []*host_info_util.HostInfo,
	startIpAddressesByHostMap map[string]string, ipChanged bool, endpointsRemoved bool, allChanged bool) BlueGreenInterimStatus

func (*BlueGreenInterimStatus) GetCustomHashCode

func (b *BlueGreenInterimStatus) GetCustomHashCode() uint64

func (*BlueGreenInterimStatus) IsZero

func (b *BlueGreenInterimStatus) IsZero() bool

func (*BlueGreenInterimStatus) String

func (b *BlueGreenInterimStatus) String() string

type BlueGreenPlugin

type BlueGreenPlugin struct {
	plugins.BaseConnectionPlugin
	// contains filtered or unexported fields
}

func (*BlueGreenPlugin) Connect

func (b *BlueGreenPlugin) Connect(
	hostInfo *host_info_util.HostInfo,
	props *utils.RWMap[string, string],
	isInitialConnection bool,
	connectFunc driver_infrastructure.ConnectFunc) (conn driver.Conn, err error)

func (*BlueGreenPlugin) Execute

func (b *BlueGreenPlugin) Execute(
	_ driver.Conn,
	methodName string,
	executeFunc driver_infrastructure.ExecuteFunc,
	methodArgs ...any) (wrappedReturnValue any, wrappedReturnValue2 any, wrappedOk bool, wrappedErr error)

func (*BlueGreenPlugin) GetHoldTimeNano

func (b *BlueGreenPlugin) GetHoldTimeNano() time.Duration

For testing purposes only.

func (*BlueGreenPlugin) GetPluginCode

func (b *BlueGreenPlugin) GetPluginCode() string

func (*BlueGreenPlugin) GetSubscribedMethods

func (b *BlueGreenPlugin) GetSubscribedMethods() []string

type BlueGreenPluginFactory

type BlueGreenPluginFactory struct{}

func (*BlueGreenPluginFactory) ClearCaches

func (b *BlueGreenPluginFactory) ClearCaches()

func (*BlueGreenPluginFactory) GetInstance

type BlueGreenProviderSupplier

type BlueGreenProviderSupplier = func(pluginService driver_infrastructure.PluginService, props *utils.RWMap[string, string], bgdId string) *BlueGreenStatusProvider

type BlueGreenStatusMonitor

type BlueGreenStatusMonitor struct {
	// contains filtered or unexported fields
}

func NewBlueGreenStatusMonitor

func NewBlueGreenStatusMonitor(blueGreenRole driver_infrastructure.BlueGreenRole, bgdId string, hostInfo *host_info_util.HostInfo,
	pluginService driver_infrastructure.PluginService, monitoringProps *utils.RWMap[string, string], statusCheckIntervalMap map[driver_infrastructure.BlueGreenIntervalRate]int,
	onBlueGreenStatusChangeFunc func(role driver_infrastructure.BlueGreenRole, interimStatus BlueGreenInterimStatus)) *BlueGreenStatusMonitor

func (*BlueGreenStatusMonitor) CloseConnection

func (b *BlueGreenStatusMonitor) CloseConnection()

func (*BlueGreenStatusMonitor) CollectHostIpAddresses

func (b *BlueGreenStatusMonitor) CollectHostIpAddresses()

func (*BlueGreenStatusMonitor) CollectStatus

func (b *BlueGreenStatusMonitor) CollectStatus()

func (*BlueGreenStatusMonitor) CollectTopology

func (b *BlueGreenStatusMonitor) CollectTopology() error

func (*BlueGreenStatusMonitor) Delay

func (b *BlueGreenStatusMonitor) Delay()

func (*BlueGreenStatusMonitor) GetConnectedIpAddress

func (b *BlueGreenStatusMonitor) GetConnectedIpAddress() (connectedIpAddressCopy string)

func (*BlueGreenStatusMonitor) GetCurrentTopology

func (b *BlueGreenStatusMonitor) GetCurrentTopology() []*host_info_util.HostInfo

func (*BlueGreenStatusMonitor) GetIntervalRate

func (*BlueGreenStatusMonitor) GetIpAddress

func (b *BlueGreenStatusMonitor) GetIpAddress(host string) string

func (*BlueGreenStatusMonitor) InitHostListProvider

func (b *BlueGreenStatusMonitor) InitHostListProvider()

func (*BlueGreenStatusMonitor) OpenConnection

func (b *BlueGreenStatusMonitor) OpenConnection()

func (*BlueGreenStatusMonitor) ResetCollectedData

func (b *BlueGreenStatusMonitor) ResetCollectedData()

func (*BlueGreenStatusMonitor) SetIntervalRate

func (b *BlueGreenStatusMonitor) SetIntervalRate(intervalRate driver_infrastructure.BlueGreenIntervalRate)

func (*BlueGreenStatusMonitor) UpdateIpAddressFlags

func (b *BlueGreenStatusMonitor) UpdateIpAddressFlags()

type BlueGreenStatusProvider

type BlueGreenStatusProvider struct {
	// contains filtered or unexported fields
}

func NewBlueGreenStatusProvider

func NewBlueGreenStatusProvider(pluginService driver_infrastructure.PluginService, props *utils.RWMap[string, string], bgId string) *BlueGreenStatusProvider

func (*BlueGreenStatusProvider) AddSubstituteBlueWithIpAddressConnectRouting

func (b *BlueGreenStatusProvider) AddSubstituteBlueWithIpAddressConnectRouting() []driver_infrastructure.ConnectRouting

func (*BlueGreenStatusProvider) ClearMonitors

func (b *BlueGreenStatusProvider) ClearMonitors()

func (*BlueGreenStatusProvider) CreatePostRouting

func (b *BlueGreenStatusProvider) CreatePostRouting() (connectRoutings []driver_infrastructure.ConnectRouting)

func (*BlueGreenStatusProvider) GetMonitoringProperties

func (b *BlueGreenStatusProvider) GetMonitoringProperties() *utils.RWMap[string, string]

func (*BlueGreenStatusProvider) GetReaderHosts

func (*BlueGreenStatusProvider) GetStatusOfCompleted

func (*BlueGreenStatusProvider) GetStatusOfCreated

func (*BlueGreenStatusProvider) GetStatusOfInProgress

func (*BlueGreenStatusProvider) GetStatusOfPost

func (*BlueGreenStatusProvider) GetStatusOfPreparation

func (*BlueGreenStatusProvider) GetWriterHost

func (*BlueGreenStatusProvider) IsAlreadySuccessfullyConnected

func (b *BlueGreenStatusProvider) IsAlreadySuccessfullyConnected(connectHost string, iamHost string) bool

func (*BlueGreenStatusProvider) IsSwitchoverTimerExpired

func (b *BlueGreenStatusProvider) IsSwitchoverTimerExpired() bool

func (*BlueGreenStatusProvider) LogCurrentContext

func (b *BlueGreenStatusProvider) LogCurrentContext()

func (*BlueGreenStatusProvider) LogSwitchoverFinalSummary

func (b *BlueGreenStatusProvider) LogSwitchoverFinalSummary()

func (*BlueGreenStatusProvider) PrepareStatus

func (*BlueGreenStatusProvider) PutIfAbsentPhaseTime

func (b *BlueGreenStatusProvider) PutIfAbsentPhaseTime(key string, phase driver_infrastructure.BlueGreenPhase)

func (*BlueGreenStatusProvider) RegisterIamHost

func (b *BlueGreenStatusProvider) RegisterIamHost(connectHost string, iamHost string)

func (*BlueGreenStatusProvider) ResetContextWhenCompleted

func (b *BlueGreenStatusProvider) ResetContextWhenCompleted()

func (*BlueGreenStatusProvider) StartSwitchoverTimer

func (b *BlueGreenStatusProvider) StartSwitchoverTimer()

func (*BlueGreenStatusProvider) StoreBlueDnsUpdateTime

func (b *BlueGreenStatusProvider) StoreBlueDnsUpdateTime()

func (*BlueGreenStatusProvider) StoreGreenDnsRemoveTime

func (b *BlueGreenStatusProvider) StoreGreenDnsRemoveTime()

func (*BlueGreenStatusProvider) StoreGreenHostChangeNameTime

func (b *BlueGreenStatusProvider) StoreGreenHostChangeNameTime()

func (*BlueGreenStatusProvider) StoreGreenTopologyChangeTime

func (b *BlueGreenStatusProvider) StoreGreenTopologyChangeTime()

func (*BlueGreenStatusProvider) StorePhaseTime

func (*BlueGreenStatusProvider) UpdateDnsFlags

func (*BlueGreenStatusProvider) UpdateMonitors

func (b *BlueGreenStatusProvider) UpdateMonitors() error

func (*BlueGreenStatusProvider) UpdatePhase

func (*BlueGreenStatusProvider) UpdateSummaryStatus

func (b *BlueGreenStatusProvider) UpdateSummaryStatus(role driver_infrastructure.BlueGreenRole, interimStatus BlueGreenInterimStatus) error

type IamSuccessfulConnectFunc

type IamSuccessfulConnectFunc = func(string)

type PhaseTimeInfo

type PhaseTimeInfo struct {
	Timestamp time.Time
	Phase     driver_infrastructure.BlueGreenPhase
}

type RejectConnectRouting

type RejectConnectRouting struct {
	BaseRouting
}

func NewRejectConnectRouting

func NewRejectConnectRouting(hostAndPort string, role driver_infrastructure.BlueGreenRole) *RejectConnectRouting

type StatusInfo

type StatusInfo struct {
	// contains filtered or unexported fields
}

func NewTestStatusInfo

func NewTestStatusInfo() StatusInfo

func (*StatusInfo) IsZero

func (s *StatusInfo) IsZero() bool

type SubstituteConnectRouting

type SubstituteConnectRouting struct {
	BaseRouting
	// contains filtered or unexported fields
}

func NewSubstituteConnectRouting

func NewSubstituteConnectRouting(hostAndPort string, role driver_infrastructure.BlueGreenRole, substituteHostInfo *host_info_util.HostInfo,
	iamHosts []*host_info_util.HostInfo, iamSuccessfulConnectNotify IamSuccessfulConnectFunc) *SubstituteConnectRouting

func (*SubstituteConnectRouting) Apply

func (*SubstituteConnectRouting) String

func (r *SubstituteConnectRouting) String() string

type SuspendConnectRouting

type SuspendConnectRouting struct {
	BaseRouting
	// contains filtered or unexported fields
}

func NewSuspendConnectRouting

func NewSuspendConnectRouting(hostAndPort string, role driver_infrastructure.BlueGreenRole, bgId string) *SuspendConnectRouting

type SuspendExecuteRouting

type SuspendExecuteRouting struct {
	BaseRouting
	// contains filtered or unexported fields
}

func NewSuspendExecuteRouting

func NewSuspendExecuteRouting(hostAndPort string, role driver_infrastructure.BlueGreenRole, bgId string) *SuspendExecuteRouting

type SuspendUntilCorrespondingHostFoundConnectRouting

type SuspendUntilCorrespondingHostFoundConnectRouting struct {
	BaseRouting
	// contains filtered or unexported fields
}

func (*SuspendUntilCorrespondingHostFoundConnectRouting) Apply

type TestBlueGreenStatusMonitor

type TestBlueGreenStatusMonitor struct {
	*BlueGreenStatusMonitor
}

func NewTestBlueGreenStatusMonitor

func NewTestBlueGreenStatusMonitor(blueGreenRole driver_infrastructure.BlueGreenRole, bgdId string, hostInfo *host_info_util.HostInfo,
	pluginService driver_infrastructure.PluginService, monitoringProps *utils.RWMap[string, string], statusCheckIntervalMap map[driver_infrastructure.BlueGreenIntervalRate]int,
	onBlueGreenStatusChangeFunc func(role driver_infrastructure.BlueGreenRole, interimStatus BlueGreenInterimStatus)) *TestBlueGreenStatusMonitor

func (*TestBlueGreenStatusMonitor) GetAllStartTopologyEndpointsRemoved

func (t *TestBlueGreenStatusMonitor) GetAllStartTopologyEndpointsRemoved() bool

func (*TestBlueGreenStatusMonitor) GetAllStartTopologyIpChanged

func (t *TestBlueGreenStatusMonitor) GetAllStartTopologyIpChanged() bool

func (*TestBlueGreenStatusMonitor) GetAllTopologyChanged

func (t *TestBlueGreenStatusMonitor) GetAllTopologyChanged() bool

func (*TestBlueGreenStatusMonitor) GetConnection

func (t *TestBlueGreenStatusMonitor) GetConnection() *driver.Conn

func (*TestBlueGreenStatusMonitor) GetCurrentIpAddressesByHostMap

func (t *TestBlueGreenStatusMonitor) GetCurrentIpAddressesByHostMap() *utils.RWMap[string, string]

func (*TestBlueGreenStatusMonitor) GetCurrentPhase

func (*TestBlueGreenStatusMonitor) GetHostListProvider

func (*TestBlueGreenStatusMonitor) GetHostNames

func (t *TestBlueGreenStatusMonitor) GetHostNames() *utils.RWMap[string, bool]

func (*TestBlueGreenStatusMonitor) GetPanicMode

func (t *TestBlueGreenStatusMonitor) GetPanicMode() bool

func (*TestBlueGreenStatusMonitor) GetStartIpAddressesByHostMap

func (t *TestBlueGreenStatusMonitor) GetStartIpAddressesByHostMap() *utils.RWMap[string, string]

func (*TestBlueGreenStatusMonitor) SetAllStartTopologyEndpointsRemoved

func (t *TestBlueGreenStatusMonitor) SetAllStartTopologyEndpointsRemoved(val bool)

func (*TestBlueGreenStatusMonitor) SetAllStartTopologyIpChanged

func (t *TestBlueGreenStatusMonitor) SetAllStartTopologyIpChanged(val bool)

func (*TestBlueGreenStatusMonitor) SetAllTopologyChanged

func (t *TestBlueGreenStatusMonitor) SetAllTopologyChanged(val bool)

func (*TestBlueGreenStatusMonitor) SetCollectedIpAddresses

func (t *TestBlueGreenStatusMonitor) SetCollectedIpAddresses(val bool)

func (*TestBlueGreenStatusMonitor) SetCollectedTopology

func (t *TestBlueGreenStatusMonitor) SetCollectedTopology(val bool)

func (*TestBlueGreenStatusMonitor) SetConnectedIpAddress

func (t *TestBlueGreenStatusMonitor) SetConnectedIpAddress(val string)

func (*TestBlueGreenStatusMonitor) SetConnection

func (t *TestBlueGreenStatusMonitor) SetConnection(val *driver.Conn)

func (*TestBlueGreenStatusMonitor) SetConnectionHostInfo

func (t *TestBlueGreenStatusMonitor) SetConnectionHostInfo(val *host_info_util.HostInfo)

func (*TestBlueGreenStatusMonitor) SetConnectionHostInfoCorrect

func (t *TestBlueGreenStatusMonitor) SetConnectionHostInfoCorrect(val bool)

func (*TestBlueGreenStatusMonitor) SetCurrentTopology

func (t *TestBlueGreenStatusMonitor) SetCurrentTopology(val *[]*host_info_util.HostInfo)

func (*TestBlueGreenStatusMonitor) SetHostListProvider

func (*TestBlueGreenStatusMonitor) SetPanicMode

func (t *TestBlueGreenStatusMonitor) SetPanicMode(val bool)

func (*TestBlueGreenStatusMonitor) SetStartTopology

func (t *TestBlueGreenStatusMonitor) SetStartTopology(val []*host_info_util.HostInfo)

func (*TestBlueGreenStatusMonitor) SetStop

func (t *TestBlueGreenStatusMonitor) SetStop(val bool)

func (*TestBlueGreenStatusMonitor) SetUseIpAddress

func (t *TestBlueGreenStatusMonitor) SetUseIpAddress(val bool)

type TestBlueGreenStatusProvider

type TestBlueGreenStatusProvider struct {
	*BlueGreenStatusProvider
}

func NewTestBlueGreenStatusProvider

func NewTestBlueGreenStatusProvider(pluginService driver_infrastructure.PluginService, props *utils.RWMap[string, string], bgId string) *TestBlueGreenStatusProvider

func (*TestBlueGreenStatusProvider) GetAllGreenHostsChangedName

func (t *TestBlueGreenStatusProvider) GetAllGreenHostsChangedName() bool

func (*TestBlueGreenStatusProvider) GetBlueDnsUpdateCompleted

func (t *TestBlueGreenStatusProvider) GetBlueDnsUpdateCompleted() bool

func (*TestBlueGreenStatusProvider) GetCorrespondingHosts

func (*TestBlueGreenStatusProvider) GetGreenDnsRemoved

func (t *TestBlueGreenStatusProvider) GetGreenDnsRemoved() bool

func (*TestBlueGreenStatusProvider) GetGreenTopologyChanged

func (t *TestBlueGreenStatusProvider) GetGreenTopologyChanged() bool

func (*TestBlueGreenStatusProvider) GetHostIpAddresses

func (t *TestBlueGreenStatusProvider) GetHostIpAddresses() *utils.RWMap[string, string]

func (*TestBlueGreenStatusProvider) GetInterimStatuses

func (t *TestBlueGreenStatusProvider) GetInterimStatuses() []BlueGreenInterimStatus

func (*TestBlueGreenStatusProvider) GetLatestStatusPhase

func (*TestBlueGreenStatusProvider) GetPhaseTimeNano

func (t *TestBlueGreenStatusProvider) GetPhaseTimeNano() *utils.RWMap[string, PhaseTimeInfo]

func (*TestBlueGreenStatusProvider) GetPostStatusEndTime

func (t *TestBlueGreenStatusProvider) GetPostStatusEndTime() time.Time

func (*TestBlueGreenStatusProvider) GetRoleByHost

func (*TestBlueGreenStatusProvider) GetRollback

func (t *TestBlueGreenStatusProvider) GetRollback() bool

func (*TestBlueGreenStatusProvider) SetAllGreenHostsChangedName

func (t *TestBlueGreenStatusProvider) SetAllGreenHostsChangedName(val bool)

func (*TestBlueGreenStatusProvider) SetBlueDnsUpdateCompleted

func (t *TestBlueGreenStatusProvider) SetBlueDnsUpdateCompleted(val bool)

func (*TestBlueGreenStatusProvider) SetGreenDnsRemoved

func (t *TestBlueGreenStatusProvider) SetGreenDnsRemoved(val bool)

func (*TestBlueGreenStatusProvider) SetGreenTopologyChanged

func (t *TestBlueGreenStatusProvider) SetGreenTopologyChanged(val bool)

func (*TestBlueGreenStatusProvider) SetPostStatusEndTime

func (t *TestBlueGreenStatusProvider) SetPostStatusEndTime(val time.Time)

func (*TestBlueGreenStatusProvider) SetRollback

func (t *TestBlueGreenStatusProvider) SetRollback(val bool)

func (*TestBlueGreenStatusProvider) SetSummaryStatus

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL