sshclient

package
v0.0.0-...-3d086f3 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2024 License: AGPL-3.0 Imports: 21 Imported by: 1

Documentation

Overview

Package sshclient implements the API endpoint required for Juju clients that wish to make SSH connections to Juju managed machines.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Register

func Register(registry facade.FacadeRegistry)

Register is called to expose a package of facades onto a given registry.

Types

type Backend

type Backend interface {
	ModelConfig() (*config.Config, error)
	GetMachineForEntity(tag string) (SSHMachine, error)
	GetSSHHostKeys(names.MachineTag) (state.SSHHostKeys, error)
	ModelTag() names.ModelTag
	ControllerTag() names.ControllerTag
	Model() (Model, error)
	CloudSpec() (environscloudspec.CloudSpec, error)
}

Backend defines the State API used by the sshclient facade.

type Broker

type Broker interface {
	GetSecretToken(name string) (string, error)
}

Broker is a subset of caas broker.

type Facade

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

Facade implements the API required by the sshclient worker.

func (*Facade) AllAddresses

func (facade *Facade) AllAddresses(args params.Entities) (params.SSHAddressesResults, error)

AllAddresses reports all addresses that might have SSH listening for each entity in args. The result is sorted with public addresses first. Machines and units are supported as entity types.

func (*Facade) ModelCredentialForSSH

func (facade *Facade) ModelCredentialForSSH() (params.CloudSpecResult, error)

ModelCredentialForSSH returns a cloud spec for ssh purpose. This facade call is only used for k8s model.

func (*Facade) PrivateAddress

func (facade *Facade) PrivateAddress(args params.Entities) (params.SSHAddressResults, error)

PrivateAddress reports the preferred private network address for one or more entities. Machines and units are supported.

func (*Facade) Proxy

func (facade *Facade) Proxy() (params.SSHProxyResult, error)

Proxy returns whether SSH connections should be proxied through the controller hosts for the model associated with the API connection.

func (*Facade) PublicAddress

func (facade *Facade) PublicAddress(args params.Entities) (params.SSHAddressResults, error)

PublicAddress reports the preferred public network address for one or more entities. Machines and units are supported.

func (*Facade) PublicKeys

func (facade *Facade) PublicKeys(args params.Entities) (params.SSHPublicKeysResults, error)

PublicKeys returns the public SSH hosts for one or more entities. Machines and units are supported.

type Model

type Model interface {
	ControllerUUID() string
	Config() (*config.Config, error)
	Type() state.ModelType
}

Model defines a point of use interface for the model from state.

type SSHMachine

type SSHMachine interface {
	MachineTag() names.MachineTag
	PublicAddress() (network.SpaceAddress, error)
	PrivateAddress() (network.SpaceAddress, error)
	Addresses() network.SpaceAddresses
	AllDeviceSpaceAddresses() (network.SpaceAddresses, error)
}

SSHMachine specifies the methods on State.Machine of interest to the SSHClient facade.

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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