workload

package
v3.8.6+incompatible Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2020 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var UnactivatedConnectivityCheckers = set.New()

Functions

func HaveConnectivityTo

func HaveConnectivityTo(target connectionTarget, explicitPort ...uint16) types.GomegaMatcher

Types

type ConnectivityChecker

type ConnectivityChecker struct {
	ReverseDirection bool
	Protocol         string // "tcp" or "udp"
	// contains filtered or unexported fields
}

ConnectivityChecker records a set of connectivity expectations and supports calculating the actual state of the connectivity between the given workloads. It is expected to be used like so:

var cc = &workload.ConnectivityChecker{}
cc.ExpectNone(w[2], w[0], 1234)
cc.ExpectSome(w[1], w[0], 5678)
Eventually(cc.ActualConnectivity, "10s", "100ms").Should(Equal(cc.ExpectedConnectivity()))

Note that the ActualConnectivity method is passed to Eventually as a function pointer to allow Ginkgo to re-evaluate the result as needed.

func (*ConnectivityChecker) ActualConnectivity

func (c *ConnectivityChecker) ActualConnectivity() []string

ActualConnectivity calculates the current connectivity for all the expected paths. One string is returned for each expectation, in the order they were recorded. The strings are intended to be human readable, and they are in the same order and format as those returned by ExpectedConnectivity().

func (*ConnectivityChecker) CheckConnectivity

func (c *ConnectivityChecker) CheckConnectivity(optionalDescription ...interface{})

func (*ConnectivityChecker) CheckConnectivityOffset

func (c *ConnectivityChecker) CheckConnectivityOffset(offset int, optionalDescription ...interface{})

func (*ConnectivityChecker) CheckConnectivityWithTimeout

func (c *ConnectivityChecker) CheckConnectivityWithTimeout(timeout time.Duration, optionalDescription ...interface{})

func (*ConnectivityChecker) CheckConnectivityWithTimeoutOffset

func (c *ConnectivityChecker) CheckConnectivityWithTimeoutOffset(callerSkip int, timeout time.Duration, optionalDescription ...interface{})

func (*ConnectivityChecker) ExpectNone

func (c *ConnectivityChecker) ExpectNone(from connectionSource, to connectionTarget, explicitPort ...uint16)

func (*ConnectivityChecker) ExpectSome

func (c *ConnectivityChecker) ExpectSome(from connectionSource, to connectionTarget, explicitPort ...uint16)

func (*ConnectivityChecker) ExpectedConnectivity

func (c *ConnectivityChecker) ExpectedConnectivity() []string

ExpectedConnectivity returns one string per recorded expection in order, encoding the expected connectivity in the same format used by ActualConnectivity().

func (*ConnectivityChecker) ResetExpectations

func (c *ConnectivityChecker) ResetExpectations()

type IP

type IP string // Just so we can define methods on it...

func (IP) ToMatcher

func (s IP) ToMatcher(explicitPort ...uint16) *connectivityMatcher

type PermanentConnection

type PermanentConnection struct {
	W        *Workload
	LoopFile string
	Name     string
	RunCmd   *exec.Cmd
}

func (*PermanentConnection) Stop

func (pc *PermanentConnection) Stop()

type Port

type Port struct {
	*Workload
	Port uint16
}

func (*Port) CanConnectTo

func (p *Port) CanConnectTo(ip, port, protocol string) bool

func (*Port) SourceName

func (w *Port) SourceName() string

func (*Port) ToMatcher

func (p *Port) ToMatcher(explicitPort ...uint16) *connectivityMatcher

ToMatcher implements the connectionTarget interface, allowing this port to be used as target.

type SideService

type SideService struct {
	W       *Workload
	Name    string
	RunCmd  *exec.Cmd
	PidFile string
}

func (*SideService) Stop

func (s *SideService) Stop()

type Workload

type Workload struct {
	C             *containers.Container
	Name          string
	InterfaceName string
	IP            string
	Ports         string
	DefaultPort   string

	WorkloadEndpoint *api.WorkloadEndpoint
	Protocol         string // "tcp" or "udp"
	// contains filtered or unexported fields
}

func Run

func Run(c *infrastructure.Felix, name, profile, ip, ports, protocol string) (w *Workload)

func (*Workload) CanConnectTo

func (w *Workload) CanConnectTo(ip, port, protocol string) bool

func (*Workload) Configure

func (w *Workload) Configure(client client.Interface)

func (*Workload) ConfigureInDatastore

func (w *Workload) ConfigureInDatastore(infra infrastructure.DatastoreInfra)

func (*Workload) ExecOutput

func (w *Workload) ExecOutput(args ...string) (string, error)

func (*Workload) IPNet

func (w *Workload) IPNet() string

func (*Workload) LatencyTo

func (w *Workload) LatencyTo(ip, port string) (time.Duration, string)

func (*Workload) NameSelector

func (w *Workload) NameSelector() string

func (*Workload) NamespaceID

func (w *Workload) NamespaceID() string

func (*Workload) Port

func (w *Workload) Port(port uint16) *Port

func (*Workload) RemoveFromDatastore

func (w *Workload) RemoveFromDatastore(client client.Interface)

func (*Workload) SourceName

func (w *Workload) SourceName() string

func (*Workload) StartPermanentConnection

func (w *Workload) StartPermanentConnection(ip string, port, sourcePort int) *PermanentConnection

func (*Workload) StartSideService

func (w *Workload) StartSideService() *SideService

func (*Workload) Stop

func (w *Workload) Stop()

func (*Workload) ToMatcher

func (w *Workload) ToMatcher(explicitPort ...uint16) *connectivityMatcher

Jump to

Keyboard shortcuts

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