domain

package
v0.18.0 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2021 License: MIT Imports: 26 Imported by: 0

Documentation

Overview

Package domain is a generated GoMock package.

Package domain is a generated GoMock package.

Package domain is a generated GoMock package.

Package domain is a generated GoMock package.

Package domain is a generated GoMock package.

Index

Constants

View Source
const (
	// MinRetentionDays is the minimal retention days for any domain
	MinRetentionDays = 1

	// MaxBadBinaries is the maximal number of bad client binaries stored in a domain
	MaxBadBinaries = 10

	// FailoverCoolDown is the duration between two failovers
	FailoverCoolDown = 1 * time.Minute
)

Variables

View Source
var (
	// ErrEmptyDomainReplicationTask is the error to indicate empty replication task
	ErrEmptyDomainReplicationTask = &types.BadRequestError{Message: "empty domain replication task"}
	// ErrInvalidDomainOperation is the error to indicate empty domain operation attribute
	ErrInvalidDomainOperation = &types.BadRequestError{Message: "invalid domain operation attribute"}
	// ErrInvalidDomainID is the error to indicate empty rID attribute
	ErrInvalidDomainID = &types.BadRequestError{Message: "invalid domain ID attribute"}
	// ErrInvalidDomainInfo is the error to indicate empty info attribute
	ErrInvalidDomainInfo = &types.BadRequestError{Message: "invalid domain info attribute"}
	// ErrInvalidDomainConfig is the error to indicate empty config attribute
	ErrInvalidDomainConfig = &types.BadRequestError{Message: "invalid domain config attribute"}
	// ErrInvalidDomainReplicationConfig is the error to indicate empty replication config attribute
	ErrInvalidDomainReplicationConfig = &types.BadRequestError{Message: "invalid domain replication config attribute"}
	// ErrInvalidDomainConfigVersion is the error to indicate empty config version attribute
	ErrInvalidDomainConfigVersion = &types.BadRequestError{Message: "invalid domain config version attribute"}
	// ErrInvalidDomainFailoverVersion is the error to indicate empty failover version attribute
	ErrInvalidDomainFailoverVersion = &types.BadRequestError{Message: "invalid domain failover version attribute"}
	// ErrInvalidDomainStatus is the error to indicate invalid domain status
	ErrInvalidDomainStatus = &types.BadRequestError{Message: "invalid domain status attribute"}
	// ErrNameUUIDCollision is the error to indicate domain name / UUID collision
	ErrNameUUIDCollision = &types.BadRequestError{Message: "domain replication encounter name / UUID collision"}
)

Functions

func CleanPendingActiveState added in v0.14.0

func CleanPendingActiveState(
	metadataMgr persistence.MetadataManager,
	domainID string,
	failoverVersion int64,
	policy backoff.RetryPolicy,
) error

CleanPendingActiveState removes the pending active state from the domain

Types

type ArchivalEvent

type ArchivalEvent struct {
	URI string
	// contains filtered or unexported fields
}

ArchivalEvent represents a change request to archival config state the only restriction placed on events is that defaultURI is not empty status can be nil, enabled, or disabled (nil indicates no update by user is being attempted)

type ArchivalState

type ArchivalState struct {
	Status types.ArchivalStatus
	URI    string
}

ArchivalState represents the state of archival config the only invalid state is {URI="", status=enabled} once URI is set it is immutable

type AttrValidatorImpl

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

AttrValidatorImpl is domain attr validator

type Config added in v0.16.0

type Config struct {
	MinRetentionDays  dynamicconfig.IntPropertyFn
	MaxBadBinaryCount dynamicconfig.IntPropertyFnWithDomainFilter
	FailoverCoolDown  dynamicconfig.DurationPropertyFnWithDomainFilter
}

Config is the domain config for domain handler

type DLQMessageHandler added in v0.12.0

type DLQMessageHandler interface {
	Read(ctx context.Context, lastMessageID int64, pageSize int, pageToken []byte) ([]*types.ReplicationTask, []byte, error)
	Purge(ctx context.Context, lastMessageID int64) error
	Merge(ctx context.Context, lastMessageID int64, pageSize int, pageToken []byte) ([]byte, error)
}

DLQMessageHandler is the interface handles domain DLQ messages

func NewDLQMessageHandler added in v0.12.0

func NewDLQMessageHandler(
	replicationHandler ReplicationTaskExecutor,
	replicationQueue ReplicationQueue,
	logger log.Logger,
) DLQMessageHandler

NewDLQMessageHandler returns a DLQTaskHandler instance

type FailoverWatcher added in v0.14.0

