e2eutil

package
v1.0.0-beta3 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2020 License: MPL-2.0 Imports: 27 Imported by: 229

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AgentRestart added in v0.10.0

func AgentRestart(client *api.Client, nodeID string) (string, error)

AgentRestart is a test helper function that restarts a client node running under systemd using a raw_exec job. Returns the job ID of the restart job so that callers can clean it up.

func AllocExec added in v1.0.0

func AllocExec(allocID, taskID, execCmd, ns string, wc *WaitConfig) (string, error)

AllocExec is a convenience wrapper that runs 'nomad alloc exec' with the passed execCmd via '/bin/sh -c', retrying if the task isn't ready

func AllocIDsFromAllocationListStubs added in v0.10.4

func AllocIDsFromAllocationListStubs(allocs []*api.AllocationListStub) []string

func AllocStatuses added in v1.0.0

func AllocStatuses(jobID, ns string) ([]string, error)

AllocStatuses returns a slice of client statuses

func AllocStatusesRescheduled added in v1.0.0

func AllocStatusesRescheduled(jobID, ns string) ([]string, error)

AllocStatusesRescheduled is a helper function that pulls out client statuses only from rescheduled allocs.

func AllocsForJob added in v1.0.0

func AllocsForJob(jobID, ns string) ([]map[string]string, error)

AllocsForJob returns a slice of key->value maps, each describing the values of the 'nomad job status' Allocations section (not actual structs.Allocation objects, query the API if you want those)

func AllocsForNode added in v1.0.0

func AllocsForNode(nodeID string) ([]map[string]string, error)

AllocsForNode returns a slice of key->value maps, each describing the values of the 'nomad node status' Allocations section (not actual structs.Allocation objects, query the API if you want those)

func CheckServicesPassing deprecated added in v0.12.1

func CheckServicesPassing(t *testing.T, agentAPI *consulapi.Agent, allocIDs []string)

CheckServicesPassing scans for passing agent checks via the given agent API client.

Deprecated: not useful in e2e, where more than one node exists and Nomad jobs are placed non-deterministically. The Consul agentAPI only knows about what is registered on its node, and cannot be used to query for cluster wide state.

func Command added in v0.12.10

func Command(cmd string, args ...string) (string, error)

