Documentation ¶
Overview ¶
Package testcontrol contains a minimal control plane server for testing purposes.
Index ¶
- type AuthPath
- type Server
- func (s *Server) AddFakeNode()
- func (s *Server) AddPingRequest(nodeKeyDst key.NodePublic, pr *tailcfg.PingRequest) bool
- func (s *Server) AllNodes() (nodes []*tailcfg.Node)
- func (s *Server) AwaitNodeInMapRequest(ctx context.Context, k key.NodePublic) error
- func (s *Server) BaseURL() string
- func (s *Server) CompleteAuth(authPathOrURL string) bool
- func (s *Server) InServeMap() int
- func (s *Server) MapResponse(req *tailcfg.MapRequest) (res *tailcfg.MapResponse, err error)
- func (s *Server) Node(nodeKey key.NodePublic) *tailcfg.Node
- func (s *Server) NumNodes() int
- func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (s *Server) SetExpireAllNodes(expired bool)
- func (s *Server) UpdateNode(n *tailcfg.Node) (peersToUpdate []tailcfg.NodeID)
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) AwaitNodeInMapRequest ¶
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) CompleteAuth ¶
CompleteAuth marks the provided path or URL (containing "/auth/...") as successfully authenticated, unblocking any requests blocked on that in serveRegister.
func (*Server) InServeMap ¶
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 ¶
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) SetExpireAllNodes ¶
Mark the Node key of every node as expired