type FailoverWatcher interface {
	common.Daemon
}

FailoverWatcher handles failover operation on domain entities

func NewFailoverWatcher added in v0.14.0

func NewFailoverWatcher(
	domainCache cache.DomainCache,
	metadataMgr persistence.MetadataManager,
	timeSource clock.TimeSource,
	refreshInterval dynamicconfig.DurationPropertyFn,
	refreshJitter dynamicconfig.FloatPropertyFn,
	metrics metrics.Client,
	logger log.Logger,
) FailoverWatcher

NewFailoverWatcher initializes domain failover processor

type Handler

type Handler interface {
	DeprecateDomain(
		ctx context.Context,
		deprecateRequest *types.DeprecateDomainRequest,
	) error
	DescribeDomain(
		ctx context.Context,
		describeRequest *types.DescribeDomainRequest,
	) (*types.DescribeDomainResponse, error)
	ListDomains(
		ctx context.Context,
		listRequest *types.ListDomainsRequest,
	) (*types.ListDomainsResponse, error)
	RegisterDomain(
		ctx context.Context,
		registerRequest *types.RegisterDomainRequest,
	) error
	UpdateDomain(
		ctx context.Context,
		updateRequest *types.UpdateDomainRequest,
	) (*types.UpdateDomainResponse, error)
}

Handler is the domain operation handler

func NewHandler

func NewHandler(
	config Config,
	logger log.Logger,
	metadataMgr persistence.MetadataManager,
	clusterMetadata cluster.Metadata,
	domainReplicator Replicator,
	archivalMetadata archiver.ArchivalMetadata,
	archiverProvider provider.ArchiverProvider,
	timeSource clock.TimeSource,
) Handler

NewHandler create a new domain handler

type MockDLQMessageHandler added in v0.12.0

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

MockDLQMessageHandler is a mock of DLQMessageHandler interface

func NewMockDLQMessageHandler added in v0.12.0

func NewMockDLQMessageHandler(ctrl *gomock.Controller) *MockDLQMessageHandler

NewMockDLQMessageHandler creates a new mock instance

func (*MockDLQMessageHandler) EXPECT added in v0.12.0

EXPECT returns an object that allows the caller to indicate expected use

func (*MockDLQMessageHandler) Merge added in v0.12.0

func (m *MockDLQMessageHandler) Merge(ctx context.Context, lastMessageID int64, pageSize int, pageToken []byte) ([]byte, error)

Merge mocks base method

func (*MockDLQMessageHandler) Purge added in v0.12.0

func (m *MockDLQMessageHandler) Purge(ctx context.Context, lastMessageID int64) error

Purge mocks base method

func (*MockDLQMessageHandler) Read added in v0.12.0

func (m *MockDLQMessageHandler) Read(ctx context.Context, lastMessageID int64, pageSize int, pageToken []byte) ([]*types.ReplicationTask, []byte, error)

Read mocks base method

type MockDLQMessageHandlerMockRecorder added in v0.12.0

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

MockDLQMessageHandlerMockRecorder is the mock recorder for MockDLQMessageHandler

func (*MockDLQMessageHandlerMockRecorder) Merge added in v0.12.0

func (mr *MockDLQMessageHandlerMockRecorder) Merge(ctx, lastMessageID, pageSize, pageToken interface{}) *gomock.Call

Merge indicates an expected call of Merge

func (*MockDLQMessageHandlerMockRecorder) Purge added in v0.12.0

func (mr *MockDLQMessageHandlerMockRecorder) Purge(ctx, lastMessageID interface{}) *gomock.Call

Purge indicates an expected call of Purge

func (*MockDLQMessageHandlerMockRecorder) Read added in v0.12.0

func (mr *MockDLQMessageHandlerMockRecorder) Read(ctx, lastMessageID, pageSize, pageToken interface{}) *gomock.Call

Read indicates an expected call of Read

type MockFailoverWatcher added in v0.14.0

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

MockFailoverWatcher is a mock of FailoverWatcher interface

func NewMockFailoverWatcher added in v0.14.0

func NewMockFailoverWatcher(ctrl *gomock.Controller) *MockFailoverWatcher

NewMockFailoverWatcher creates a new mock instance

func (*MockFailoverWatcher) EXPECT added in v0.14.0

EXPECT returns an object that allows the caller to indicate expected use

func (*MockFailoverWatcher) Start added in v0.14.0

func (m *MockFailoverWatcher) Start()

Start mocks base method

func (*MockFailoverWatcher) Stop added in v0.14.0

func (m *MockFailoverWatcher) Stop()

Stop mocks base method

