Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Args ¶
type Args struct {
// NodeBuildPath specifies the local fs path to the m3db binary
NodeBuildPath string
// NodeConfigPath specifies the local fs path to the m3db configuration
NodeConfigPath string
// DTestConfigPath specifies the local fs path to the m3em configuration
DTestConfigPath string
// NumNodes specifies the number of nodes to use from the m3em configuration
NumNodes int
// SessionToken specifies the token used during remote operations
SessionToken string
// SessionOverride specifies if exisiting dtests maybe overridden on remote
// agents
SessionOverride bool
// InitialReset specifies if a Teardown() call should be made to remote
// agents before running a test. It's useful to reset a running agent
// in the event of an earlier run crashing.
InitialReset bool
}
Args represents the CLI arguments to be set during a dtest
func (*Args) RegisterFlags ¶
RegisterFlags registers all the common flags
type Configuration ¶
type Configuration struct {
DTest DTestConfig `yaml:"dtest"`
M3EM M3EMConfig `yaml:"m3em"`
KV etcdclient.Configuration `yaml:"kv"`
}
Configuration is a collection of knobs to control test behavior
func New ¶
func New(m3emConfigPath string) (*Configuration, error)
New constructs a Configuration object from the path specified
func (*Configuration) Zone ¶
func (c *Configuration) Zone() (string, error)
Zone returns the zone configured for kv, and the instances if they are all the same; it returns an error if they're not.
type DTestConfig ¶
type DTestConfig struct {
DebugPort int `yaml:"debugPort" validate:"nonzero"`
BootstrapTimeout time.Duration `yaml:"bootstrapTimeout" validate:"nonzero"`
BootstrapReportInterval time.Duration `yaml:"bootstrapReportInterval" validate:"nonzero"`
NodePort int `yaml:"nodePort" validate:"nonzero"`
ServiceID string `yaml:"serviceID" validate:"nonzero"`
DataDir string `yaml:"dataDir" validate:"nonzero"` // path relative to m3em agent working directory
Seeds []SeedConfig `yaml:"seeds"`
Instances []PlacementInstance `yaml:"instances" validate:"min=1"`
}
DTestConfig is a collection of DTest configs
type M3EMConfig ¶
type M3EMConfig struct {
AgentPort int `yaml:"agentPort" validate:"nonzero"`
AgentTLS *TLSConfiguration `yaml:"agentTLS"`
HeartbeatPort int `yaml:"heartbeatPort" validate:"nonzero"`
Node node.Configuration `yaml:"node"`
Cluster cluster.Configuration `yaml:"cluster"`
}
M3EMConfig is a list of m3em environment settings
type PlacementInstance ¶
type PlacementInstance struct {
ID string `yaml:"id" validate:"nonzero"`
Rack string `yaml:"rack" validate:"nonzero"`
Zone string `yaml:"zone" validate:"nonzero"`
Weight uint32 `yaml:"weight" validate:"nonzero"`
Hostname string `yaml:"hostname" validate:"nonzero"`
}
PlacementInstance is a config for a placement instance.
type SeedConfig ¶
type SeedConfig struct {
Namespace string `yaml:"namespace" validate:"nonzero"`
LocalShardNum uint32 `yaml:"localShardNum" validate:"nonzero"`
Retention time.Duration `yaml:"retention" validate:"nonzero"`
BlockSize time.Duration `yaml:"blockSize" validate:"nonzero"`
Delay time.Duration `yaml:"delay"`
}
SeedConfig is a collection of Seed Data configurations
type TLSConfiguration ¶
type TLSConfiguration struct {
ServerName string `yaml:"serverName" validate:"nonzero"`
CACrtPath string `yaml:"caCrt" validate:"nonzero"`
ClientCrtPath string `yaml:"clientCrt" validate:"nonzero"`
ClientKeyPath string `yaml:"clientKey" validate:"nonzero"`
}
TLSConfiguration are the resources required for TLS Communication
func (TLSConfiguration) Credentials ¶
func (t TLSConfiguration) Credentials() (credentials.TransportCredentials, error)
Credentials returns the TransportCredentials corresponding to the provided struct