provider

package
v0.0.0-...-e2245c7 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultProjectDescription = "This project was created automatically by garm to be used for github ephemeral action runners."
	DefaultProjectName        = "garm-project"
)

Variables

View Source
var (
	DefaultToolFetch      ToolFetchFunc      = util.GetTools
	DefaultGetCloudconfig GetCloudConfigFunc = cloudconfig.GetCloudConfig
)

Functions

func NewIncusProvider

func NewIncusProvider(configFile, controllerID string) (execution.ExternalProvider, error)

Types

type GetCloudConfigFunc

type GetCloudConfigFunc func(bootstrapParams commonParams.BootstrapInstance, tools commonParams.RunnerApplicationDownload, runnerName string) (string, error)

type Incus

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

func (*Incus) CreateInstance

func (l *Incus) CreateInstance(ctx context.Context, bootstrapParams commonParams.BootstrapInstance) (commonParams.ProviderInstance, error)

CreateInstance creates a new compute instance in the provider.

func (*Incus) DeleteInstance

func (l *Incus) DeleteInstance(ctx context.Context, instance string) error

Delete instance will delete the instance in a provider.

func (*Incus) GetInstance

func (l *Incus) GetInstance(ctx context.Context, instanceName string) (commonParams.ProviderInstance, error)

GetInstance will return details about one instance.

func (*Incus) ListInstances

func (l *Incus) ListInstances(ctx context.Context, poolID string) ([]commonParams.ProviderInstance, error)

ListInstances will list all instances for a provider.

func (*Incus) RemoveAllInstances

func (l *Incus) RemoveAllInstances(ctx context.Context) error

RemoveAllInstances will remove all instances created by this provider.

func (*Incus) Start

func (l *Incus) Start(ctx context.Context, instance string) error

Start boots up an instance.

func (*Incus) Stop

func (l *Incus) Stop(ctx context.Context, instance string, force bool) error

Stop shuts down the instance.

type InstanceServerInterface

type InstanceServerInterface interface {
	GetProject(string) (*api.Project, string, error)
	UseProject(string) incus.InstanceServer
	GetProfileNames() ([]string, error)
	CreateInstance(api.InstancesPost) (incus.Operation, error)
	UpdateInstanceState(string, api.InstanceStatePut, string) (incus.Operation, error)
	GetInstanceFull(string) (*api.InstanceFull, string, error)
	DeleteInstance(string) (incus.Operation, error)
	GetInstancesFull(api.InstanceType) ([]api.InstanceFull, error)
	GetImageAliasArchitectures(string, string) (map[string]*api.ImageAliasesEntry, error)
	GetImage(string) (*api.Image, string, error)
}

type MockIncusServer

type MockIncusServer struct {
	mock.Mock
}

func (*MockIncusServer) CreateInstance

func (m *MockIncusServer) CreateInstance(instance api.InstancesPost) (op incus.Operation, err error)

func (*MockIncusServer) DeleteInstance

func (m *MockIncusServer) DeleteInstance(name string) (op incus.Operation, err error)

func (*MockIncusServer) GetImage

func (m *MockIncusServer) GetImage(name string) (image *api.Image, ETag string, err error)

func (*MockIncusServer) GetImageAliasArchitectures

func (m *MockIncusServer) GetImageAliasArchitectures(imageType string, name string) (entries map[string]*api.ImageAliasesEntry, err error)

func (*MockIncusServer) GetInstanceFull

func (m *MockIncusServer) GetInstanceFull(name string) (instance *api.InstanceFull, ETag string, err error)

func (*MockIncusServer) GetInstancesFull

func (m *MockIncusServer) GetInstancesFull(instanceType api.InstanceType) (instances []api.InstanceFull, err error)

func (*MockIncusServer) GetProfileNames

func (m *MockIncusServer) GetProfileNames() (profiles []string, err error)

func (*MockIncusServer) GetProject

func (m *MockIncusServer) GetProject(name string) (project *api.Project, ETag string, err error)

func (*MockIncusServer) UpdateInstanceState

func (m *MockIncusServer) UpdateInstanceState(name string, state api.InstanceStatePut, ETag string) (op incus.Operation, err error)

func (*MockIncusServer) UseProject

func (m *MockIncusServer) UseProject(name string) (client incus.InstanceServer)

type MockOperation

type MockOperation struct {
	mock.Mock
}

func (*MockOperation) AddHandler

func (m *MockOperation) AddHandler(handler func(api.Operation)) (target *incus.EventTarget, err error)

func (*MockOperation) Cancel

func (m *MockOperation) Cancel() error

func (*MockOperation) Get

func (m *MockOperation) Get() api.Operation

func (*MockOperation) GetWebsocket

func (m *MockOperation) GetWebsocket(secret string) (conn *websocket.Conn, err error)

func (*MockOperation) Refresh

func (m *MockOperation) Refresh() error

func (*MockOperation) RemoveHandler

func (m *MockOperation) RemoveHandler(target *incus.EventTarget) error

func (*MockOperation) Wait

func (o *MockOperation) Wait() error

func (*MockOperation) WaitContext

func (m *MockOperation) WaitContext(ctx context.Context) error

Jump to

Keyboard shortcuts

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