Command sends a command line argument to Nomad and returns the unbuffered stdout as a string (or, if there's an error, the stderr)

func DeploymentsForJob added in v0.9.3

func DeploymentsForJob(t *testing.T, nomadClient *api.Client, jobID string) []*api.Deployment

func GetField added in v1.0.0

func GetField(output, key string) (string, error)

GetField returns the value of an output field (ex. the "Submit Date" field of `nomad job status :id`)

func GetSection added in v1.0.0

func GetSection(output, key string) (string, error)

GetSection returns a section, with its field header but without its title. (ex. the Allocations section of `nomad job status :id`)

func LastDeploymentID added in v1.0.0

func LastDeploymentID(jobID, ns string) (string, error)

func ListLinuxClientNodes added in v0.10.4

func ListLinuxClientNodes(client *api.Client) ([]string, error)

ListLinuxClientNodes returns a list of Linux client IDs, so that tests can skip operating-specific tests if there are no Linux clients available Returns an error only on client errors.

func ListWindowsClientNodes added in v0.10.4

func ListWindowsClientNodes(client *api.Client) ([]string, error)

ListWindowsClientNodes returns a list of Windows client IDs, so that tests can skip operating-specific tests if there are no Windows clients available. Returns an error only on client errors.

func NewE2EJob added in v1.0.0

func NewE2EJob(jobfile string) framework.TestCase

func NodeStatusList added in v1.0.0

func NodeStatusList() ([]map[string]string, error)

func NodeStatusListFiltered added in v1.0.0

func NodeStatusListFiltered(filterFn func(string) bool) ([]map[string]string, error)

func ParseColumns added in v1.0.0

func ParseColumns(section string) ([]map[string]string, error)

ParseColumns maps the CLI output for a columized section (without title) to a slice of key->value pairs for each row in that section. (ex. the Allocations section of `nomad job status :id`)

func ParseFields added in v1.0.0

func ParseFields(section string) (map[string]string, error)

ParseFields maps the CLI output for a key-value section (without title) to map of the key->value pairs in that section (ex. the Latest Deployment section of `nomad job status :id`)

func Register added in v1.0.0

func Register(jobID, jobFilePath string) error

Register registers a jobspec from a file but with a unique ID. The caller is responsible for recording that ID for later cleanup.

func RegisterAllocs added in v0.9.2

func RegisterAllocs(t *testing.T, nomadClient *api.Client, jobFile, jobID, cToken string) []*api.AllocationListStub

func RegisterAndWaitForAllocs

func RegisterAndWaitForAllocs(t *testing.T, nomadClient *api.Client, jobFile, jobID, cToken string) []*api.AllocationListStub

RegisterAndWaitForAllocs wraps RegisterAllocs but blocks until Evals successfully create Allocs.

func RegisterFromJobspec added in v1.0.0

func RegisterFromJobspec(jobID, jobspec string) error

Register registers a jobspec from a string, also with a unique ID. The caller is responsible for recording that ID for later cleanup.

func RequireConsulDeregistered added in v0.10.0

func RequireConsulDeregistered(require *require.Assertions,
	client *capi.Client, serviceName string)

RequireConsulDeregistered asserts that the service eventually is deregistered from Consul

func RequireConsulStatus added in v0.10.0

func RequireConsulStatus(require *require.Assertions,
	client *capi.Client, serviceName, expectedStatus string)

RequireConsulStatus asserts the aggregate health of the service converges to the expected status

func WaitForAllocFile added in v1.0.0

func WaitForAllocFile(allocID, path string, test func(string) bool, wc *WaitConfig) error

WaitForAllocFile is a helper that grabs a file via alloc fs and tests its contents; useful for checking the results of rendered templates

func WaitForAllocNotPending added in v0.10.4

func WaitForAllocNotPending(t *testing.T, nomadClient *api.Client, allocID string)

func WaitForAllocRunning

func WaitForAllocRunning(t *testing.T, nomadClient *api.Client, allocID string)

func WaitForAllocStatusComparison added in v1.0.0

func WaitForAllocStatusComparison(query func() ([]string, error), comparison func([]string) bool, wc *WaitConfig) error

WaitForAllocStatusComparison is a convenience wrapper that polls the query function until the comparison function returns true.

func WaitForAllocStatusExpected added in v1.0.0

func WaitForAllocStatusExpected(jobID, ns string, expected []string) error

WaitForAllocStatusExpected polls 'nomad job status' and exactly compares the status of all allocations (including any previous versions) against the expected list.

func WaitForAllocStopped added in v0.11.0

func WaitForAllocStopped(t *testing.T, nomadClient *api.Client, allocID string)

func WaitForAllocsNotPending added in v0.10.4

func WaitForAllocsNotPending(t *testing.T, nomadClient *api.Client, allocIDs []string)

func WaitForAllocsRunning added in v0.10.4

func WaitForAllocsRunning(t *testing.T, nomadClient *api.Client, allocIDs []string)

func WaitForDeployment added in v0.9.2

func WaitForDeployment(t *testing.T, nomadClient *api.Client, deployID string, status string, statusDesc string)

func WaitForJobStopped added in v0.12.4

func WaitForJobStopped(t *testing.T, nomadClient *api.Client, job string)

WaitForJobStopped stops a job and waits for all of its allocs to terminate.

func WaitForLastDeploymentStatus added in v1.0.0

func WaitForLastDeploymentStatus(jobID, ns, status string, wc *WaitConfig) error

func WaitForLeader

func WaitForLeader(t *testing.T, nomadClient *api.Client)

func WaitForNodesReady

func WaitForNodesReady(t *testing.T, nomadClient *api.Client, nodes int)

WaitForNodesReady waits until at least `nodes` number of nodes are ready or fails the test.

Types

type WaitConfig added in v1.0.0

type WaitConfig struct {
	Interval time.Duration
	Retries  int64
}

WaitConfig is an interval and wait time that can be passed to a waiter function, but with a default value that comes from the OrDefault method if the config is nil

func (*WaitConfig) OrDefault added in v1.0.0

func (wc *WaitConfig) OrDefault() (time.Duration, int64)

Return a default wait config of 10s

Jump to

Keyboard shortcuts

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