type MockFailoverWatcherMockRecorder added in v0.14.0

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

MockFailoverWatcherMockRecorder is the mock recorder for MockFailoverWatcher

func (*MockFailoverWatcherMockRecorder) Start added in v0.14.0

Start indicates an expected call of Start

func (*MockFailoverWatcherMockRecorder) Stop added in v0.14.0

Stop indicates an expected call of Stop

type MockHandler added in v0.11.0

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

MockHandler is a mock of Handler interface

func NewMockHandler added in v0.11.0

func NewMockHandler(ctrl *gomock.Controller) *MockHandler

NewMockHandler creates a new mock instance

func (*MockHandler) DeprecateDomain added in v0.11.0

func (m *MockHandler) DeprecateDomain(ctx context.Context, deprecateRequest *types.DeprecateDomainRequest) error

DeprecateDomain mocks base method

func (*MockHandler) DescribeDomain added in v0.11.0

func (m *MockHandler) DescribeDomain(ctx context.Context, describeRequest *types.DescribeDomainRequest) (*types.DescribeDomainResponse, error)

DescribeDomain mocks base method

func (*MockHandler) EXPECT added in v0.11.0

func (m *MockHandler) EXPECT() *MockHandlerMockRecorder

EXPECT returns an object that allows the caller to indicate expected use

func (*MockHandler) ListDomains added in v0.11.0

func (m *MockHandler) ListDomains(ctx context.Context, listRequest *types.ListDomainsRequest) (*types.ListDomainsResponse, error)

ListDomains mocks base method

func (*MockHandler) RegisterDomain added in v0.11.0

func (m *MockHandler) RegisterDomain(ctx context.Context, registerRequest *types.RegisterDomainRequest) error

RegisterDomain mocks base method

func (*MockHandler) UpdateDomain added in v0.11.0

func (m *MockHandler) UpdateDomain(ctx context.Context, updateRequest *types.UpdateDomainRequest) (*types.UpdateDomainResponse, error)

UpdateDomain mocks base method

type MockHandlerMockRecorder added in v0.11.0

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

MockHandlerMockRecorder is the mock recorder for MockHandler

func (*MockHandlerMockRecorder) DeprecateDomain added in v0.11.0

func (mr *MockHandlerMockRecorder) DeprecateDomain(ctx, deprecateRequest interface{}) *gomock.Call

DeprecateDomain indicates an expected call of DeprecateDomain

func (*MockHandlerMockRecorder) DescribeDomain added in v0.11.0

func (mr *MockHandlerMockRecorder) DescribeDomain(ctx, describeRequest interface{}) *gomock.Call

DescribeDomain indicates an expected call of DescribeDomain

func (*MockHandlerMockRecorder) ListDomains added in v0.11.0

func (mr *MockHandlerMockRecorder) ListDomains(ctx, listRequest interface{}) *gomock.Call

ListDomains indicates an expected call of ListDomains

func (*MockHandlerMockRecorder) RegisterDomain added in v0.11.0

func (mr *MockHandlerMockRecorder) RegisterDomain(ctx, registerRequest interface{}) *gomock.Call

RegisterDomain indicates an expected call of RegisterDomain

func (*MockHandlerMockRecorder) UpdateDomain added in v0.11.0

func (mr *MockHandlerMockRecorder) UpdateDomain(ctx, updateRequest interface{}) *gomock.Call

UpdateDomain indicates an expected call of UpdateDomain

type MockReplicationQueue added in v0.17.0

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

MockReplicationQueue is a mock of ReplicationQueue interface

func NewMockReplicationQueue added in v0.17.0

func NewMockReplicationQueue(ctrl *gomock.Controller) *MockReplicationQueue

NewMockReplicationQueue creates a new mock instance

func (*MockReplicationQueue) DeleteMessageFromDLQ added in v0.17.0

func (m *MockReplicationQueue) DeleteMessageFromDLQ(ctx context.Context, messageID int64) error

DeleteMessageFromDLQ mocks base method

func (*MockReplicationQueue) EXPECT added in v0.17.0

EXPECT returns an object that allows the caller to indicate expected use

func (*MockReplicationQueue) GetAckLevels added in v0.17.0

func (m *MockReplicationQueue) GetAckLevels(ctx context.Context) (map[string]int64, error)

GetAckLevels mocks base method

func (*MockReplicationQueue) GetDLQAckLevel added in v0.17.0

func (m *MockReplicationQueue) GetDLQAckLevel(ctx context.Context) (int64, error)

GetDLQAckLevel mocks base method

func (*MockReplicationQueue) GetMessagesFromDLQ added in v0.17.0

