instancemutater

package
v0.0.0-...-e653fdf Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: AGPL-3.0 Imports: 16 Imported by: 2

Documentation

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 Application

type Application interface {
	CharmURL() *string
}

Application represents point of use methods from the state Application object.

type Charm

type Charm interface {
	LXDProfile() lxdprofile.Profile
	Revision() int
}

Charm represents point of use methods from the state Charm object.

type InstanceMutaterAPI

type InstanceMutaterAPI struct {
	*common.LifeGetter
	// contains filtered or unexported fields
}

func NewInstanceMutaterAPI

func NewInstanceMutaterAPI(st InstanceMutaterState,
	watcher InstanceMutatorWatcher,
	resources facade.Resources,
	authorizer facade.Authorizer,
) (*InstanceMutaterAPI, error)

NewInstanceMutaterAPI creates a new API server endpoint for managing charm profiles on juju lxd machines and containers.

func (*InstanceMutaterAPI) CharmProfilingInfo

func (api *InstanceMutaterAPI) CharmProfilingInfo(arg params.Entity) (params.CharmProfilingInfoResult, error)

CharmProfilingInfo returns info to update lxd profiles on the machine. If the machine is not provisioned, no profile change info will be returned, nor will an error.

func (*InstanceMutaterAPI) ContainerType

func (api *InstanceMutaterAPI) ContainerType(arg params.Entity) (params.ContainerTypeResult, error)

ContainerType returns the container type of a machine.

func (*InstanceMutaterAPI) SetCharmProfiles

func (api *InstanceMutaterAPI) SetCharmProfiles(args params.SetProfileArgs) (params.ErrorResults, error)

SetCharmProfiles records the given slice of charm profile names.

func (*InstanceMutaterAPI) SetModificationStatus

func (api *InstanceMutaterAPI) SetModificationStatus(args params.SetStatus) (params.ErrorResults, error)

SetModificationStatus updates the instance whilst changes are occurring. This is different from SetStatus and SetInstanceStatus, by the fact this holds information about the ongoing changes that are happening to instances. Consider LXD Profile updates that can modify a instance, but may not cause the instance to be placed into a error state. This modification status serves the purpose of highlighting that to the operator. Only machine tags are accepted.

func (*InstanceMutaterAPI) WatchContainers

func (api *InstanceMutaterAPI) WatchContainers(arg params.Entity) (params.StringsWatchResult, error)

WatchContainers starts a watcher to track Containers on a given machine.

func (*InstanceMutaterAPI) WatchLXDProfileVerificationNeeded

func (api *InstanceMutaterAPI) WatchLXDProfileVerificationNeeded(args params.Entities) (params.NotifyWatchResults, error)

WatchLXDProfileVerificationNeeded starts a watcher to track Applications with LXD Profiles.

func (*InstanceMutaterAPI) WatchMachines

func (api *InstanceMutaterAPI) WatchMachines() (params.StringsWatchResult, error)

WatchMachines starts a watcher to track machines. WatchMachines does not consume the initial event of the watch response, as that returns the initial set of machines that are currently available.

func (*InstanceMutaterAPI) WatchModelMachines

func (api *InstanceMutaterAPI) WatchModelMachines() (params.StringsWatchResult, error)

WatchModelMachines starts a watcher to track machines, but not containers. WatchModelMachines does not consume the initial event of the watch response, as that returns the initial set of machines that are currently available.

type InstanceMutaterState

type InstanceMutaterState interface {
	state.EntityFinder

	ModelName() (string, error)
	Application(appName string) (Application, error)
	Charm(curl string) (Charm, error)
	Machine(id string) (Machine, error)
	Unit(unitName string) (Unit, error)
	ControllerTimestamp() (*time.Time, error)

	WatchMachines() state.StringsWatcher
	WatchModelMachines() state.StringsWatcher
	WatchApplicationCharms() state.StringsWatcher
	WatchCharms() state.StringsWatcher
	WatchUnits() state.StringsWatcher
}

InstanceMutaterState represents point of use methods from the state object.

type InstanceMutaterV2

type InstanceMutaterV2 interface {
	Life(args params.Entities) (params.LifeResults, error)

	CharmProfilingInfo(arg params.Entity) (params.CharmProfilingInfoResult, error)
	ContainerType(arg params.Entity) (params.ContainerTypeResult, error)
	SetCharmProfiles(args params.SetProfileArgs) (params.ErrorResults, error)
	SetModificationStatus(args params.SetStatus) (params.ErrorResults, error)
	WatchMachines() (params.StringsWatchResult, error)
	WatchLXDProfileVerificationNeeded(args params.Entities) (params.NotifyWatchResults, error)
}

InstanceMutaterV2 defines the methods on the instance mutater API facade, version 2.

type InstanceMutatorWatcher

type InstanceMutatorWatcher interface {
	WatchLXDProfileVerificationForMachine(Machine) (state.NotifyWatcher, error)
}

InstanceMutatorWatcher instances return a lxd profile watcher for a machine.

type Machine

type Machine interface {
	Id() string
	InstanceId() (instance.Id, error)
	ContainerType() instance.ContainerType
	IsManual() (bool, error)
	CharmProfiles() ([]string, error)
	SetCharmProfiles([]string) error
	SetModificationStatus(status.StatusInfo) error
	Units() ([]Unit, error)
	WatchContainers(instance.ContainerType) state.StringsWatcher
	WatchInstanceData() state.NotifyWatcher
}

Machine represents point of use methods from the state Machine object.

type MachineLXDProfileWatcherConfig

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

type Unit

type Unit interface {
	Name() string
	Life() state.Life
	ApplicationName() string
	Application() (Application, error)
	PrincipalName() (string, bool)
	AssignedMachineId() (string, error)
	CharmURL() *string
}

Unit represents a point of use methods from the state Unit object.

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