tailscale: Add runtime exit node API
This commit is contained in:
@@ -780,6 +780,19 @@ func (c *CommandClient) SubscribeTailscaleStatus(handler TailscaleStatusHandler)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *CommandClient) SetTailscaleExitNode(endpointTag string, stableID string) error {
|
||||
_, err := callWithResult(c, func(client daemon.StartedServiceClient) (*emptypb.Empty, error) {
|
||||
return client.SetTailscaleExitNode(context.Background(), &daemon.SetTailscaleExitNodeRequest{
|
||||
EndpointTag: endpointTag,
|
||||
StableID: stableID,
|
||||
})
|
||||
})
|
||||
if err != nil {
|
||||
return E.Cause(err, "set tailscale exit node")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *CommandClient) StartTailscalePing(endpointTag string, peerIP string, handler TailscalePingHandler) error {
|
||||
client, err := c.getClientForCall()
|
||||
if err != nil {
|
||||
|
||||
@@ -22,6 +22,7 @@ type TailscaleEndpointStatus struct {
|
||||
NetworkName string
|
||||
MagicDNSSuffix string
|
||||
Self *TailscalePeer
|
||||
ExitNode *TailscalePeer
|
||||
userGroups []*TailscaleUserGroup
|
||||
}
|
||||
|
||||
@@ -52,6 +53,7 @@ type TailscalePeerIterator interface {
|
||||
}
|
||||
|
||||
type TailscalePeer struct {
|
||||
StableID string
|
||||
HostName string
|
||||
DNSName string
|
||||
OS string
|
||||
@@ -98,6 +100,9 @@ func tailscaleEndpointStatusFromGRPC(status *daemon.TailscaleEndpointStatus) *Ta
|
||||
if status.Self != nil {
|
||||
result.Self = tailscalePeerFromGRPC(status.Self)
|
||||
}
|
||||
if status.ExitNode != nil {
|
||||
result.ExitNode = tailscalePeerFromGRPC(status.ExitNode)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -117,6 +122,7 @@ func tailscaleUserGroupFromGRPC(group *daemon.TailscaleUserGroup) *TailscaleUser
|
||||
|
||||
func tailscalePeerFromGRPC(peer *daemon.TailscalePeer) *TailscalePeer {
|
||||
return &TailscalePeer{
|
||||
StableID: peer.StableID,
|
||||
HostName: peer.HostName,
|
||||
DNSName: peer.DnsName,
|
||||
OS: peer.Os,
|
||||
|
||||
Reference in New Issue
Block a user