model

package
v0.0.0-...-0557d4e Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2018 License: Apache-2.0, Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultUpdateDownloadLinkExpire = 1 * time.Hour
)

Defaults

Variables

This section is empty.

Functions

This section is empty.

Types

type ArtifactGetter

type ArtifactGetter interface {
	ImagesByName(ctx context.Context,
		artifactName string) ([]*images.SoftwareImage, error)
	ImageByIdsAndDeviceType(ctx context.Context,
		ids []string, deviceType string) (*images.SoftwareImage, error)
	ImageByNameAndDeviceType(ctx context.Context,
		name, deviceType string) (*images.SoftwareImage, error)
}

type DeploymentsModel

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

func NewDeploymentModel

func NewDeploymentModel(config DeploymentsModelConfig) *DeploymentsModel

func (*DeploymentsModel) AbortDeployment

func (d *DeploymentsModel) AbortDeployment(ctx context.Context, deploymentID string) error

AbortDeployment aborts deployment for devices and updates deployment stats

func (*DeploymentsModel) CreateDeployment

func (d *DeploymentsModel) CreateDeployment(ctx context.Context,
	constructor *deployments.DeploymentConstructor) (string, error)

CreateDeployment precomputes new deplyomet and schedules it for devices. TODO: check if specified devices are bootstrapped (when have a way to do this)

func (*DeploymentsModel) DecommissionDevice

func (d *DeploymentsModel) DecommissionDevice(ctx context.Context, deviceId string) error

func (*DeploymentsModel) GetDeployment

func (d *DeploymentsModel) GetDeployment(ctx context.Context,
	deploymentID string) (*deployments.Deployment, error)

GetDeployment fetches deployment by ID

func (*DeploymentsModel) GetDeploymentForDeviceWithCurrent

func (d *DeploymentsModel) GetDeploymentForDeviceWithCurrent(ctx context.Context, deviceID string,
	installed deployments.InstalledDeviceDeployment) (*deployments.DeploymentInstructions, error)

GetDeploymentForDeviceWithCurrent returns deployment for the device

func (*DeploymentsModel) GetDeploymentStats

func (d *DeploymentsModel) GetDeploymentStats(ctx context.Context,
	deploymentID string) (deployments.Stats, error)

func (*DeploymentsModel) GetDeviceDeploymentLog

func (d *DeploymentsModel) GetDeviceDeploymentLog(ctx context.Context,
	deviceID, deploymentID string) (*deployments.DeploymentLog, error)

func (*DeploymentsModel) GetDeviceStatusesForDeployment

func (d *DeploymentsModel) GetDeviceStatusesForDeployment(ctx context.Context,
	deploymentID string) ([]deployments.DeviceDeployment, error)

GetDeviceStatusesForDeployment retrieve device deployment statuses for a given deployment.

func (*DeploymentsModel) HasDeploymentForDevice

func (d *DeploymentsModel) HasDeploymentForDevice(ctx context.Context,
	deploymentID string, deviceID string) (bool, error)

func (*DeploymentsModel) ImageUsedInActiveDeployment

func (d *DeploymentsModel) ImageUsedInActiveDeployment(ctx context.Context,
	imageID string) (bool, error)

ImageUsedInActiveDeployment checks if specified image is in use by deployments Image is considered to be in use if it's participating in at lest one non success/error deployment.

func (*DeploymentsModel) ImageUsedInDeployment

func (d *DeploymentsModel) ImageUsedInDeployment(ctx context.Context, imageID string) (bool, error)

ImageUsedInDeployment checks if specified image is in use by deployments Image is considered to be in use if it's participating in any deployment.

func (*DeploymentsModel) IsDeploymentFinished

func (d *DeploymentsModel) IsDeploymentFinished(ctx context.Context, deploymentID string) (bool, error)

IsDeploymentFinished checks if there is unfinished deployment with given ID

func (*DeploymentsModel) LookupDeployment

func (d *DeploymentsModel) LookupDeployment(ctx context.Context,
	query deployments.Query) ([]*deployments.Deployment, error)

func (*DeploymentsModel) SaveDeviceDeploymentLog

func (d *DeploymentsModel) SaveDeviceDeploymentLog(ctx context.Context, deviceID string,
	deploymentID string, logs []deployments.LogMessage) error

