testhelpers

package
v0.0.0-...-a0f6db5 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2022 License: MPL-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AttemptUnsealCore

func AttemptUnsealCore(c *vault.TestCluster, core *vault.TestClusterCore) error

func AttemptUnsealCores

func AttemptUnsealCores(c *vault.TestCluster) error

func AwaitLeader

func AwaitLeader(t testing.T, cluster *vault.TestCluster) (int, error)

AwaitLeader waits for one of the cluster's nodes to become leader.

func DeriveActiveCore

func DeriveActiveCore(t testing.T, cluster *vault.TestCluster) *vault.TestClusterCore

func DeriveStableActiveCore

func DeriveStableActiveCore(t testing.T, cluster *vault.TestCluster) *vault.TestClusterCore

func DeriveStandbyCores

func DeriveStandbyCores(t testing.T, cluster *vault.TestCluster) []*vault.TestClusterCore

func EnsureCoreSealed

func EnsureCoreSealed(t testing.T, core *vault.TestClusterCore)

func EnsureCoreUnsealed

func EnsureCoreUnsealed(t testing.T, c *vault.TestCluster, core *vault.TestClusterCore)

func EnsureCoresSealed

func EnsureCoresSealed(t testing.T, c *vault.TestCluster)

func EnsureCoresUnsealed

func EnsureCoresUnsealed(t testing.T, c *vault.TestCluster)

func EnsureStableActiveNode

func EnsureStableActiveNode(t testing.T, cluster *vault.TestCluster)

func GenerateDebugLogs

func GenerateDebugLogs(t testing.T, client *api.Client) chan struct{}

func GenerateRoot

func GenerateRoot(t testing.T, cluster *vault.TestCluster, kind GenerateRootKind) string

Generates a root token on the target cluster.

func GenerateRootWithError

func GenerateRootWithError(t testing.T, cluster *vault.TestCluster, kind GenerateRootKind) (string, error)

func NewHardcodedServerAddressProvider

func NewHardcodedServerAddressProvider(numCores, baseClusterPort int) raftlib.ServerAddressProvider

NewHardcodedServerAddressProvider is a convenience function that makes a ServerAddressProvider from a given cluster address base port.

func RaftAppliedIndex

func RaftAppliedIndex(core *vault.TestClusterCore) uint64

func RaftClusterJoinNodes

func RaftClusterJoinNodes(t testing.T, cluster *vault.TestCluster)

func RandomWithPrefix

func RandomWithPrefix(name string) string

RandomWithPrefix is used to generate a unique name with a prefix, for randomizing names in acceptance tests

func RekeyCluster

func RekeyCluster(t testing.T, cluster *vault.TestCluster, recovery bool) [][]byte

func RetryUntil

func RetryUntil(t testing.T, timeout time.Duration, f func() error)

RetryUntil runs f until it returns a nil result or the timeout is reached. If a nil result hasn't been obtained by timeout, calls t.Fatal.

func SealCores

func SealCores(t testing.T, cluster *vault.TestCluster)

func SetNonRootToken

func SetNonRootToken(client *api.Client) error

SetNonRootToken sets a token on :client: with a fairly generic policy. This is useful if a test needs to examine differing behavior based on if a root token is passed with the request.

func TestMetricSinkProvider

func TestMetricSinkProvider(gaugeInterval time.Duration) func(string) (*metricsutil.ClusterMetricSink, *metricsutil.MetricsHelper)

func VerifyRaftConfiguration

func VerifyRaftConfiguration(core *vault.TestClusterCore, numCores int) error

VerifyRaftConfiguration checks that we have a valid raft configuration, i.e. the correct number of servers, having the correct NodeIDs, and exactly one leader.

func VerifyRaftPeers

func VerifyRaftPeers(t testing.T, client *api.Client, expected map[string]bool) error

VerifyRaftPeers verifies that the raft configuration contains a given set of peers. The `expected` contains a map of expected peers. Existing entries are deleted from the map by removing entries whose keys are in the raft configuration. Remaining entries result in an error return so that the caller can poll for an expected configuration.

func WaitForActiveNode

func WaitForActiveNode(t testing.T, cluster *vault.TestCluster) *vault.TestClusterCore

func WaitForActiveNodeAndStandbys

func WaitForActiveNodeAndStandbys(t testing.T, cluster *vault.TestCluster)

WaitForActiveNodeAndStandbys does nothing more than wait for the active node on OSS. On enterprise it waits for perf standbys to be healthy too.

func WaitForNCoresSealed

func WaitForNCoresSealed(t testing.T, cluster *vault.TestCluster, n int)

func WaitForNCoresUnsealed

func WaitForNCoresUnsealed(t testing.T, cluster *vault.TestCluster, n int)

func WaitForRaftApply

func WaitForRaftApply(t testing.T, core *vault.TestClusterCore, index uint64)

func WaitForStandbyNode

func WaitForStandbyNode(t testing.T, core *vault.TestClusterCore)

Types

type GenerateRootKind

type GenerateRootKind int
const (
	GenerateRootRegular GenerateRootKind = iota
	GenerateRootDR
	GenerateRecovery
)

type HardcodedServerAddressProvider

type HardcodedServerAddressProvider struct {
	Entries map[raftlib.ServerID]raftlib.ServerAddress
}

HardcodedServerAddressProvider is a ServerAddressProvider that uses a hardcoded map of raft node addresses.

It is useful in cases where the raft configuration is known ahead of time, but some of the cores have not yet had startClusterListener() called (via either unsealing or raft joining), and thus do not yet have a ClusterAddr() assigned.

func (*HardcodedServerAddressProvider) ServerAddr

type SysMetricsJSON

type SysMetricsJSON struct {
	Gauges   []gaugeJSON   `json:"Gauges"`
	Counters []counterJSON `json:"Counters"`

	// note: this is referred to as a "Summary" type in our telemetry docs, but
	// the field name in the JSON is "Samples"
	Summaries []summaryJSON `json:"Samples"`
}

func SysMetricsReq

func SysMetricsReq(client *api.Client, cluster *vault.TestCluster, unauth bool) (*SysMetricsJSON, error)

type TestRaftServerAddressProvider

type TestRaftServerAddressProvider struct {
	Cluster *vault.TestCluster
}

TestRaftServerAddressProvider is a ServerAddressProvider that uses the ClusterAddr() of each node to provide raft addresses.

Note that TestRaftServerAddressProvider should only be used in cases where cores that are part of a raft configuration have already had startClusterListener() called (via either unsealing or raft joining).

func (*TestRaftServerAddressProvider) ServerAddr

Jump to

Keyboard shortcuts

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