common

package
v0.0.0-...-5c79d48 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2024 License: AGPL-3.0 Imports: 98 Imported by: 0

Documentation

Overview

* Teleport * Copyright (C) 2023 Gravitational, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>.

Index

Constants

View Source
const (
	GlobalHelpString = "Admin tool for the Teleport Access Platform"

	AddUserHelp = `` /* 621-byte string literal not displayed */

	AddNodeHelp = `` /* 481-byte string literal not displayed */

	ListNodesHelp = `Notes:
  SSH nodes send periodic heartbeat to the Auth service. This command prints
  the list of current online nodes.
`
)

Variables

This section is empty.

Functions

func ApplyConfig

func ApplyConfig(ccf *GlobalCLIFlags, cfg *servicecfg.Config) (*authclient.Config, error)

ApplyConfig takes configuration values from the config file and applies them to 'servicecfg.Config' object.

The returned authclient.Config has the credentials needed to dial the auth server.

func LoadConfigFromProfile

func LoadConfigFromProfile(ccf *GlobalCLIFlags, cfg *servicecfg.Config) (*authclient.Config, error)

LoadConfigFromProfile applies config from ~/.tsh/ profile if it's present

func Run

func Run(commands []CLICommand)

Run is the same as 'make'. It helps to share the code between different "distributions" like OSS or Enterprise

distribution: name of the Teleport distribution

func TryRun

func TryRun(commands []CLICommand, args []string) error

TryRun is a helper function for Run to call - it runs a tctl command and returns an error. This is useful for testing tctl, because we can capture the returned error in tests.

func UpsertVerb

func UpsertVerb(exists bool, force bool) string

UpsertVerb generates the correct string form of a verb based on the action taken

Types

type ACLCommand

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

ACLCommand implements the `tctl acl` family of commands.

func (*ACLCommand) Get

func (c *ACLCommand) Get(ctx context.Context, client auth.ClientI) error

Get will display information about an access list visible to the user.

func (*ACLCommand) Initialize

func (c *ACLCommand) Initialize(app *kingpin.Application, _ *servicecfg.Config)

Initialize allows ACLCommand to plug itself into the CLI parser

func (*ACLCommand) List

func (c *ACLCommand) List(ctx context.Context, client auth.ClientI) error

List will list access lists visible to the user.

func (*ACLCommand) TryRun

func (c *ACLCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "acl ls") and executes it.

func (*ACLCommand) UsersAdd

func (c *ACLCommand) UsersAdd(ctx context.Context, client auth.ClientI) error

UsersAdd will add a user to an access list.

func (*ACLCommand) UsersList

func (c *ACLCommand) UsersList(ctx context.Context, client auth.ClientI) error

UsersList will list the users in an access list.

func (*ACLCommand) UsersRemove

func (c *ACLCommand) UsersRemove(ctx context.Context, client auth.ClientI) error

UsersRemove will remove a user to an access list.

type AccessRequestCommand

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

AccessRequestCommand implements `tctl users` set of commands It implements CLICommand interface

func (*AccessRequestCommand) Approve

func (c *AccessRequestCommand) Approve(ctx context.Context, client auth.ClientI) error

func (*AccessRequestCommand) Caps

func (c *AccessRequestCommand) Caps(ctx context.Context, client auth.ClientI) error

func (*AccessRequestCommand) Create

func (c *AccessRequestCommand) Create(ctx context.Context, client auth.ClientI) error

func (*AccessRequestCommand) Delete

func (c *AccessRequestCommand) Delete(ctx context.Context, client auth.ClientI) error

func (*AccessRequestCommand) Deny

func (c *AccessRequestCommand) Deny(ctx context.Context, client auth.ClientI) error

func (*AccessRequestCommand) Get

func (c *AccessRequestCommand) Get(ctx context.Context, client auth.ClientI) error

func (*AccessRequestCommand) Initialize

