Documentation ¶
Index ¶
Constants ¶
const ( // AggName is the name of the aggregated namespace. AggName = "aggregated" // UnaggName is the name of the unaggregated namespace. UnaggName = "default" // ColdWriteNsName is the name for cold write namespace. ColdWriteNsName = "coldWritesRepairAndNoIndex" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Admin ¶
type Admin interface { // GetNamespace gets namespaces. GetNamespace() (admin.NamespaceGetResponse, error) // WaitForNamespace blocks until the given namespace is enabled. // NB: if the name string is empty, this will instead // check for a successful response. WaitForNamespace(name string) error // AddNamespace adds a namespace. AddNamespace(admin.NamespaceAddRequest) (admin.NamespaceGetResponse, error) // CreateDatabase creates a database. CreateDatabase(admin.DatabaseCreateRequest) (admin.DatabaseCreateResponse, error) // GetPlacement gets placements. GetPlacement() (admin.PlacementGetResponse, error) // WaitForInstances blocks until the given instance is available. WaitForInstances(ids []string) error // Close closes the wrapper and releases any held resources, including // deleting docker containers. Close() error }
Admin is a wrapper for admin functions.
type Coordinator ¶
type Coordinator interface { Admin // WriteCarbon writes a carbon metric datapoint at a given time. WriteCarbon(port int, metric string, v float64, t time.Time) error // RunQuery runs the given query with a given verification function. RunQuery(verifier GoalStateVerifier, query string) error }
Coordinator is a wrapper for a coordinator. It provides a wrapper on HTTP endpoints that expose cluster management APIs as well as read and write endpoints for series data. TODO: consider having this work on underlying structures.
type DockerResources ¶
type DockerResources interface { // Cleanup closes and removes all corresponding containers. Cleanup() error // Nodes returns all node resources. Nodes() Nodes // Coordinator returns the coordinator resource. Coordinator() Coordinator }
DockerResources represents a set of dockerized test components.
func SetupSingleM3DBNode ¶
func SetupSingleM3DBNode() (DockerResources, error)
SetupSingleM3DBNode creates docker resources representing a setup with a single DB node.
type GoalStateVerifier ¶
GoalStateVerifier verifies that the given results are valid.
type Node ¶
type Node interface { // HostDetails returns this node's host details on the given port. HostDetails(port int) (*admin.Host, error) // Health gives this node's health. Health() (*rpc.NodeHealthResult_, error) // WaitForBootstrap blocks until the node has bootstrapped. WaitForBootstrap() error // WritePoint writes a datapoint to the node directly. WritePoint(req *rpc.WriteRequest) error // Fetch fetches datapoints. Fetch(req *rpc.FetchRequest) (*rpc.FetchResult_, error) // Exec executes the given commands on the node container, returning // stdout and stderr from the container. Exec(commands ...string) (string, error) // GoalStateExec executes the given commands on the node container, retrying // until applying the verifier returns no error or the default timeout. GoalStateExec(verifier GoalStateVerifier, commands ...string) error // Restart restarts this container. Restart() error // Close closes the wrapper and releases any held resources, including // deleting docker containers. Close() error }
Node is a wrapper for a db node. It provides a wrapper on HTTP endpoints that expose cluster management APIs as well as read and write endpoints for series data. TODO: consider having this work on underlying structures.