sshclient

package
v0.0.0-...-9ec3720 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2021 License: AGPL-3.0 Imports: 13 Imported by: 0

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

This section is empty.

Types

type Backend

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

Backend defines the State API used by the sshclient facade.

type Facade

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

Facade implements the API required by the sshclient worker.

func NewFacade

func NewFacade(ctx facade.Context) (*Facade, error)

NewFacade is used for API registration.

func (*Facade) AllAddresses

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

AllAddresses reports all addresses that might have SSH listening for each given entity in args. Machines and units are supported as entity types. TODO(wpk): 2017-05-17 This is a temporary solution, we should not fetch environ here but get the addresses from state. We will be changing it since we want to have space-aware SSH settings.

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 suppored.

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 SSHMachine

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

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

Jump to

Keyboard shortcuts

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