types

package
v1.3.7-prerelease04 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	DefaultTestCase = "testdata/replication_simulation_default.yaml"
	TasklistName    = "test-tasklist"

	TimerInterval = 5 * time.Second
)

Variables

This section is empty.

Functions

func Logf

func Logf(t *testing.T, msg string, args ...interface{})

func WorkerIdentityFor

func WorkerIdentityFor(clusterName string, domainName string) string

Types

type Cluster

type Cluster struct {
	GRPCEndpoint string `yaml:"grpcEndpoint"`

	AdminClient    admin.Client    `yaml:"-"`
	FrontendClient frontend.Client `yaml:"-"`
}

type ClusterAttributesMap

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

ClusterAttributesMap is a custom type for YAML unmarshalling of cluster attributes.

func (*ClusterAttributesMap) IsEmpty

func (c *ClusterAttributesMap) IsEmpty() bool

func (*ClusterAttributesMap) ToAttributeScopes

func (c *ClusterAttributesMap) ToAttributeScopes() map[string]types.ClusterAttributeScope

ToAttributeScopes is a convenience method to return the parsed AttributeScopes map.

func (*ClusterAttributesMap) UnmarshalYAML

func (c *ClusterAttributesMap) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements custom YAML unmarshalling for ClusterAttributesMap.

type Operation

type Operation struct {
	Type          ReplicationSimulationOperation `yaml:"op"`
	At            time.Duration                  `yaml:"at"`
	Cluster       string                         `yaml:"cluster"`
	SourceCluster string                         `yaml:"sourceCluster"`
	TargetCluster string                         `yaml:"targetCluster"`

	WorkflowType                         string                              `yaml:"workflowType"`
	WorkflowID                           string                              `yaml:"workflowID"`
	WorkflowExecutionStartToCloseTimeout time.Duration                       `yaml:"workflowExecutionStartToCloseTimeout"`
	WorkflowDuration                     time.Duration                       `yaml:"workflowDuration"`
	ActivityCount                        int                                 `yaml:"activityCount"`
	DelayStartSeconds                    int32                               `yaml:"delayStartSeconds"`
	CronSchedule                         string                              `yaml:"cronSchedule"`
	ActiveClusterSelectionPolicy         *types.ActiveClusterSelectionPolicy `yaml:"activeClusterSelectionPolicy"`

	Query            string `yaml:"query"`
	ConsistencyLevel string `yaml:"consistencyLevel"`

	SignalName  string `yaml:"signalName"`
	SignalInput any    `yaml:"signalInput"`

	EventID int64 `yaml:"eventID"`

	Domain           string `yaml:"domain"`
	NewActiveCluster string `yaml:"newActiveCluster"`
	// TODO(active-active): Remove this once we have completely migrated to AttributeScopes
	NewActiveClustersByRegion map[string]string `yaml:"newActiveClustersByRegion"`
	// NewClusterAttributes specifies the AttributeScopes to change for the domain
	// This can be a sub-set of the total AttributeScopes for the domain
	NewClusterAttributes ClusterAttributesMap `yaml:"newClusterAttributes"`
	FailoverTimeout      *int32               `yaml:"failoverTimeoutSec"`

	// RunIDKey specifies a key to store/retrieve RunID for this operation
	RunIDKey string `yaml:"runIDKey"`

	Want Validation `yaml:"want"`
}

type OperationFunction added in v1.3.6

type OperationFunction func(t *testing.T, op *Operation, simCfg *ReplicationSimulationConfig) error

type ReplicationDomainConfig added in v1.3.0

type ReplicationDomainConfig struct {
	ActiveClusterName string `yaml:"activeClusterName"`

	ActiveClustersByRegion map[string]string `yaml:"activeClustersByRegion"`

	// ClusterAttributes specifies the Attributes for a domain and is passed to ActiveClusters in the RegisterDomainRequest
	// It is a simplified expression for the AttributeScopes type
	// The format should be expressed as follows:
	// clusterAttributes: // This will be mapped to AttributeScopes
	//   region: // This is the key for a ClusterAttributeScope. All children are mapped to ClusterAttributes
	//	 	us-west1: cluster0 // us-west1 is the key within a ClusterAttributeScope
	//      us-east1: cluster1 // cluster1 is the ActiveClusterName for the corresponding ActiveClusterInfo
	//   cityID:
	//      ...
	ClusterAttributes ClusterAttributesMap `yaml:"clusterAttributes"`
}

type ReplicationSimulation added in v1.3.6

type ReplicationSimulation struct {
	RunIDRegistry map[string]string
}

func NewReplicationSimulation added in v1.3.6

func NewReplicationSimulation() *ReplicationSimulation

func (*ReplicationSimulation) GetRunID added in v1.3.6

func (s *ReplicationSimulation) GetRunID(key string) (string, error)

func (*ReplicationSimulation) StoreRunID added in v1.3.6

func (s *ReplicationSimulation) StoreRunID(key, runID string) error

type ReplicationSimulationConfig

type ReplicationSimulationConfig struct {
	// Clusters is the map of all clusters
	Clusters map[string]*Cluster `yaml:"clusters"`

	// PrimaryCluster is used for domain registration
	PrimaryCluster string `yaml:"primaryCluster"`

	Domains map[string]ReplicationDomainConfig `yaml:"domains"`

	Operations []*Operation `yaml:"operations"`
}

func LoadConfig

func LoadConfig() (*ReplicationSimulationConfig, error)

func (*ReplicationSimulationConfig) IsActiveActiveDomain added in v1.3.0

func (s *ReplicationSimulationConfig) IsActiveActiveDomain(domainName string) bool

func (*ReplicationSimulationConfig) MustGetFrontendClient

func (s *ReplicationSimulationConfig) MustGetFrontendClient(t *testing.T, clusterName string) frontend.Client

func (*ReplicationSimulationConfig) MustInitClientsFor

func (s *ReplicationSimulationConfig) MustInitClientsFor(t *testing.T, clusterName string)

func (*ReplicationSimulationConfig) MustRegisterDomain

func (s *ReplicationSimulationConfig) MustRegisterDomain(
	t *testing.T,
	domainName string,
	domainCfg ReplicationDomainConfig,
)

type ReplicationSimulationOperation

type ReplicationSimulationOperation string
const (
	ReplicationSimulationOperationStartWorkflow               ReplicationSimulationOperation = "start_workflow"
	ReplicationSimulationOperationResetWorkflow               ReplicationSimulationOperation = "reset_workflow"
	ReplicationSimulationOperationChangeActiveClusters        ReplicationSimulationOperation = "change_active_clusters"
	ReplicationSimulationOperationValidate                    ReplicationSimulationOperation = "validate"
	ReplicationSimulationOperationQueryWorkflow               ReplicationSimulationOperation = "query_workflow"
	ReplicationSimulationOperationSignalWithStartWorkflow     ReplicationSimulationOperation = "signal_with_start_workflow"
	ReplicationSimulationOperationValidateWorkflowReplication ReplicationSimulationOperation = "validate_workflow_replication"
)

type Validation

type Validation struct {
	Status                      string `yaml:"status"`
	StartedByWorkersInCluster   string `yaml:"startedByWorkersInCluster"`
	CompletedByWorkersInCluster string `yaml:"completedByWorkersInCluster"`
	Error                       string `yaml:"error"`
	QueryResult                 any    `yaml:"queryResult"`
}

type WorkflowInput

type WorkflowInput struct {
	Duration      time.Duration
	ActivityCount int
}

type WorkflowOutput

type WorkflowOutput struct {
	Count int
}

Jump to

Keyboard shortcuts

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