func (m *MockReplicationQueue) GetMessagesFromDLQ(ctx context.Context, firstMessageID, lastMessageID int64, pageSize int, pageToken []byte) ([]*types.ReplicationTask, []byte, error)

GetMessagesFromDLQ mocks base method

func (*MockReplicationQueue) GetReplicationMessages added in v0.17.0

func (m *MockReplicationQueue) GetReplicationMessages(ctx context.Context, lastMessageID int64, maxCount int) ([]*types.ReplicationTask, int64, error)

GetReplicationMessages mocks base method

func (*MockReplicationQueue) Publish added in v0.17.0

func (m *MockReplicationQueue) Publish(ctx context.Context, message interface{}) error

Publish mocks base method

func (*MockReplicationQueue) PublishToDLQ added in v0.17.0

func (m *MockReplicationQueue) PublishToDLQ(ctx context.Context, message interface{}) error

PublishToDLQ mocks base method

func (*MockReplicationQueue) RangeDeleteMessagesFromDLQ added in v0.17.0

func (m *MockReplicationQueue) RangeDeleteMessagesFromDLQ(ctx context.Context, firstMessageID, lastMessageID int64) error

RangeDeleteMessagesFromDLQ mocks base method

func (*MockReplicationQueue) Start added in v0.17.0

func (m *MockReplicationQueue) Start()

Start mocks base method

func (*MockReplicationQueue) Stop added in v0.17.0

func (m *MockReplicationQueue) Stop()

Stop mocks base method

func (*MockReplicationQueue) UpdateAckLevel added in v0.17.0

func (m *MockReplicationQueue) UpdateAckLevel(ctx context.Context, lastProcessedMessageID int64, clusterName string) error

UpdateAckLevel mocks base method

func (*MockReplicationQueue) UpdateDLQAckLevel added in v0.17.0

func (m *MockReplicationQueue) UpdateDLQAckLevel(ctx context.Context, lastProcessedMessageID int64) error

UpdateDLQAckLevel mocks base method

type MockReplicationQueueMockRecorder added in v0.17.0

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

MockReplicationQueueMockRecorder is the mock recorder for MockReplicationQueue

func (*MockReplicationQueueMockRecorder) DeleteMessageFromDLQ added in v0.17.0

func (mr *MockReplicationQueueMockRecorder) DeleteMessageFromDLQ(ctx, messageID interface{}) *gomock.Call

DeleteMessageFromDLQ indicates an expected call of DeleteMessageFromDLQ

func (*MockReplicationQueueMockRecorder) GetAckLevels added in v0.17.0

func (mr *MockReplicationQueueMockRecorder) GetAckLevels(ctx interface{}) *gomock.Call

GetAckLevels indicates an expected call of GetAckLevels

func (*MockReplicationQueueMockRecorder) GetDLQAckLevel added in v0.17.0

func (mr *MockReplicationQueueMockRecorder) GetDLQAckLevel(ctx interface{}) *gomock.Call

GetDLQAckLevel indicates an expected call of GetDLQAckLevel

func (*MockReplicationQueueMockRecorder) GetMessagesFromDLQ added in v0.17.0

func (mr *MockReplicationQueueMockRecorder) GetMessagesFromDLQ(ctx, firstMessageID, lastMessageID, pageSize, pageToken interface{}) *gomock.Call

GetMessagesFromDLQ indicates an expected call of GetMessagesFromDLQ

func (*MockReplicationQueueMockRecorder) GetReplicationMessages added in v0.17.0

func (mr *MockReplicationQueueMockRecorder) GetReplicationMessages(ctx, lastMessageID, maxCount interface{}) *gomock.Call

GetReplicationMessages indicates an expected call of GetReplicationMessages

func (*MockReplicationQueueMockRecorder) Publish added in v0.17.0

func (mr *MockReplicationQueueMockRecorder) Publish(ctx, message interface{}) *gomock.Call

Publish indicates an expected call of Publish

func (*MockReplicationQueueMockRecorder) PublishToDLQ added in v0.17.0

func (mr *MockReplicationQueueMockRecorder) PublishToDLQ(ctx, message interface{}) *gomock.Call

PublishToDLQ indicates an expected call of PublishToDLQ

func (*MockReplicationQueueMockRecorder) RangeDeleteMessagesFromDLQ added in v0.17.0

func (mr *MockReplicationQueueMockRecorder) RangeDeleteMessagesFromDLQ(ctx, firstMessageID, lastMessageID interface{}) *gomock.Call

RangeDeleteMessagesFromDLQ indicates an expected call of RangeDeleteMessagesFromDLQ

