Documentation
¶
Index ¶
- Constants
- type ArtifactGetter
- type DeploymentsModel
- func (d *DeploymentsModel) AbortDeployment(ctx context.Context, deploymentID string) error
- func (d *DeploymentsModel) CreateDeployment(ctx context.Context, constructor *deployments.DeploymentConstructor) (string, error)
- func (d *DeploymentsModel) DecommissionDevice(ctx context.Context, deviceId string) error
- func (d *DeploymentsModel) GetDeployment(ctx context.Context, deploymentID string) (*deployments.Deployment, error)
- func (d *DeploymentsModel) GetDeploymentForDeviceWithCurrent(ctx context.Context, deviceID string, ...) (*deployments.DeploymentInstructions, error)
- func (d *DeploymentsModel) GetDeploymentStats(ctx context.Context, deploymentID string) (deployments.Stats, error)
- func (d *DeploymentsModel) GetDeviceDeploymentLog(ctx context.Context, deviceID, deploymentID string) (*deployments.DeploymentLog, error)
- func (d *DeploymentsModel) GetDeviceStatusesForDeployment(ctx context.Context, deploymentID string) ([]deployments.DeviceDeployment, error)
- func (d *DeploymentsModel) HasDeploymentForDevice(ctx context.Context, deploymentID string, deviceID string) (bool, error)
- func (d *DeploymentsModel) ImageUsedInActiveDeployment(ctx context.Context, imageID string) (bool, error)
- func (d *DeploymentsModel) ImageUsedInDeployment(ctx context.Context, imageID string) (bool, error)
- func (d *DeploymentsModel) IsDeploymentFinished(ctx context.Context, deploymentID string) (bool, error)
- func (d *DeploymentsModel) LookupDeployment(ctx context.Context, query deployments.Query) ([]*deployments.Deployment, error)
- func (d *DeploymentsModel) SaveDeviceDeploymentLog(ctx context.Context, deviceID string, deploymentID string, ...) error
- func (d *DeploymentsModel) UpdateDeviceDeploymentStatus(ctx context.Context, deploymentID string, deviceID string, ...) error
- type DeploymentsModelConfig
- type DeploymentsStorage
- type DeviceDeploymentLogsStorage
- type DeviceDeploymentStorage
- type GetRequester
Constants ¶
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 (*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 ¶
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