mirror of
https://github.com/juanfont/headscale.git
synced 2025-05-09 01:20:34 +02:00
* types/node: add helper funcs for node tags
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* types/node: add DebugString method for node
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* policy/v2: add String func to AutoApprover interface
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* policy/v2: simplify, use slices.Contains
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* policy/v2: debug, use nodes.DebugString
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* policy/v1: fix potential nil pointer in NodeCanApproveRoute
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* policy/v1: slices.Contains
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration/tsic: fix diff in login commands
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration: fix webauth running with wrong scenario
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration: move common oidc opts to func
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration: require node count, more verbose
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* auth: remove uneffective route approve
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* .github/workflows: fmt
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration/tsic: add id func
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration: remove call that might be nil
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration: test autoapprovers against web/authkey x group/tag/user
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration: unique network id per scenario
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* Revert "integration: move common oidc opts to func"
This reverts commit 7e9d165d4a
.
* remove cmd
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration: clean docker images between runs in ci
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration: run autoapprove test against differnt policy modes
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* integration/tsic: append, not overrwrite extra login args
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
* .github/workflows: remove polv2
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
---------
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
57 lines
1.6 KiB
Go
57 lines
1.6 KiB
Go
package integration
|
|
|
|
import (
|
|
"io"
|
|
"net/netip"
|
|
"net/url"
|
|
|
|
"github.com/juanfont/headscale/hscontrol/types"
|
|
"github.com/juanfont/headscale/hscontrol/util"
|
|
"github.com/juanfont/headscale/integration/dockertestutil"
|
|
"github.com/juanfont/headscale/integration/tsic"
|
|
"tailscale.com/ipn/ipnstate"
|
|
"tailscale.com/net/netcheck"
|
|
"tailscale.com/types/netmap"
|
|
)
|
|
|
|
// nolint
|
|
type TailscaleClient interface {
|
|
Hostname() string
|
|
Shutdown() (string, string, error)
|
|
Version() string
|
|
Execute(
|
|
command []string,
|
|
options ...dockertestutil.ExecuteCommandOption,
|
|
) (string, string, error)
|
|
Login(loginServer, authKey string) error
|
|
LoginWithURL(loginServer string) (*url.URL, error)
|
|
Logout() error
|
|
Up() error
|
|
Down() error
|
|
IPs() ([]netip.Addr, error)
|
|
MustIPs() []netip.Addr
|
|
MustIPv4() netip.Addr
|
|
MustIPv6() netip.Addr
|
|
FQDN() (string, error)
|
|
Status(...bool) (*ipnstate.Status, error)
|
|
MustStatus() *ipnstate.Status
|
|
Netmap() (*netmap.NetworkMap, error)
|
|
DebugDERPRegion(region string) (*ipnstate.DebugDERPRegionReport, error)
|
|
Netcheck() (*netcheck.Report, error)
|
|
WaitForNeedsLogin() error
|
|
WaitForRunning() error
|
|
WaitForPeers(expected int) error
|
|
Ping(hostnameOrIP string, opts ...tsic.PingOption) error
|
|
Curl(url string, opts ...tsic.CurlOption) (string, error)
|
|
Traceroute(netip.Addr) (util.Traceroute, error)
|
|
ContainerID() string
|
|
MustID() types.NodeID
|
|
ReadFile(path string) ([]byte, error)
|
|
|
|
// FailingPeersAsString returns a formatted-ish multi-line-string of peers in the client
|
|
// and a bool indicating if the clients online count and peer count is equal.
|
|
FailingPeersAsString() (string, bool, error)
|
|
|
|
WriteLogs(stdout, stderr io.Writer) error
|
|
}
|