unitstatushandler

package
v0.0.0-...-2b5bdcb Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Downloader

type Downloader interface {
	Download(ctx context.Context, packageInfo downloader.PackageInfo) (result downloader.Result, err error)
	Release(filePath string) error
	ReleaseByType(targetType string) error
}

Downloader downloads packages.

type FirmwareUpdater

type FirmwareUpdater interface {
	GetStatus() (componentsInfo []cloudprotocol.ComponentStatus, err error)
	UpdateComponents(components []cloudprotocol.ComponentInfo, chains []cloudprotocol.CertificateChain,
		certs []cloudprotocol.Certificate) (status []cloudprotocol.ComponentStatus, err error)
}

FirmwareUpdater updates system components.

type Instance

type Instance struct {
	sync.Mutex
	// contains filtered or unexported fields
}

Instance instance of unit status handler.

func New

func New(
	cfg *config.Config,
	unitConfigUpdater UnitConfigUpdater,
	firmwareUpdater FirmwareUpdater,
	softwareUpdater SoftwareUpdater,
	instanceRunner InstanceRunner,
	downloader Downloader,
	storage Storage,
	statusSender StatusSender,
) (instance *Instance, err error)

New creates new unit status handler instance.

func (*Instance) Close

func (instance *Instance) Close() (err error)

Close closes unit status handler.

func (*Instance) CloudConnected

func (instance *Instance) CloudConnected()

CloudConnected indicates unit connected to cloud.

func (*Instance) CloudDisconnected

func (instance *Instance) CloudDisconnected()

CloudDisconnected indicates unit disconnected from cloud.

func (*Instance) GetFOTAStatus

func (instance *Instance) GetFOTAStatus() (status cmserver.UpdateFOTAStatus)

GetFOTAStatus returns FOTA current status.

func (*Instance) GetFOTAStatusChannel

func (instance *Instance) GetFOTAStatusChannel() (channel <-chan cmserver.UpdateFOTAStatus)

GetFOTAStatusChannel returns FOTA status channels.

func (*Instance) GetSOTAStatus

func (instance *Instance) GetSOTAStatus() (status cmserver.UpdateSOTAStatus)

GetSOTAStatus returns SOTA current status.

func (*Instance) GetSOTAStatusChannel

func (instance *Instance) GetSOTAStatusChannel() (channel <-chan cmserver.UpdateSOTAStatus)

GetSOTAStatusChannel returns SOTA status channel.

func (*Instance) ProcessDesiredStatus

func (instance *Instance) ProcessDesiredStatus(desiredStatus cloudprotocol.DesiredStatus)

ProcessDesiredStatus processes desired status.

func (*Instance) ProcessRunStatus

func (instance *Instance) ProcessRunStatus(status RunInstancesStatus) error

ProcessRunStatus process current run instances status.

func (*Instance) ProcessUpdateInstanceStatus

func (instance *Instance) ProcessUpdateInstanceStatus(status []cloudprotocol.InstanceStatus)

ProcessUpdateInstanceStatus process update instances status.

func (*Instance) SendUnitStatus

func (instance *Instance) SendUnitStatus() error

SendUnitStatus send unit status.

func (*Instance) StartFOTAUpdate

func (instance *Instance) StartFOTAUpdate() (err error)

StartFOTAUpdate triggers FOTA update.

func (*Instance) StartSOTAUpdate

func (instance *Instance) StartSOTAUpdate() (err error)

StartSOTAUpdate triggers SOTA update.

type InstanceRunner

type InstanceRunner interface {
	RunInstances(instances []cloudprotocol.InstanceInfo, newServices []string) error
	RestartInstances() error
	GetNodesConfiguration() []cloudprotocol.NodeInfo
}

InstanceRunner instances runner.

type LayerStatus

type LayerStatus struct {
	cloudprotocol.LayerStatus
	Cached bool
}

LayerStatus represents layer status.

type RunInstancesStatus

type RunInstancesStatus struct {
	UnitSubjects  []string
	Instances     []cloudprotocol.InstanceStatus
	ErrorServices []cloudprotocol.ServiceStatus
}

RunInstancesStatus run instances status.

type ServiceStatus

type ServiceStatus struct {
	cloudprotocol.ServiceStatus
	Cached bool
}

ServiceStatus represents service status.

type SoftwareUpdater

type SoftwareUpdater interface {
	GetServicesStatus() ([]ServiceStatus, error)
	GetLayersStatus() ([]LayerStatus, error)
	InstallService(serviceInfo cloudprotocol.ServiceInfo,
		chains []cloudprotocol.CertificateChain, certs []cloudprotocol.Certificate) error
	RestoreService(serviceID string) error
	RemoveService(serviceID string) error
	InstallLayer(layerInfo cloudprotocol.LayerInfo,
		chains []cloudprotocol.CertificateChain, certs []cloudprotocol.Certificate) error
	RemoveLayer(digest string) error
	RestoreLayer(digest string) error
}

SoftwareUpdater updates services, layers.

type StatusSender

type StatusSender interface {
	SendUnitStatus(unitStatus cloudprotocol.UnitStatus) (err error)
	SubscribeForConnectionEvents(consumer amqphandler.ConnectionEventsConsumer) error
}

StatusSender sends unit status to cloud.

type Storage

type Storage interface {
	SetFirmwareUpdateState(state json.RawMessage) (err error)
	GetFirmwareUpdateState() (state json.RawMessage, err error)
	SetSoftwareUpdateState(state json.RawMessage) (err error)
	GetSoftwareUpdateState() (state json.RawMessage, err error)
}

Storage used to store unit status handler states.

type UnitConfigUpdater

type UnitConfigUpdater interface {
	GetStatus() (unitConfigInfo cloudprotocol.UnitConfigStatus, err error)
	GetUnitConfigVersion(configJSON json.RawMessage) (vendorVersion string, err error)
	CheckUnitConfig(configJSON json.RawMessage) (vendorVersion string, err error)
	UpdateUnitConfig(configJSON json.RawMessage) (err error)
}

UnitConfigUpdater updates unit configuration.

Jump to

Keyboard shortcuts

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