func (*MockReplicationQueueMockRecorder) Start added in v0.17.0

Start indicates an expected call of Start

func (*MockReplicationQueueMockRecorder) Stop added in v0.17.0

Stop indicates an expected call of Stop

func (*MockReplicationQueueMockRecorder) UpdateAckLevel added in v0.17.0

func (mr *MockReplicationQueueMockRecorder) UpdateAckLevel(ctx, lastProcessedMessageID, clusterName interface{}) *gomock.Call

UpdateAckLevel indicates an expected call of UpdateAckLevel

func (*MockReplicationQueueMockRecorder) UpdateDLQAckLevel added in v0.17.0

func (mr *MockReplicationQueueMockRecorder) UpdateDLQAckLevel(ctx, lastProcessedMessageID interface{}) *gomock.Call

UpdateDLQAckLevel indicates an expected call of UpdateDLQAckLevel

type MockReplicationTaskExecutor added in v0.12.0

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

MockReplicationTaskExecutor is a mock of ReplicationTaskExecutor interface

func NewMockReplicationTaskExecutor added in v0.12.0

func NewMockReplicationTaskExecutor(ctrl *gomock.Controller) *MockReplicationTaskExecutor

NewMockReplicationTaskExecutor creates a new mock instance

func (*MockReplicationTaskExecutor) EXPECT added in v0.12.0

EXPECT returns an object that allows the caller to indicate expected use

func (*MockReplicationTaskExecutor) Execute added in v0.12.0

Execute mocks base method

type MockReplicationTaskExecutorMockRecorder added in v0.12.0

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

MockReplicationTaskExecutorMockRecorder is the mock recorder for MockReplicationTaskExecutor

func (*MockReplicationTaskExecutorMockRecorder) Execute added in v0.12.0

func (mr *MockReplicationTaskExecutorMockRecorder) Execute(task interface{}) *gomock.Call

Execute indicates an expected call of Execute

type ReplicationQueue added in v0.17.0

type ReplicationQueue interface {
	common.Daemon
	Publish(ctx context.Context, message interface{}) error
	PublishToDLQ(ctx context.Context, message interface{}) error
	GetReplicationMessages(ctx context.Context, lastMessageID int64, maxCount int) ([]*types.ReplicationTask, int64, error)
	UpdateAckLevel(ctx context.Context, lastProcessedMessageID int64, clusterName string) error
	GetAckLevels(ctx context.Context) (map[string]int64, error)
	GetMessagesFromDLQ(ctx context.Context, firstMessageID int64, lastMessageID int64, pageSize int, pageToken []byte) ([]*types.ReplicationTask, []byte, error)
	UpdateDLQAckLevel(ctx context.Context, lastProcessedMessageID int64) error
	GetDLQAckLevel(ctx context.Context) (int64, error)
	RangeDeleteMessagesFromDLQ(ctx context.Context, firstMessageID int64, lastMessageID int64) error
	DeleteMessageFromDLQ(ctx context.Context, messageID int64) error
}

ReplicationQueue is used to publish and list domain replication tasks

func NewReplicationQueue added in v0.17.0

func NewReplicationQueue(
	queue persistence.QueueManager,
	clusterName string,
	metricsClient metrics.Client,
	logger log.Logger,
) ReplicationQueue

NewReplicationQueue creates a new ReplicationQueue instance

type ReplicationTaskExecutor added in v0.12.0

type ReplicationTaskExecutor interface {
	Execute(task *types.DomainTaskAttributes) error
}

ReplicationTaskExecutor is the interface which is to execute domain replication task

func NewReplicationTaskExecutor added in v0.12.0

func NewReplicationTaskExecutor(
	metadataMgr persistence.MetadataManager,
	timeSource clock.TimeSource,
	logger log.Logger,
) ReplicationTaskExecutor

NewReplicationTaskExecutor create a new instance of domain replicator

type Replicator

type Replicator interface {
	HandleTransmissionTask(
		ctx context.Context,
		domainOperation types.DomainOperation,
		info *persistence.DomainInfo,
		config *persistence.DomainConfig,
		replicationConfig *persistence.DomainReplicationConfig,
		configVersion int64,
		failoverVersion int64,
		previousFailoverVersion int64,
		isGlobalDomainEnabled bool,
	) error
}

Replicator is the interface which can replicate the domain

func NewDomainReplicator

func NewDomainReplicator(replicationMessageSink messaging.Producer, logger log.Logger) Replicator

NewDomainReplicator create a new instance of domain replicator

Jump to

Keyboard shortcuts

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