v1.11.1 Latest Latest

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

Go to latest
Published: Jul 10, 2024 License: Apache-2.0 Imports: 21 Imported by: 0




View Source
const (
	// PublicIP is the value for public IP connections.
	PublicIP = "PUBLIC"
	// PrivateIP is the value for private IP connections.
	PrivateIP = "PRIVATE"
	// PSC designates PSC-based connections.
	PSC = "PSC"
View Source
const (

	// RefreshTimeout is the maximum amount of time to wait for a refresh
	// cycle to complete. This value should be greater than the
	// refreshInterval.
	RefreshTimeout = 60 * time.Second


This section is empty.


This section is empty.


type ConnectionInfo added in v1.9.0

type ConnectionInfo struct {
	Instance   InstanceURI
	IPAddrs    map[string]string
	ClientCert tls.Certificate
	RootCAs    *x509.CertPool
	Expiration time.Time

ConnectionInfo holds all the data necessary to connect to an instance.

type InstanceURI added in v1.2.2

type InstanceURI struct {
	// contains filtered or unexported fields

InstanceURI represents an AlloyDB instance.

func ParseInstURI added in v1.2.2

func ParseInstURI(cn string) (InstanceURI, error)

ParseInstURI initializes a new InstanceURI struct.

func (*InstanceURI) String added in v1.2.2

func (i *InstanceURI) String() string

String returns a short-hand representation of an instance URI.

func (*InstanceURI) URI added in v1.10.0

func (i *InstanceURI) URI() string

URI returns the full URI specifying an instance.

type LazyRefreshCache added in v1.10.0

type LazyRefreshCache struct {
	// contains filtered or unexported fields

LazyRefreshCache is caches connection info and refreshes the cache only when a caller requests connection info and the current certificate is expired.

func NewLazyRefreshCache added in v1.10.0

func NewLazyRefreshCache(
	uri InstanceURI,
	l debug.ContextLogger,
	client *alloydbadmin.AlloyDBAdminClient,
	key *rsa.PrivateKey,
	_ time.Duration,
	dialerID string,
) *LazyRefreshCache

NewLazyRefreshCache initializes a new LazyRefreshCache.

func (*LazyRefreshCache) Close added in v1.10.0

func (c *LazyRefreshCache) Close() error

Close is a no-op and provided purely for a consistent interface with other caching types.

func (*LazyRefreshCache) ConnectionInfo added in v1.10.0

func (c *LazyRefreshCache) ConnectionInfo(
	ctx context.Context,
) (ConnectionInfo, error)

ConnectionInfo returns connection info for the associated instance. New connection info is retrieved under two conditions: - the current connection info's certificate has expired, or - a caller has separately called ForceRefresh

func (*LazyRefreshCache) ForceRefresh added in v1.10.0

func (c *LazyRefreshCache) ForceRefresh()

ForceRefresh invalidates the caches and configures the next call to ConnectionInfo to retrieve a fresh connection info.

type RefreshAheadCache added in v1.9.0

type RefreshAheadCache struct {
	// contains filtered or unexported fields

RefreshAheadCache manages the information used to connect to the AlloyDB instance by periodically calling the AlloyDB Admin API. It automatically refreshes the required information approximately 4 minutes before the previous certificate expires (every ~56 minutes).

func NewRefreshAheadCache added in v1.9.0

func NewRefreshAheadCache(
	instance InstanceURI,
	l debug.ContextLogger,
	client *alloydbadmin.AlloyDBAdminClient,
	key *rsa.PrivateKey,
	refreshTimeout time.Duration,
	dialerID string,
) *RefreshAheadCache

NewRefreshAheadCache initializes a new cache that proactively refreshes the caches connection info.

func (*RefreshAheadCache) Close added in v1.9.0

func (i *RefreshAheadCache) Close() error

Close closes the instance; it stops the refresh cycle and prevents it from making additional calls to the AlloyDB Admin API.

func (*RefreshAheadCache) ConnectionInfo added in v1.9.0

func (i *RefreshAheadCache) ConnectionInfo(ctx context.Context) (ConnectionInfo, error)

ConnectionInfo returns an IP address specified by ipType (i.e., public or private) of the AlloyDB instance.

func (*RefreshAheadCache) ForceRefresh added in v1.9.0

func (i *RefreshAheadCache) ForceRefresh()

ForceRefresh triggers an immediate refresh operation to be scheduled and used for future connection attempts if valid.

type StaticConnectionInfoCache added in v1.10.0

type StaticConnectionInfoCache struct {
	// contains filtered or unexported fields

StaticConnectionInfoCache provides connection info that is never refreshed.

func NewStaticConnectionInfoCache added in v1.10.0

func NewStaticConnectionInfoCache(
	inst InstanceURI,
	l debug.ContextLogger,
	r io.Reader,
) (*StaticConnectionInfoCache, error)

NewStaticConnectionInfoCache creates a connection info cache that will always return the predefined connection info within the provided io.Reader

func (*StaticConnectionInfoCache) Close added in v1.10.0

Close is a no-op.

func (*StaticConnectionInfoCache) ConnectionInfo added in v1.10.0

func (c *StaticConnectionInfoCache) ConnectionInfo(
	_ context.Context,
) (ConnectionInfo, error)

ConnectionInfo returns the connection info for the specified instance URI as loaded from the provided io.Reader.

func (*StaticConnectionInfoCache) ForceRefresh added in v1.10.0

func (*StaticConnectionInfoCache) ForceRefresh()

ForceRefresh is a no-op as the cache holds only static connection information and does no refresh.

Jump to

Keyboard shortcuts

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