cloud

package
v0.1.13 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 License: AGPL-3.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CloudProviderInterface

type CloudProviderInterface interface {
	// Deploy deploys a new instance
	Deploy(Vm) (Vm, error)
	// Destroy destroys an instance
	Destroy(Vm) error
	// List lists all instances
	List() (VmList, error)
	// CreateSSHKey creates a new SSH key
	CreateSSHKey(publicKeyFile string) (keyID string, err error)
	// SSHInto connects to a VM
	SSHInto(serverName string, port int)
	// GetByName gets a VM by name
	GetByName(serverName string) (Vm, error)
}

type CostStruct added in v0.1.6

type CostStruct struct {
	Currency        string
	CostPerHour     float64
	CostPerMonth    float64
	AccumulatedCost float64
}

type Price added in v0.1.6

type Price struct {
	// Currency is the currency of the price
	Currency string
	// Hourly is the hourly price
	Hourly string
	// Monthly is the monthly price
	Monthly string
}

type ProviderAws

type ProviderAws struct {
	Client *ec2.EC2
}

func (ProviderAws) CreateSSHKey

func (p ProviderAws) CreateSSHKey(publicKeyFile string) (keyID string, err error)

func (ProviderAws) Deploy

func (p ProviderAws) Deploy(server Vm) (Vm, error)

func (ProviderAws) Destroy

func (p ProviderAws) Destroy(server Vm) error

func (ProviderAws) GetByName added in v0.1.6

func (p ProviderAws) GetByName(serverName string) (Vm, error)

func (ProviderAws) List

func (p ProviderAws) List() (VmList, error)

func (ProviderAws) SSHInto

func (p ProviderAws) SSHInto(serverName string, port int)

type ProviderAzure

type ProviderAzure struct {
	ResourceGraphClient *armresourcegraph.Client
	VmClient            *armcompute.VirtualMachinesClient
	NicClient           *armnetwork.InterfacesClient
	PublicIPClient      *armnetwork.PublicIPAddressesClient
	SSHKeyClient        *armcompute.SSHPublicKeysClient
	VnetClient          *armnetwork.VirtualNetworksClient
}

func (ProviderAzure) CreateSSHKey

func (p ProviderAzure) CreateSSHKey(publicKeyFileName string) (string, error)

func (ProviderAzure) Deploy

func (p ProviderAzure) Deploy(server Vm) (Vm, error)

func (ProviderAzure) Destroy

func (p ProviderAzure) Destroy(server Vm) error

func (ProviderAzure) GetByName added in v0.1.6

func (p ProviderAzure) GetByName(serverName string) (Vm, error)

func (ProviderAzure) List

func (p ProviderAzure) List() (VmList, error)

func (ProviderAzure) SSHInto

func (p ProviderAzure) SSHInto(serverName string, port int)

type ProviderGcp added in v0.1.11

type ProviderGcp struct {
	Client      *compute.InstancesClient
	GroupClient *compute.InstanceGroupsClient
}

func (ProviderGcp) CreateSSHKey added in v0.1.11

func (p ProviderGcp) CreateSSHKey(publicKeyFile string) (keyID string, err error)

func (ProviderGcp) Deploy added in v0.1.11

func (p ProviderGcp) Deploy(server Vm) (Vm, error)

func (ProviderGcp) Destroy added in v0.1.11

func (p ProviderGcp) Destroy(server Vm) error

func (ProviderGcp) GetByName added in v0.1.11

func (p ProviderGcp) GetByName(serverName string) (Vm, error)

func (ProviderGcp) List added in v0.1.11

func (p ProviderGcp) List() (VmList, error)

func (ProviderGcp) SSHInto added in v0.1.11

func (p ProviderGcp) SSHInto(serverName string, port int)

type ProviderHetzner

type ProviderHetzner struct {
	Client *hcloud.Client
}

func (ProviderHetzner) CreateSSHKey

func (p ProviderHetzner) CreateSSHKey(publicKeyFile string) (keyID string, err error)

func (ProviderHetzner) Deploy

func (p ProviderHetzner) Deploy(server Vm) (Vm, error)

func (ProviderHetzner) Destroy

func (p ProviderHetzner) Destroy(server Vm) error

func (ProviderHetzner) GetByName added in v0.1.6

func (p ProviderHetzner) GetByName(serverName string) (Vm, error)

func (ProviderHetzner) List

func (p ProviderHetzner) List() (VmList, error)

func (ProviderHetzner) SSHInto

func (p ProviderHetzner) SSHInto(serverName string, port int)

type QueryResponse added in v0.1.3

type QueryResponse struct {
	TotalRecords *int64
	Data         map[string]interface {
	}
}

type Vm

type Vm struct {
	// ID is the ID of the instance
	ID string
	// Name is the name of the instance
	Name string
	// IP is the public IP of the instance
	IP string
	//LocalIP is the local IP of the instance
	PrivateIP string
	// Type is the type of the instance
	Type string
	// Status is the status of the instance
	Status string
	// Location is the location of the instance
	Location string
	// SSHKeyID is the ID of the SSH key
	SSHKeyID string
	// SSHPort is the port to connect to the instance
	SSHPort int
	// CloudInit is the cloud-init file
	CloudInitFile string
	// CreatedAt is the creation date of the instance
	CreatedAt time.Time
	// Provider is the cloud provider
	Provider string
	// Cost is the cost of the vm
	Cost CostStruct
}

func (Vm) String

func (v Vm) String() string

type VmList

type VmList struct {
	List []Vm
}

Jump to

Keyboard shortcuts

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