testcontrol

package
v1.33.0 Latest Latest
Warning

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

Go to latest
Published: Aug 7, 2022 License: BSD-3-Clause Imports: 27 Imported by: 0

Documentation

Overview

Package testcontrol contains a minimal control plane server for testing purposes.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthPath

type AuthPath struct {
	// contains filtered or unexported fields
}

func (*AuthPath) CompleteSuccessfully

func (ap *AuthPath) CompleteSuccessfully()

CompleteSuccessfully completes the login path successfully, as if the user did the whole auth dance.

type Server

type Server struct {
	Logf        logger.Logf      // nil means to use the log package
	DERPMap     *tailcfg.DERPMap // nil means to use prod DERP map
	RequireAuth bool
	Verbose     bool
	DNSConfig   *tailcfg.DNSConfig // nil means no DNS config

	// ExplicitBaseURL or HTTPTestServer must be set.
	ExplicitBaseURL string           // e.g. "http://127.0.0.1:1234" with no trailing URL
	HTTPTestServer  *httptest.Server // if non-nil, used to get BaseURL
	// contains filtered or unexported fields
}

Server is a control plane server. Its zero value is ready for use. Everything is stored in-memory in one tailnet.

func (*Server) AddFakeNode

func (s *Server) AddFakeNode()

AddFakeNode injects a fake node into the server.

func (*Server) AddPingRequest

func (s *Server) AddPingRequest(nodeKeyDst key.NodePublic, pr *tailcfg.PingRequest) bool

AddPingRequest sends the ping pr to nodeKeyDst. It reports whether it did so. That is, it reports whether nodeKeyDst was connected.

func (*Server) AllNodes

func (s *Server) AllNodes() (nodes []*tailcfg.Node)

func (*Server) AwaitNodeInMapRequest

func (s *Server) AwaitNodeInMapRequest(ctx context.Context, k key.NodePublic) error

AwaitNodeInMapRequest waits for node k to be stuck in a map poll. It returns an error if and only if the context is done first.

func (*Server) BaseURL

func (s *Server) BaseURL() string

BaseURL returns the server's base URL, without trailing slash.

func (*Server) CompleteAuth

func (s *Server) CompleteAuth(authPathOrURL string) bool

CompleteAuth marks the provided path or URL (containing "/auth/...") as successfully authenticated, unblocking any requests blocked on that in serveRegister.

func (*Server) InServeMap

func (s *Server) InServeMap() int

InServeMap returns the number of clients currently in a MapRequest HTTP handler.

func (*Server) MapResponse

func (s *Server) MapResponse(req *tailcfg.MapRequest) (res *tailcfg.MapResponse, err error)

MapResponse generates a MapResponse for a MapRequest.

No updates to s are done here.

func (*Server) Node

func (s *Server) Node(nodeKey key.NodePublic) *tailcfg.Node

Node returns the node for nodeKey. It's always nil or cloned memory.

func (*Server) NumNodes

func (s *Server) NumNodes() int

NumNodes returns the number of nodes in the testcontrol server.

This is useful when connecting a bunch of virtual machines to a testcontrol server to see how many of them connected successfully.

func (*Server) ServeHTTP

func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*Server) SetExpireAllNodes

func (s *Server) SetExpireAllNodes(expired bool)

Mark the Node key of every node as expired

func (*Server) UpdateNode

func (s *Server) UpdateNode(n *tailcfg.Node) (peersToUpdate []tailcfg.NodeID)

Jump to

Keyboard shortcuts

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