SaveDeviceDeploymentLog will save the deployment log for device of ID `deviceID`. Returns nil if log was saved successfully.

func (*DeploymentsModel) UpdateDeviceDeploymentStatus

func (d *DeploymentsModel) UpdateDeviceDeploymentStatus(ctx context.Context, deploymentID string,
	deviceID string, ddStatus deployments.DeviceDeploymentStatus) error

UpdateDeviceDeploymentStatus will update the deployment status for device of ID `deviceID`. Returns nil if update was successful.

type DeploymentsModelConfig

type DeploymentsModelConfig struct {
	DeploymentsStorage          DeploymentsStorage
	DeviceDeploymentsStorage    DeviceDeploymentStorage
	DeviceDeploymentLogsStorage DeviceDeploymentLogsStorage
	ImageLinker                 GetRequester
	ArtifactGetter              ArtifactGetter
	ImageContentType            string
}

type DeploymentsStorage

type DeploymentsStorage interface {
	Insert(ctx context.Context, deployment *deployments.Deployment) error
	Delete(ctx context.Context, id string) error
	FindByID(ctx context.Context, id string) (*deployments.Deployment, error)
	FindUnfinishedByID(ctx context.Context,
		id string) (*deployments.Deployment, error)
	UpdateStats(ctx context.Context, id string, state_from, state_to string) error
	UpdateStatsAndFinishDeployment(ctx context.Context,
		id string, stats deployments.Stats) error
	Find(ctx context.Context,
		query deployments.Query) ([]*deployments.Deployment, error)
	Finish(ctx context.Context, id string, when time.Time) error
	ExistUnfinishedByArtifactId(ctx context.Context, id string) (bool, error)
	ExistByArtifactId(ctx context.Context, id string) (bool, error)
	DeviceCountByDeployment(ctx context.Context, id string) (int, error)
}

Storage for Deployment type

type DeviceDeploymentLogsStorage

type DeviceDeploymentLogsStorage interface {
	SaveDeviceDeploymentLog(ctx context.Context, log deployments.DeploymentLog) error
	GetDeviceDeploymentLog(ctx context.Context,
		deviceID, deploymentID string) (*deployments.DeploymentLog, error)
}

Device deployment log storage

type DeviceDeploymentStorage

type DeviceDeploymentStorage interface {
	InsertMany(ctx context.Context,
		deployment ...*deployments.DeviceDeployment) error
	ExistAssignedImageWithIDAndStatuses(ctx context.Context,
		id string, statuses ...string) (bool, error)
	FindOldestDeploymentForDeviceIDWithStatuses(ctx context.Context,
		deviceID string, statuses ...string) (*deployments.DeviceDeployment, error)
	FindAllDeploymentsForDeviceIDWithStatuses(ctx context.Context,
		deviceID string, statuses ...string) ([]deployments.DeviceDeployment, error)

	UpdateDeviceDeploymentStatus(ctx context.Context, deviceID string,
		deploymentID string, status deployments.DeviceDeploymentStatus) (string, error)

	UpdateDeviceDeploymentLogAvailability(ctx context.Context,
		deviceID string, deploymentID string, log bool) error
	AssignArtifact(ctx context.Context, deviceID string,
		deploymentID string, artifact *images.SoftwareImage) error
	AggregateDeviceDeploymentByStatus(ctx context.Context,
		id string) (deployments.Stats, error)
	GetDeviceStatusesForDeployment(ctx context.Context,
		deploymentID string) ([]deployments.DeviceDeployment, error)
	HasDeploymentForDevice(ctx context.Context,
		deploymentID string, deviceID string) (bool, error)
	GetDeviceDeploymentStatus(ctx context.Context,
		deploymentID string, deviceID string) (string, error)
	AbortDeviceDeployments(ctx context.Context, deploymentID string) error
	DecommissionDeviceDeployments(ctx context.Context, deviceId string) error
}

Device deployment storage

type GetRequester

type GetRequester interface {
	GetRequest(ctx context.Context, objectId string,
		duration time.Duration, responseContentType string) (*images.Link, error)
}

Responsible for providing GET method requests to requested artifact

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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