func (c *AccessRequestCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows AccessRequestCommand to plug itself into the CLI parser

func (*AccessRequestCommand) List

func (c *AccessRequestCommand) List(ctx context.Context, client auth.ClientI) error

func (*AccessRequestCommand) Review

func (c *AccessRequestCommand) Review(ctx context.Context, client auth.ClientI) error

func (*AccessRequestCommand) TryRun

func (c *AccessRequestCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "access-request list") and executes it.

type AlertCommand

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

AlertCommand implements the `tctl alerts` family of commands.

func (*AlertCommand) Ack

func (c *AlertCommand) Ack(ctx context.Context, client auth.ClientI) error

func (*AlertCommand) ClearAck

func (c *AlertCommand) ClearAck(ctx context.Context, client auth.ClientI) error

func (*AlertCommand) Create

func (c *AlertCommand) Create(ctx context.Context, client auth.ClientI) error

func (*AlertCommand) Initialize

func (c *AlertCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows AlertCommand to plug itself into the CLI parser

func (*AlertCommand) List

func (c *AlertCommand) List(ctx context.Context, client auth.ClientI) error

func (*AlertCommand) ListAck

func (c *AlertCommand) ListAck(ctx context.Context, client auth.ClientI) error

func (*AlertCommand) TryRun

func (c *AlertCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "alerts ls") and executes it.

type AppsCommand

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

AppsCommand implements "tctl apps" group of commands.

func (*AppsCommand) Initialize

func (c *AppsCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows AppsCommand to plug itself into the CLI parser

func (*AppsCommand) ListApps

func (c *AppsCommand) ListApps(ctx context.Context, clt auth.ClientI) error

ListApps prints the list of applications that have recently sent heartbeats to the cluster.

func (*AppsCommand) TryRun

func (c *AppsCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun attempts to run subcommands like "apps ls".

type AuthCommand

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

AuthCommand implements `tctl auth` group of commands

func (*AuthCommand) ExportAuthorities

func (a *AuthCommand) ExportAuthorities(ctx context.Context, clt auth.ClientI) error

ExportAuthorities outputs the list of authorities in OpenSSH compatible formats If --type flag is given, only prints keys for CAs of this type, otherwise prints all keys

func (*AuthCommand) GenerateAndSignKeys

func (a *AuthCommand) GenerateAndSignKeys(ctx context.Context, clusterAPI auth.ClientI) error

GenerateAndSignKeys generates a new keypair and signs it for role

func (*AuthCommand) GenerateCRLForCA

func (a *AuthCommand) GenerateCRLForCA(ctx context.Context, clusterAPI auth.ClientI) error

GenerateCRLForCA generates a certificate revocation list for a certificate authority.

func (*AuthCommand) GenerateKeys

func (a *AuthCommand) GenerateKeys(ctx context.Context) error

GenerateKeys generates a new keypair

func (*AuthCommand) Initialize

func (a *AuthCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows TokenCommand to plug itself into the CLI parser

func (*AuthCommand) ListAuthServers

func (a *AuthCommand) ListAuthServers(ctx context.Context, clusterAPI auth.ClientI) error

ListAuthServers prints a list of connected auth servers

func (*AuthCommand) RotateCertAuthority

func (a *AuthCommand) RotateCertAuthority(ctx context.Context, client auth.ClientI) error

RotateCertAuthority starts or restarts certificate authority rotation process

func (*AuthCommand) TryRun

func (a *AuthCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "auth gen") and executes it or returns match=false if 'cmd' does not belong to it

type BackendStats

type BackendStats struct {
	// Read is a read latency histogram
	Read Histogram
	// BatchRead is a batch read latency histogram
	BatchRead Histogram
	// Write is a write latency histogram
	Write Histogram
	// BatchWrite is a batch write latency histogram
	BatchWrite Histogram
	// TopRequests is a collection of requests to
	// backend and their counts
	TopRequests map[RequestKey]Request
	// QueueSize is a queue size of the cache watcher
	QueueSize float64
}

BackendStats contains backend stats

func (*BackendStats) SortedTopRequests

func (b *BackendStats) SortedTopRequests() []Request

SortedTopRequests returns top requests sorted either by frequency if frequency is present, or by count, if both frequency and count are identical then by name to preserve order

type BotsCommand

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

func (*BotsCommand) AddBot

func (c *BotsCommand) AddBot(ctx context.Context, client auth.ClientI) error

AddBot adds a new certificate renewal bot to the cluster.

func (*BotsCommand) Initialize

func (c *BotsCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize sets up the "tctl bots" command.

func (*BotsCommand) ListBots

func (c *BotsCommand) ListBots(ctx context.Context, client auth.ClientI) error

ListBots writes a listing of the cluster's certificate renewal bots to standard out.

func (*BotsCommand) LockBot

func (c *BotsCommand) LockBot(ctx context.Context, client auth.ClientI) error

func (*BotsCommand) RemoveBot

func (c *BotsCommand) RemoveBot(ctx context.Context, client auth.ClientI) error

func (*BotsCommand) TryRun

func (c *BotsCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun attempts to run subcommands.

func (*BotsCommand) UpdateBot

func (c *BotsCommand) UpdateBot(ctx context.Context, client auth.ClientI) error

UpdateBot performs various updates to existing bot users and roles.

type Bucket

type Bucket struct {
	// Count is a count of elements in the bucket
	Count int64
	// UpperBound is an upper bound of the bucket
	UpperBound float64
}

Bucket is a histogram bucket

type CLICommand

type CLICommand interface {
	// Initialize allows a caller-defined command to plug itself into CLI
	// argument parsing
	Initialize(*kingpin.Application, *servicecfg.Config)

	// TryRun is executed after the CLI parsing is done. The command must
	// determine if selectedCommand belongs to it and return match=true
	TryRun(ctx context.Context, selectedCommand string, c auth.ClientI) (match bool, err error)
}

CLICommand interface must be implemented by every CLI command

This allows OSS and Enterprise Teleport editions to plug their own implementations of different CLI commands into the common execution framework

func Commands

func Commands() []CLICommand

Commands returns the set of commands that are to oss and ent variants of tctl.

func OSSCommands

func OSSCommands() []CLICommand

OSSCommands returns the oss variants of commands that use different variants for oss and ent.

type ClusterStats

type ClusterStats struct {
	// InteractiveSessions is a number of active sessions.
	InteractiveSessions float64
	// RemoteClusters is a list of remote clusters and their status.
	RemoteClusters []RemoteCluster
	// GenerateRequests is a number of active generate requests
	GenerateRequests float64
	// GenerateRequestsCount is a total number of generate requests
	GenerateRequestsCount Counter
	// GenerateRequestThrottledCount is a total number of throttled generate
	// requests
	GenerateRequestsThrottledCount Counter
	// GenerateRequestsHistogram is a histogram of generate requests latencies
	GenerateRequestsHistogram Histogram
	// ActiveMigrations is a set of active migrations
	ActiveMigrations []string
}

ClusterStats contains some teleport specific stats

type Counter

type Counter struct {
	// Freq is a key access frequency in requests per second
	Freq *float64
	// Count is a last recorded count
	Count int64
}

Counter contains count and frequency

func (Counter) GetFreq

func (c Counter) GetFreq() float64

GetFreq returns frequency of the request

func (*Counter) SetFreq

func (c *Counter) SetFreq(prevCount Counter, period time.Duration)

SetFreq sets counter frequency based on the previous value and the time period

type DBCommand

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

DBCommand implements "tctl db" group of commands.

func (*DBCommand) Initialize

func (c *DBCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows DBCommand to plug itself into the CLI parser.

func (*DBCommand) ListDatabases

func (c *DBCommand) ListDatabases(ctx context.Context, clt auth.ClientI) error

ListDatabases prints the list of database proxies that have recently sent heartbeats to the cluster.

func (*DBCommand) TryRun

func (c *DBCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun attempts to run subcommands like "db ls".

type DesktopCommand

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

DesktopCommand implements "tctl desktop" group of commands.

func (*DesktopCommand) Initialize

func (c *DesktopCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows DesktopCommand to plug itself into the CLI parser

func (*DesktopCommand) ListDesktop

func (c *DesktopCommand) ListDesktop(ctx context.Context, client auth.ClientI) error

ListDesktop prints the list of desktops that have recently sent heartbeats to the cluster.

func (*DesktopCommand) TryRun

func (c *DesktopCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun attempts to run subcommands like "desktop ls".

type DevicesCommand

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

DevicesCommand implements the `tctl devices` command. Device trust is an enterprise-only feature, so this command will fail when run against an OSS auth server.

func (*DevicesCommand) Initialize

func (c *DevicesCommand) Initialize(app *kingpin.Application, cfg *servicecfg.Config)

func (*DevicesCommand) TryRun

func (c *DevicesCommand) TryRun(ctx context.Context, selectedCommand string, authClient auth.ClientI) (match bool, err error)

type EditCommand

type EditCommand struct {

	// Editor is used by tests to inject the editing mechanism
	// so that different scenarios can be asserted.
	Editor func(filename string) error
	// contains filtered or unexported fields
}

EditCommand implements the `tctl edit` command for modifying Teleport resources.

func (*EditCommand) Initialize

func (e *EditCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

func (*EditCommand) TryRun

func (e *EditCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (bool, error)

type Event

type Event struct {
	// Resource is the resource of the event
	Resource string
	// Size is the size of the serialized event
	Size float64
	// Counter maintains the count and the resource frequency
	Counter
}

Event is a watcher event stats

func (Event) AverageSize

func (e Event) AverageSize() float64

AverageSize returns the average size for the event

type ExternalAuditStorageCommand

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

ExternalAuditStorageCommand implements "tctl externalauditstorage" group of commands.

func (*ExternalAuditStorageCommand) Generate

Generate creates an External Audit Storage configuration with randomized resource names and saves it as the current draft.

func (*ExternalAuditStorageCommand) Initialize

func (c *ExternalAuditStorageCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows ExternalAuditStorageCommand to plug itself into the CLI parser.

func (*ExternalAuditStorageCommand) Promote

Promote calls PromoteToClusterExternalAuditStorage, which results in enabling External Audit Storage in the cluster based on existing draft.

func (*ExternalAuditStorageCommand) TryRun

func (c *ExternalAuditStorageCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun attempts to run subcommands.

type GlobalCLIFlags

type GlobalCLIFlags struct {
	// Debug enables verbose logging mode to the console
	Debug bool
	// ConfigFile is the path to the Teleport configuration file
	ConfigFile string
	// ConfigString is the base64-encoded string with Teleport configuration
	ConfigString string
	// AuthServerAddr lists addresses of auth or proxy servers to connect to,
	AuthServerAddr []string
	// IdentityFilePath is the path to the identity file
	IdentityFilePath string
	// Insecure, when set, skips validation of server TLS certificate when
	// connecting through a proxy (specified in AuthServerAddr).
	Insecure bool
}

GlobalCLIFlags keeps the CLI flags that apply to all tctl commands

type GoStats

type GoStats struct {
	// Info is a runtime info (version, etc)
	Info string
	// Threads is a number of OS threads created.
	Threads float64
	// Goroutines is a number of goroutines that currently exist.
	Goroutines float64
	// Number of heap bytes allocated and still in use.
	HeapAllocBytes float64
	// Number of bytes allocated and still in use.
	AllocBytes float64
	// HeapObjects is a number of allocated objects.
	HeapObjects float64
}

GoStats is stats about go runtime

type Histogram

type Histogram struct {
	// Count is a total number of elements counted
	Count int64
	// Sum is sum of all elements counted
	Sum float64
	// Buckets is a list of buckets
	Buckets []Bucket
}

Histogram is a histogram with buckets

func (Histogram) AsPercentiles

func (h Histogram) AsPercentiles() []Percentile

AsPercentiles interprets histogram as a bucket of percentiles and returns calculated percentiles

type IdPCommand

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

IdPCommand implements all commands under "tctl idp".

func (*IdPCommand) Initialize

func (t *IdPCommand) Initialize(app *kingpin.Application, cfg *servicecfg.Config)

Initialize installs the base "idp" command and all subcommands.

func (*IdPCommand) TryRun

func (i *IdPCommand) TryRun(ctx context.Context, cmd string, c auth.ClientI) (match bool, err error)

TryRun calls tryRun for each subcommand, and returns (false, nil) if none of them match.

type InventoryCommand

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

InventoryCommand implements the `tctl inventory` family of commands.

func (*InventoryCommand) Initialize

func (c *InventoryCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows AccessRequestCommand to plug itself into the CLI parser

func (*InventoryCommand) List

func (c *InventoryCommand) List(ctx context.Context, client auth.ClientI) error

func (*InventoryCommand) Ping

func (c *InventoryCommand) Ping(ctx context.Context, client auth.ClientI) error

func (*InventoryCommand) Status

func (c *InventoryCommand) Status(ctx context.Context, client auth.ClientI) error

func (*InventoryCommand) TryRun

func (c *InventoryCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "inventory status") and executes it.

type KubeCommand

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

KubeCommand implements "tctl kube" group of commands.

func (*KubeCommand) Initialize

func (c *KubeCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows KubeCommand to plug itself into the CLI parser

func (*KubeCommand) ListKube

func (c *KubeCommand) ListKube(ctx context.Context, clt auth.ClientI) error

ListKube prints the list of kube clusters that have recently sent heartbeats to the cluster.

func (*KubeCommand) TryRun

func (c *KubeCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun attempts to run subcommands like "kube ls".

type LoadtestCommand

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

LoadtestCommand implements the `tctl loadtest` family of commands.

func (*LoadtestCommand) Initialize

func (c *LoadtestCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows LoadtestCommand to plug itself into the CLI parser

func (*LoadtestCommand) NodeHeartbeats

func (c *LoadtestCommand) NodeHeartbeats(ctx context.Context, client auth.ClientI) error

func (*LoadtestCommand) TryRun

func (c *LoadtestCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "loadtest node-heartbeats") and executes it.

func (*LoadtestCommand) Watch

func (c *LoadtestCommand) Watch(ctx context.Context, client auth.ClientI) error

type LockCommand

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

LockCommand implements `tctl lock` group of commands.

func (*LockCommand) CreateLock

func (c *LockCommand) CreateLock(ctx context.Context, client auth.ClientI) error

CreateLock creates a lock for the main `tctl lock` command.

func (*LockCommand) Initialize

func (c *LockCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows LockCommand to plug itself into the CLI parser.

func (*LockCommand) TryRun

func (c *LockCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun attempts to run subcommands.

type NodeCommand

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

NodeCommand implements `tctl nodes` group of commands

func (*NodeCommand) Initialize

func (c *NodeCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows NodeCommand to plug itself into the CLI parser

func (*NodeCommand) Invite

func (c *NodeCommand) Invite(ctx context.Context, client auth.ClientI) error

Invite generates a token which can be used to add another SSH node to a cluster

func (*NodeCommand) ListActive

func (c *NodeCommand) ListActive(ctx context.Context, clt auth.ClientI) error

ListActive retrieves the list of nodes who recently sent heartbeats to to a cluster and prints it to stdout

func (*NodeCommand) TryRun

func (c *NodeCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "nodes ls") and executes it.

type Percentile

type Percentile struct {
	// Percentile is a percentile value
	Percentile float64
	// Value is a value of the percentile
	Value time.Duration
}

Percentile is a latency percentile

type ProcessStats

type ProcessStats struct {
	// CPUSecondsTotal is a total user and system CPU time spent in seconds.
	CPUSecondsTotal float64
	// MaxFDs is the maximum number of open file descriptors.
	MaxFDs float64
	// OpenFDs is a number of open file descriptors.
	OpenFDs float64
	// ResidentMemoryBytes is a resident memory size in bytes.
	ResidentMemoryBytes float64
	// StartTime is a process start time
	StartTime time.Time
}

ProcessStats is a process statistics

type ProxyCommand

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

ProxyCommand returns information about connected proxies

func (*ProxyCommand) Initialize

func (p *ProxyCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize creates the proxy command and subcommands

func (*ProxyCommand) ListProxies

func (p *ProxyCommand) ListProxies(ctx context.Context, clusterAPI auth.ClientI) error

ListProxies prints currently connected proxies

func (*ProxyCommand) TryRun

func (p *ProxyCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun runs the proxy command

type RecordingsCommand

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

RecordingsCommand implements "tctl recordings" group of commands.

func (*RecordingsCommand) Initialize

func (c *RecordingsCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows RecordingsCommand to plug itself into the CLI parser

func (*RecordingsCommand) ListRecordings

func (c *RecordingsCommand) ListRecordings(ctx context.Context, tc auth.ClientI) error

func (*RecordingsCommand) TryRun

func (c *RecordingsCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun attempts to run subcommands like "recordings ls".

type RemoteCluster

type RemoteCluster struct {
	// Name is a cluster name
	Name string
	// Connected is true when cluster is connected
	Connected bool
}

RemoteCluster is a remote cluster (or local cluster) connected to this cluster

func (RemoteCluster) IsConnected

func (rc RemoteCluster) IsConnected() string

IsConnected returns user-friendly "connected" or "disconnected" cluster status

type Report

type Report struct {
	// Version is a report version
	Version string
	// Timestamp is the date when this report has been generated
	Timestamp time.Time
	// Hostname is the hostname of the report
	Hostname string
	// Process contains process stats
	Process ProcessStats
	// Go contains go runtime stats
	Go GoStats
	// Backend is a backend stats
	Backend BackendStats
	// Cache is cache stats
	Cache BackendStats
	// Cluster is cluster stats
	Cluster ClusterStats
	// Watcher is watcher stats
	Watcher *WatcherStats
}

Report is a report rendered over the data

type Request

type Request struct {
	// Key is a request key
	Key RequestKey
	// Counter maintains the count and the key access frequency
	Counter
}

Request is a backend request stats

type RequestKey

type RequestKey struct {
	// Range is set when it's a range request
	Range bool
	// Key is a backend key and operation
	Key string
}

RequestKey is a composite request Key

func (RequestKey) IsRange

func (r RequestKey) IsRange() string

IsRange returns user-friendly "range" if request is a range request

type ResourceCollection

type ResourceCollection interface {
	// contains filtered or unexported methods
}

type ResourceCommand

type ResourceCommand struct {
	CreateHandlers map[ResourceKind]ResourceCreateHandler
	UpdateHandlers map[ResourceKind]ResourceCreateHandler
	// contains filtered or unexported fields
}

ResourceCommand implements `tctl get/create/list` commands for manipulating Teleport resources

func (*ResourceCommand) Create

func (rc *ResourceCommand) Create(ctx context.Context, client auth.ClientI) (err error)

Create updates or inserts one or many resources

func (*ResourceCommand) Delete

func (rc *ResourceCommand) Delete(ctx context.Context, client auth.ClientI) (err error)

Delete deletes resource by name

func (*ResourceCommand) Get

func (rc *ResourceCommand) Get(ctx context.Context, client auth.ClientI) error

Get prints one or many resources of a certain type

func (*ResourceCommand) GetAll

func (rc *ResourceCommand) GetAll(ctx context.Context, client auth.ClientI) error

func (*ResourceCommand) GetMany

func (rc *ResourceCommand) GetMany(ctx context.Context, client auth.ClientI) error

func (*ResourceCommand) GetRef

func (rc *ResourceCommand) GetRef() services.Ref

GetRef returns the reference (basically type/name pair) of the resource the command is operating on

func (*ResourceCommand) Initialize

func (rc *ResourceCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows ResourceCommand to plug itself into the CLI parser

func (*ResourceCommand) IsDeleteSubcommand

func (rc *ResourceCommand) IsDeleteSubcommand(cmd string) bool

IsDeleteSubcommand returns 'true' if the given command is `tctl rm`

func (*ResourceCommand) IsForced

func (rc *ResourceCommand) IsForced() bool

IsForced returns true if -f flag was passed

func (*ResourceCommand) TryRun

func (rc *ResourceCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "auth gen") and executes it or returns match=false if 'cmd' does not belong to it

func (*ResourceCommand) UpdateFields

func (rc *ResourceCommand) UpdateFields(ctx context.Context, clt auth.ClientI) error

UpdateFields updates select resource fields: expiry and labels

type ResourceCreateHandler

type ResourceCreateHandler func(context.Context, auth.ClientI, services.UnknownResource) error

ResourceCreateHandler is the generic implementation of a resource creation handler

type ResourceKind

type ResourceKind string

ResourceKind is the string form of a resource, i.e. "oidc"

type SAMLCommand

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

implements common.CLICommand interface

func (*SAMLCommand) Initialize

func (cmd *SAMLCommand) Initialize(app *kingpin.Application, cfg *servicecfg.Config)

Initialize allows a caller-defined command to plug itself into CLI argument parsing

func (*SAMLCommand) TryRun

func (cmd *SAMLCommand) TryRun(ctx context.Context, selectedCommand string, c auth.ClientI) (match bool, err error)

TryRun is executed after the CLI parsing is done. The command must determine if selectedCommand belongs to it and return match=true

type StatusCommand

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

StatusCommand implements `tctl token` group of commands.

func (*StatusCommand) Initialize

func (c *StatusCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows StatusCommand to plug itself into the CLI parser.

func (*StatusCommand) Status

func (c *StatusCommand) Status(ctx context.Context, client auth.ClientI) error

Status is called to execute "status" CLI command.

func (*StatusCommand) TryRun

func (c *StatusCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "nodes ls") and executes it.

type TokensCommand

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

TokensCommand implements `tctl tokens` group of commands

func (*TokensCommand) Add

func (c *TokensCommand) Add(ctx context.Context, client auth.ClientI) error

Add is called to execute "tokens add ..." command.

func (*TokensCommand) Del

func (c *TokensCommand) Del(ctx context.Context, client auth.ClientI) error

Del is called to execute "tokens del ..." command.

func (*TokensCommand) Initialize

func (c *TokensCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows TokenCommand to plug itself into the CLI parser

func (*TokensCommand) List

func (c *TokensCommand) List(ctx context.Context, client auth.ClientI) error

List is called to execute "tokens ls" command.

func (*TokensCommand) TryRun

func (c *TokensCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "nodes ls") and executes it.

type TopCommand

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

TopCommand implements `tctl top` group of commands.

func (*TopCommand) Initialize

func (c *TopCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows TopCommand to plug itself into the CLI parser.

func (*TopCommand) Top

func (c *TopCommand) Top(ctx context.Context, client *roundtrip.Client) error

Top is called to execute "status" CLI command.

func (*TopCommand) TryRun

func (c *TopCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "nodes ls") and executes it.

type UserCommand

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

UserCommand implements `tctl users` set of commands It implements CLICommand interface

func (*UserCommand) Add

func (u *UserCommand) Add(ctx context.Context, client auth.ClientI) error

Add implements `tctl users add` for the enterprise edition. Unlike the OSS version, this one requires --roles flag to be set

func (*UserCommand) Delete

func (u *UserCommand) Delete(ctx context.Context, client auth.ClientI) error

Delete deletes teleport user(s). User IDs are passed as a comma-separated list in UserCommand.login

func (*UserCommand) Initialize

func (u *UserCommand) Initialize(app *kingpin.Application, config *servicecfg.Config)

Initialize allows UserCommand to plug itself into the CLI parser

func (*UserCommand) List

func (u *UserCommand) List(ctx context.Context, client auth.ClientI) error

List prints all existing user accounts

func (*UserCommand) PrintResetPasswordToken

func (u *UserCommand) PrintResetPasswordToken(token types.UserToken, format string) error

PrintResetPasswordToken prints ResetPasswordToken

func (*UserCommand) PrintResetPasswordTokenAsInvite

func (u *UserCommand) PrintResetPasswordTokenAsInvite(token types.UserToken, format string) error

PrintResetPasswordTokenAsInvite prints ResetPasswordToken as Invite

func (*UserCommand) ResetPassword

func (u *UserCommand) ResetPassword(ctx context.Context, client auth.ClientI) error

ResetPassword resets user password and generates a token to setup new password

func (*UserCommand) TryRun

func (u *UserCommand) TryRun(ctx context.Context, cmd string, client auth.ClientI) (match bool, err error)

TryRun takes the CLI command as an argument (like "users add") and executes it.

func (*UserCommand) Update

func (u *UserCommand) Update(ctx context.Context, client auth.ClientI) error

Update updates existing user

type WatcherStats

type WatcherStats struct {
	// EventSize is an event size histogram
	EventSize Histogram
	// TopEvents is a collection of resources to their events
	TopEvents map[string]Event
	// EventsPerSecond is the events per sec buffer
	EventsPerSecond *utils.CircularBuffer
	// BytesPerSecond is the bytes per sec buffer
	BytesPerSecond *utils.CircularBuffer
}

WatcherStats contains watcher stats

func (*WatcherStats) SortedTopEvents

func (b *WatcherStats) SortedTopEvents() []Event

SortedTopEvents returns top events sorted either by frequency if frequency is present, or by count, if both frequency and count are identical then by name to preserve order

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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