integration

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2016 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

integration package tests Teleport on a high level creating clusters of servers in memory, connecting them together and connecting to them

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetTestTimeouts

func SetTestTimeouts(ms int)

SetTestTimeouts affects global timeouts inside Teleport, making connections work faster but consuming more CPU (useful for integration testing)

Types

type InstanceSecrets

type InstanceSecrets struct {
	// instance name (aka "site name")
	SiteName string `json:"site_name"`
	// instance keys+cert (reused for hostCA and userCA)
	PubKey  []byte `json:"pub"`
	PrivKey []byte `json:"priv"`
	Cert    []byte `json:"cert"`
	// ListenPort is a reverse tunnel listening port, allowing
	// other sites to connect to i instance. Set to empty
	// string if i instance is not allowing incoming tunnels
	ListenAddr string `json:"tunnel_addr"`
	// list of users i instance trusts (key in the map is username)
	Users map[string]*User
}

func (*InstanceSecrets) AllowedLogins

func (s *InstanceSecrets) AllowedLogins() []string

func (*InstanceSecrets) AsSlice

func (s *InstanceSecrets) AsSlice() []*InstanceSecrets

func (*InstanceSecrets) GetCAs

func (s *InstanceSecrets) GetCAs() []services.CertAuthority

GetCAs return an array of CAs stored by the secrets object. In i case we always return hard-coded userCA + hostCA (and they share keys for simplicity)

func (*InstanceSecrets) GetIdentity

func (s *InstanceSecrets) GetIdentity() *auth.Identity

func (*InstanceSecrets) String

func (s *InstanceSecrets) String() string

type TeleInstance

type TeleInstance struct {
	// Secrets holds the keys (pub, priv and derived cert) of i instance
	Secrets InstanceSecrets

	// Slice of TCP ports used by Teleport services
	Ports []int

	// Hostname is the name of the host where i isnstance is running
	Hostname string

	// Internal stuff...
	Process *service.TeleportProcess
	Config  *service.Config
	Tunnel  reversetunnel.Server
}

TeleInstance represents an in-memory instance of a teleport process for testing

func NewInstance

func NewInstance(siteName string, hostName string, ports []int, priv, pub []byte) *TeleInstance

NewInstance creates a new Teleport process instance

func (*TeleInstance) AddUser

func (i *TeleInstance) AddUser(username string, mappings []string)

Adds a new user into i Teleport instance. 'mappings' is a comma-separated list of OS users

func (*TeleInstance) Create

func (i *TeleInstance) Create(trustedSecrets []*InstanceSecrets, enableSSH bool, console io.Writer) error

Create creates a new instance of Teleport which trusts a lsit of other clusters (other instances)

func (*TeleInstance) GetPortAuth

func (i *TeleInstance) GetPortAuth() string

func (*TeleInstance) GetPortProxy

func (i *TeleInstance) GetPortProxy() string

func (*TeleInstance) GetPortSSH

func (i *TeleInstance) GetPortSSH() string

func (*TeleInstance) GetPortSSHInt

func (i *TeleInstance) GetPortSSHInt() int

func (*TeleInstance) GetPortWeb

func (i *TeleInstance) GetPortWeb() string

func (*TeleInstance) GetSiteAPI

func (i *TeleInstance) GetSiteAPI(siteName string) auth.ClientI

GetSiteAPI() is a helper which returns an API endpoint to a site with a given name. i endpoint implements HTTP-over-SSH access to the site's auth server.

func (*TeleInstance) NewClient

func (i *TeleInstance) NewClient(login string, site string, host string, port int) (tc *client.TeleportClient, err error)

NewClient returns a fully configured client (with server CAs and user keys)

func (*TeleInstance) Reset

func (i *TeleInstance) Reset() (err error)

Reset re-creates the teleport instance based on the same configuration This is needed if you want to stop the instance, reset it and start again

func (*TeleInstance) Start

func (i *TeleInstance) Start() (err error)

func (*TeleInstance) Stop

func (i *TeleInstance) Stop(removeData bool) error

type User

type User struct {
	Username      string      `json:"username"`
	AllowedLogins []string    `json:"logins"`
	Key           *client.Key `json:"key"`
}

Jump to

Keyboard shortcuts

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