Documentation ¶
Index ¶
- Constants
- func DialSocket(c context.Context, socketName string) (*grpc.ClientConn, error)
- func DisplayVersion() string
- func GetExe() string
- func Retry(c context.Context, text string, f func(context.Context) error, ...) error
- func RunError(err error) error
- func Semver() semver.Version
- func SetExe(executable string)
- func SocketExists(path string) bool
- func SocketURL(socket string) string
- func Version() string
- func WaitUntilSocketAppears(name, path string, ttw time.Duration) (err error)
- func WaitUntilSocketVanishes(name, path string, ttw time.Duration) (err error)
- func WithEnsuredState(r EnsuredState, retain bool, f func() error) (err error)
- type EnsuredState
- type Env
- type Scout
- type ScoutMeta
Constants ¶
const ( // ConnectorSocketName is the path used when communicating to the connector process ConnectorSocketName = "/tmp/telepresence-connector.socket" // DaemonSocketName is the path used when communicating to the daemon process DaemonSocketName = "/var/run/telepresence-daemon.socket" )
const (
// APIVersion is the API version of the daemon and connector API
APIVersion = 3
)
Variables ¶
This section is empty.
Functions ¶
func DialSocket ¶
DialSocket dials the given unix socket and returns the resulting connection
func DisplayVersion ¶
func DisplayVersion() string
DisplayVersion returns a printable version for `telepresence`
func Retry ¶
func Retry(c context.Context, text string, f func(context.Context) error, durations ...time.Duration) error
Retry will run the given function repeatedly with an increasing delay until it returns without error.
The function takes 0 to 3 durations with the following meaning
Delay - initial delay, i.e. the delay between the first and the second call. MaxDelay - maximum delay between calling the functions (delay will never grow beyond this value) MaxTime - maximum time before giving up.
func RunError ¶
RunError checks if the given err is a *exit.ExitError, and if so, extracts Stderr and the ExitCode from it.
func SetExe ¶
func SetExe(executable string)
SetExe defines the name of the executable (for testing purposes only)
func SocketExists ¶
SocketExists returns true if a socket is found at the given path
func SocketURL ¶
SocketURL returns the URL that corresponds to the given unix socket filesystem path.
func WaitUntilSocketAppears ¶
WaitUntilSocketAppears waits until the socket at the given path comes into existence and returns when that happens. The wait will be max ttw (time to wait) long. An error is returned if that time is exceeded before the socket is removed.
func WaitUntilSocketVanishes ¶
WaitUntilSocketVanishes waits until the socket at the given path is removed and returns when that happens. The wait will be max ttw (time to wait) long. An error is returned if that time is exceeded before the socket is removed.
func WithEnsuredState ¶
func WithEnsuredState(r EnsuredState, retain bool, f func() error) (err error)
WithEnsuredState ensures the given state, calls the function, and then, if the state was activated, it is deactivated unless the retain flag is true.
Types ¶
type EnsuredState ¶
type EnsuredState interface { // EnsureState will check if the state is active and activate it if that is not the case. // The boolean return value indicates if the state was activated or not. EnsureState() (bool, error) // Deactivate the state (i.e. quit, remove, disconnect) DeactivateState() error }
An EnsuredState represents some state that is needed in order for a function to execute.
type Env ¶
type Env struct { // I'd like to set TELEPRESENCE_LOGIN_DOMAIN,default=auth.datawire.io, but // sethvargo/go-envconfig doesn't support filling in the default for our later references to // it in following settings, so we have to do the hack with maybeSetDefault below. *sigh* I // guess I'm just spoiled by apro/cmd/amb-sidecar/types/internal/envconfig. LoginDomain string `env:"TELEPRESENCE_LOGIN_DOMAIN,required"` LoginAuthURL string `env:"TELEPRESENCE_LOGIN_AUTH_URL,default=https://${TELEPRESENCE_LOGIN_DOMAIN}/auth"` LoginTokenURL string `env:"TELEPRESENCE_LOGIN_TOKEN_URL,default=https://${TELEPRESENCE_LOGIN_DOMAIN}/token"` LoginCompletionURL string `env:"TELEPRESENCE_LOGIN_COMPLETION_URL,default=https://${TELEPRESENCE_LOGIN_DOMAIN}/completion"` LoginClientID string `env:"TELEPRESENCE_LOGIN_CLIENT_ID,default=telepresence-cli"` UserInfoURL string `env:"TELEPRESENCE_USER_INFO_URL,default=https://${TELEPRESENCE_LOGIN_DOMAIN}/api/userinfo"` Registry string `env:"TELEPRESENCE_REGISTRY,default=docker.io/datawire"` AgentImage string `env:"TELEPRESENCE_AGENT_IMAGE,default="` SystemAHost string `env:"SYSTEMA_HOST,default=app.getambassador.io"` SystemAPort string `env:"SYSTEMA_PORT,default=443"` }
type Scout ¶
Scout is a Metriton reported
func NewScout ¶
NewScout creates a new initialized Scout instance that can be used to send telepresence reports to Metriton
func (*Scout) Report ¶
Report constructs and sends a report. It includes the fixed (growing) set of metadata in the Scout structure and the pairs passed as arguments to this call. It also includes and increments the index, which can be used to determine the correct order of reported events for this installation attempt (correlated by the trace_id set at the start).
func (*Scout) SetMetadatum ¶
SetMetadatum associates the given key with the given value in the metadata of this instance. It's an error if the key already exists.