Documentation
¶
Index ¶
- Variables
- func NewBatchService(repo BatchRepo, instance InstanceService) batchService
- func NewInstanceService(repo InstanceRepo, opts ...InstanceServiceOption) instanceService
- func NewNetworkService(repo NetworkRepo) networkService
- func NewQueueService(repo QueueRepo, batch BatchService, instance InstanceService, ...) queueService
- func NewSourceService(repo SourceRepo) sourceService
- func NewTargetService(repo TargetRepo) targetService
- func NewValidationErrf(format string, a ...any) error
- func NewWarningService(repo WarningRepo) warningService
- type Artifact
- type ArtifactRepo
- type ArtifactService
- type Artifacts
- type Batch
- type BatchConstraint
- type BatchRepo
- type BatchService
- type Batches
- type ErrValidation
- type ImportStage
- type Instance
- func (i Instance) DisabledReason(overrides api.InstanceRestrictionOverride) error
- func (i Instance) GetName() string
- func (i *Instance) GetOSType() api.OSType
- func (i Instance) MatchesCriteria(expression string) (bool, error)
- func (i Instance) ToAPI() api.Instance
- func (i Instance) ToFilterable() InstanceFilterable
- func (i Instance) Validate() error
- type InstanceFilterable
- type InstanceRepo
- type InstanceService
- type InstanceServiceOption
- type Instances
- type MigrationWindow
- func (w MigrationWindow) Begun() bool
- func (w MigrationWindow) Ended() bool
- func (w MigrationWindow) FitsDuration(duration time.Duration) bool
- func (w MigrationWindow) IsEmpty() bool
- func (w MigrationWindow) Key() string
- func (w MigrationWindow) Locked() bool
- func (w MigrationWindow) Validate() error
- type MigrationWindows
- type Network
- type NetworkRepo
- type NetworkService
- type Networks
- type QueueEntries
- type QueueEntry
- func (q QueueEntry) GetWindowID() *int64
- func (q QueueEntry) IsCommitted() bool
- func (q QueueEntry) IsMigrating() bool
- func (q QueueEntry) StatusBeforeMigrationWindow() bool
- func (q QueueEntry) ToAPI(instanceName string, lastWorkerUpdate time.Time, ...) api.QueueEntry
- func (q QueueEntry) Validate() error
- type QueueRepo
- type QueueService
- type Source
- func (s Source) GetExternalConnectivityStatus() api.ExternalConnectivityStatus
- func (s Source) GetServerCertificate() *x509.Certificate
- func (s Source) GetTrustedServerCertificateFingerprint() string
- func (s *Source) SetExternalConnectivityStatus(status api.ExternalConnectivityStatus)
- func (s *Source) SetServerCertificate(cert *x509.Certificate)
- func (s Source) ToAPI() api.Source
- func (s Source) Validate() error
- type SourceEndpoint
- type SourceRepo
- type SourceService
- type Sources
- type Target
- func (t Target) GetEndpoint() string
- func (t Target) GetExternalConnectivityStatus() api.ExternalConnectivityStatus
- func (t Target) GetServerCertificate() *x509.Certificate
- func (t Target) GetTrustedServerCertificateFingerprint() string
- func (t *Target) SetExternalConnectivityStatus(status api.ExternalConnectivityStatus)
- func (t *Target) SetOIDCTokens(tokens *oidc.Tokens[*oidc.IDTokenClaims])
- func (t *Target) SetServerCertificate(cert *x509.Certificate)
- func (t Target) ToAPI() api.Target
- func (t Target) Validate() error
- type TargetEndpoint
- type TargetRepo
- type TargetService
- type Targets
- type Warning
- type WarningRepo
- type WarningService
- type Warnings
- type WorkerCommand
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func NewBatchService ¶
func NewBatchService(repo BatchRepo, instance InstanceService) batchService
func NewInstanceService ¶
func NewInstanceService(repo InstanceRepo, opts ...InstanceServiceOption) instanceService
func NewNetworkService ¶
func NewNetworkService(repo NetworkRepo) networkService
func NewQueueService ¶
func NewQueueService(repo QueueRepo, batch BatchService, instance InstanceService, source SourceService, target TargetService) queueService
func NewSourceService ¶
func NewSourceService(repo SourceRepo) sourceService
func NewTargetService ¶
func NewTargetService(repo TargetRepo) targetService
func NewValidationErrf ¶
func NewWarningService ¶
func NewWarningService(repo WarningRepo) warningService
Types ¶
type Artifact ¶
type Artifact struct {
ID int64
UUID uuid.UUID `db:"primary=yes"`
Type api.ArtifactType
Properties api.ArtifactProperties `db:"marshal=json"`
Files []string `db:"ignore"`
}
type ArtifactRepo ¶
type ArtifactRepo interface {
Create(ctx context.Context, artifact Artifact) (int64, error)
GetAll(ctx context.Context) (Artifacts, error)
GetAllByType(ctx context.Context, artType api.ArtifactType) (Artifacts, error)
GetByUUID(ctx context.Context, id uuid.UUID) (*Artifact, error)
Update(ctx context.Context, id uuid.UUID, artifact *Artifact) error
DeleteByUUID(ctx context.Context, id uuid.UUID) error
}
type ArtifactService ¶
type ArtifactService interface {
Create(ctx context.Context, artifact Artifact) (Artifact, error)
GetAll(ctx context.Context) (Artifacts, error)
GetAllByType(ctx context.Context, artType api.ArtifactType) (Artifacts, error)
GetByUUID(ctx context.Context, id uuid.UUID) (*Artifact, error)
Update(ctx context.Context, id uuid.UUID, artifact *Artifact) error
DeleteByUUID(ctx context.Context, id uuid.UUID) error
WriteFile(id uuid.UUID, fileName string, reader io.ReadCloser) error
DeleteFile(id uuid.UUID, fileName string) error
GetFiles(id uuid.UUID) ([]string, error)
FileDirectory(id uuid.UUID) string
HasRequiredArtifactsForInstance(artifacts Artifacts, inst Instance) error
}
func NewArtifactService ¶
func NewArtifactService(repo ArtifactRepo, sysOS *sys.OS) ArtifactService
type Batch ¶
type Batch struct {
ID int64
Name string `db:"primary=yes"`
Status api.BatchStatusType
StatusMessage string
IncludeExpression string
StartDate time.Time
DefaultTarget string
DefaultTargetProject string
DefaultStoragePool string
RerunScriptlets bool
PlacementScriptlet string
PostMigrationRetries int
Constraints []BatchConstraint `db:"marshal=json"`
RestrictionOverrides api.InstanceRestrictionOverride `db:"marshal=json"`
}
func (*Batch) GetIncusPlacement ¶
func (b *Batch) GetIncusPlacement(instance Instance, usedNetworks Networks, placement api.Placement) (*api.Placement, error)
GetIncusPlacement returns a TargetPlacement for the given instance and its networks. It defaults to the batch-level definitions unless the given TargetPlacement has overridden them.
func (Batch) HasValidWindow ¶
func (b Batch) HasValidWindow(windows []MigrationWindow) error
type BatchConstraint ¶
type BatchConstraint struct {
// Name of the constraint.
Name string `json:"name" yaml:"name"`
// Description of the constraint.
Description string `json:"description" yaml:"description"`
// Expression used to select instances for the constraint.
IncludeExpression string `json:"include_expression" yaml:"include_expression"`
// Maximum amount of matched instances that can concurrently migrate, before moving to the next migration window.
MaxConcurrentInstances int `json:"max_concurrent_instances" yaml:"max_concurrent_instances"`
// Minimum amount of time required for an instance to boot after initial disk import. Migration window duration must be at least this much.
MinInstanceBootTime time.Duration `json:"min_instance_boot_time" yaml:"min_instance_boot_time"`
}
func (BatchConstraint) Validate ¶
func (b BatchConstraint) Validate() error
type BatchRepo ¶
type BatchRepo interface {
Create(ctx context.Context, batch Batch) (int64, error)
GetAll(ctx context.Context) (Batches, error)
GetAllByState(ctx context.Context, status api.BatchStatusType) (Batches, error)
GetAllNames(ctx context.Context) ([]string, error)
GetAllNamesByState(ctx context.Context, status api.BatchStatusType) ([]string, error)
GetByName(ctx context.Context, name string) (*Batch, error)
Update(ctx context.Context, name string, batch Batch) error
Rename(ctx context.Context, oldName string, newName string) error
DeleteByName(ctx context.Context, name string) error
AssignBatch(ctx context.Context, batchName string, instanceUUID uuid.UUID) error
UnassignBatch(ctx context.Context, batchName string, instanceUUID uuid.UUID) error
GetMigrationWindowsByBatch(ctx context.Context, batch string) (MigrationWindows, error)
GetMigrationWindow(ctx context.Context, windowID int64) (*MigrationWindow, error)
AssignMigrationWindows(ctx context.Context, batch string, windows MigrationWindows) error
UnassignMigrationWindows(ctx context.Context, batch string) error
UpdateMigrationWindows(ctx context.Context, batch string, windows MigrationWindows) error
}
type BatchService ¶
type BatchService interface {
Create(ctx context.Context, batch Batch) (Batch, error)
GetAll(ctx context.Context) (Batches, error)
GetAllByState(ctx context.Context, status api.BatchStatusType) (Batches, error)
GetAllNames(ctx context.Context) ([]string, error)
GetAllNamesByState(ctx context.Context, status api.BatchStatusType) ([]string, error)
GetByName(ctx context.Context, name string) (*Batch, error)
Update(ctx context.Context, queueSvc QueueService, name string, batch *Batch) error
UpdateStatusByName(ctx context.Context, name string, status api.BatchStatusType, statusMessage string) (*Batch, error)
Rename(ctx context.Context, oldName string, newName string) error
DeleteByName(ctx context.Context, name string) error
StartBatchByName(ctx context.Context, name string) error
StopBatchByName(ctx context.Context, name string) error
ResetBatchByName(ctx context.Context, name string, queueSvc QueueService, sourceSvc SourceService, targetSvc TargetService) error
AssignMigrationWindows(ctx context.Context, batch string, windows MigrationWindows) error
ChangeMigrationWindows(ctx context.Context, queueSvc QueueService, batch string, newWindows MigrationWindows) error
GetMigrationWindows(ctx context.Context, batch string) (MigrationWindows, error)
GetMigrationWindow(ctx context.Context, windowID int64) (*MigrationWindow, error)
GetEarliestWindow(ctx context.Context, batch string) (*MigrationWindow, error)
DeterminePlacement(ctx context.Context, instance Instance, usedNetworks Networks, batch Batch, migrationWindows MigrationWindows) (*api.Placement, error)
}
type ErrValidation ¶
type ErrValidation string
func (ErrValidation) Error ¶
func (e ErrValidation) Error() string
type ImportStage ¶
type ImportStage string
const ( IMPORTSTAGE_BACKGROUND ImportStage = "background" IMPORTSTAGE_FINAL ImportStage = "final" IMPORTSTAGE_COMPLETE ImportStage = "complete" )
func (ImportStage) Validate ¶
func (m ImportStage) Validate() error
type Instance ¶
type Instance struct {
ID int64
UUID uuid.UUID `db:"primary=yes"`
Source string `db:"join=sources.name&order=yes"`
SourceType api.SourceType `db:"join=sources.source_type&omit=create,update"`
LastUpdateFromSource time.Time
Overrides api.InstanceOverride `db:"marshal=json"`
Properties api.InstanceProperties `db:"marshal=json"`
}
func (Instance) DisabledReason ¶
func (i Instance) DisabledReason(overrides api.InstanceRestrictionOverride) error
DisabledReason returns the underlying reason for why the instance is disabled.
func (Instance) GetName ¶
GetName returns the name of the instance, which may not be unique among all instances for a given source. If a unique, human-readable identifier is needed, use the Location property.
func (*Instance) GetOSType ¶
GetOSType returns the OS type, as determined from https://dp-downloads.broadcom.com/api-content/apis/API_VWSA_001/8.0U3/html/ReferenceGuides/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html
func (Instance) MatchesCriteria ¶
func (Instance) ToFilterable ¶
func (i Instance) ToFilterable() InstanceFilterable
type InstanceFilterable ¶
type InstanceFilterable struct {
api.InstanceProperties
Source string `expr:"source"`
SourceType api.SourceType `expr:"source_type"`
LastUpdateFromSource time.Time `expr:"last_update_from_source"`
}
func (InstanceFilterable) CompileIncludeExpression ¶
func (i InstanceFilterable) CompileIncludeExpression(expression string) (*vm.Program, error)
type InstanceRepo ¶
type InstanceRepo interface {
Create(ctx context.Context, instance Instance) (int64, error)
GetAll(ctx context.Context) (Instances, error)
GetAllByBatch(ctx context.Context, batch string) (Instances, error)
GetAllBySource(ctx context.Context, source string) (Instances, error)
GetAllByUUIDs(ctx context.Context, id ...uuid.UUID) (Instances, error)
GetAllUUIDs(ctx context.Context) ([]uuid.UUID, error)
GetAllUUIDsBySource(ctx context.Context, source string) ([]uuid.UUID, error)
GetAllAssigned(ctx context.Context) (Instances, error)
GetAllUnassigned(ctx context.Context) (Instances, error)
GetBatchesByUUID(ctx context.Context, instanceUUID uuid.UUID) (Batches, error)
GetByUUID(ctx context.Context, id uuid.UUID) (*Instance, error)
Update(ctx context.Context, instance Instance) error
DeleteByUUID(ctx context.Context, id uuid.UUID) error
RemoveFromQueue(ctx context.Context, id uuid.UUID) error
}
type InstanceService ¶
type InstanceService interface {
Create(ctx context.Context, instance Instance) (Instance, error)
GetAll(ctx context.Context) (Instances, error)
GetAllByBatch(ctx context.Context, batch string) (Instances, error)
GetAllBySource(ctx context.Context, source string) (Instances, error)
GetAllUUIDs(ctx context.Context) ([]uuid.UUID, error)
GetAllUUIDsBySource(ctx context.Context, source string) ([]uuid.UUID, error)
GetAllAssigned(ctx context.Context) (Instances, error)
GetAllUnassigned(ctx context.Context) (Instances, error)
GetByUUID(ctx context.Context, id uuid.UUID) (*Instance, error)
GetAllQueued(ctx context.Context, queue QueueEntries) (Instances, error)
GetBatchesByUUID(ctx context.Context, id uuid.UUID) (Batches, error)
Update(ctx context.Context, instance *Instance) error
DeleteByUUID(ctx context.Context, id uuid.UUID) error
RemoveFromQueue(ctx context.Context, id uuid.UUID) error
GetPostMigrationRetries(id uuid.UUID) int
RecordPostMigrationRetry(id uuid.UUID)
}
type InstanceServiceOption ¶
type InstanceServiceOption func(s *instanceService)
type MigrationWindow ¶
type MigrationWindow struct {
ID int64
Start time.Time `db:"primary=yes"`
End time.Time `db:"primary=yes"`
Lockout time.Time `db:"primary=yes"`
}
func (MigrationWindow) Begun ¶
func (w MigrationWindow) Begun() bool
Begun returns whether the migration window has begun (whether its start time is in the past).
func (MigrationWindow) Ended ¶
func (w MigrationWindow) Ended() bool
func (MigrationWindow) FitsDuration ¶
func (w MigrationWindow) FitsDuration(duration time.Duration) bool
func (MigrationWindow) IsEmpty ¶
func (w MigrationWindow) IsEmpty() bool
func (MigrationWindow) Key ¶
func (w MigrationWindow) Key() string
Key returns an identifying key for the MigrationWindow, based on its timings.
func (MigrationWindow) Locked ¶
func (w MigrationWindow) Locked() bool
func (MigrationWindow) Validate ¶
func (w MigrationWindow) Validate() error
type MigrationWindows ¶
type MigrationWindows []MigrationWindow
func (MigrationWindows) GetEarliest ¶
func (ws MigrationWindows) GetEarliest() (*MigrationWindow, error)
GetEarliest returns the earliest valid migration window, or an error if none are found.
func (MigrationWindows) Validate ¶
func (ws MigrationWindows) Validate() error
type Network ¶
type Network struct {
ID int64
Type api.NetworkType
Identifier string `db:"primary=yes"`
Location string
Source string `db:"primary=yes&join=sources.name"`
Properties json.RawMessage `db:"marshal=json"`
Overrides api.NetworkOverride `db:"marshal=json"`
}
type NetworkRepo ¶
type NetworkRepo interface {
Create(ctx context.Context, network Network) (int64, error)
GetAll(ctx context.Context) (Networks, error)
GetAllBySource(ctx context.Context, src string) (Networks, error)
GetByNameAndSource(ctx context.Context, name string, src string) (*Network, error)
Update(ctx context.Context, network Network) error
DeleteByNameAndSource(ctx context.Context, name string, src string) error
}
type NetworkService ¶
type NetworkService interface {
Create(ctx context.Context, network Network) (Network, error)
GetAll(ctx context.Context) (Networks, error)
GetAllBySource(ctx context.Context, src string) (Networks, error)
GetByNameAndSource(ctx context.Context, name string, src string) (*Network, error)
Update(ctx context.Context, network *Network) error
DeleteByNameAndSource(ctx context.Context, name string, src string) error
}
type Networks ¶
type Networks []Network
func FilterUsedNetworks ¶
FilterUsedNetworks returns the subset of supplied networks that are in use by the supplied instances.
type QueueEntries ¶
type QueueEntries []QueueEntry
type QueueEntry ¶
type QueueEntry struct {
ID int64
InstanceUUID uuid.UUID `db:"primary=yes&join=instances.uuid"`
BatchName string `db:"join=batches.name"`
SecretToken uuid.UUID
ImportStage ImportStage
MigrationStatus api.MigrationStatusType
MigrationStatusMessage string
LastWorkerStatus api.WorkerResponseType
MigrationWindowID sql.NullInt64
Placement api.Placement `db:"marshal=json"`
}
func (QueueEntry) GetWindowID ¶
func (q QueueEntry) GetWindowID() *int64
func (QueueEntry) IsCommitted ¶
func (q QueueEntry) IsCommitted() bool
IsCommitted returns whether the queue entry is past the point of no return (the source VM has been powered off, or is about to be by some concurrent task).
func (QueueEntry) IsMigrating ¶
func (q QueueEntry) IsMigrating() bool
func (QueueEntry) StatusBeforeMigrationWindow ¶
func (q QueueEntry) StatusBeforeMigrationWindow() bool
StatusBeforeMigrationWindow returns whether the migration status of the queue entry places it before a migration window can be assigned.
func (QueueEntry) ToAPI ¶
func (q QueueEntry) ToAPI(instanceName string, lastWorkerUpdate time.Time, migrationWindow MigrationWindow) api.QueueEntry
func (QueueEntry) Validate ¶
func (q QueueEntry) Validate() error
type QueueRepo ¶
type QueueRepo interface {
Create(ctx context.Context, queue QueueEntry) (int64, error)
GetAll(ctx context.Context) (QueueEntries, error)
GetAllByState(ctx context.Context, status ...api.MigrationStatusType) (QueueEntries, error)
GetAllByBatch(ctx context.Context, batch string) (QueueEntries, error)
GetAllByBatchAndState(ctx context.Context, batch string, statuses ...api.MigrationStatusType) (QueueEntries, error)
GetAllNeedingImport(ctx context.Context, batch string, importStage ImportStage) (QueueEntries, error)
GetByInstanceUUID(ctx context.Context, id uuid.UUID) (*QueueEntry, error)
Update(ctx context.Context, entry QueueEntry) error
DeleteByUUID(ctx context.Context, id uuid.UUID) error
DeleteAllByBatch(ctx context.Context, batch string) error
}
type QueueService ¶
type QueueService interface {
CreateEntry(ctx context.Context, queue QueueEntry) (QueueEntry, error)
GetAll(ctx context.Context) (QueueEntries, error)
GetAllByState(ctx context.Context, status ...api.MigrationStatusType) (QueueEntries, error)
GetAllByBatch(ctx context.Context, batch string) (QueueEntries, error)
GetAllByBatchAndState(ctx context.Context, batch string, status ...api.MigrationStatusType) (QueueEntries, error)
GetAllNeedingImport(ctx context.Context, batch string, importStage ImportStage) (QueueEntries, error)
GetByInstanceUUID(ctx context.Context, id uuid.UUID) (*QueueEntry, error)
Update(ctx context.Context, entry *QueueEntry) error
DeleteByUUID(ctx context.Context, id uuid.UUID) error
DeleteAllByBatch(ctx context.Context, batch string) error
UpdateStatusByUUID(ctx context.Context, id uuid.UUID, status api.MigrationStatusType, statusMessage string, importStage ImportStage, windowID *int64) (*QueueEntry, error)
UpdatePlacementByUUID(ctx context.Context, id uuid.UUID, placement api.Placement) (*QueueEntry, error)
NewWorkerCommandByInstanceUUID(ctx context.Context, id uuid.UUID) (WorkerCommand, error)
ProcessWorkerUpdate(ctx context.Context, id uuid.UUID, workerResponseTypeArg api.WorkerResponseType, statusMessage string) (QueueEntry, error)
GetNextWindow(ctx context.Context, q QueueEntry) (*MigrationWindow, error)
}
type Source ¶
type Source struct {
ID int64
Name string `db:"primary=yes"`
SourceType api.SourceType
Properties json.RawMessage
EndpointFunc func(api.Source) (SourceEndpoint, error) `json:"-" db:"ignore"`
}
func (Source) GetExternalConnectivityStatus ¶
func (s Source) GetExternalConnectivityStatus() api.ExternalConnectivityStatus
func (Source) GetServerCertificate ¶
func (s Source) GetServerCertificate() *x509.Certificate
func (Source) GetTrustedServerCertificateFingerprint ¶
func (*Source) SetExternalConnectivityStatus ¶
func (s *Source) SetExternalConnectivityStatus(status api.ExternalConnectivityStatus)
func (*Source) SetServerCertificate ¶
func (s *Source) SetServerCertificate(cert *x509.Certificate)
type SourceEndpoint ¶
type SourceEndpoint interface {
Connect(ctx context.Context) error
DoBasicConnectivityCheck() (api.ExternalConnectivityStatus, *x509.Certificate)
}
type SourceRepo ¶
type SourceRepo interface {
Create(ctx context.Context, source Source) (int64, error)
GetAll(ctx context.Context, sourceTypes ...api.SourceType) (Sources, error)
GetAllNames(ctx context.Context, sourceTypes ...api.SourceType) ([]string, error)
GetByName(ctx context.Context, name string) (*Source, error)
Update(ctx context.Context, name string, source Source) error
Rename(ctx context.Context, oldName string, newName string) error
DeleteByName(ctx context.Context, name string) error
}
type SourceService ¶
type SourceService interface {
Create(ctx context.Context, source Source) (Source, error)
GetAll(ctx context.Context, sourceTypes ...api.SourceType) (Sources, error)
GetAllNames(ctx context.Context, sourceTypes ...api.SourceType) ([]string, error)
GetByName(ctx context.Context, name string) (*Source, error)
Update(ctx context.Context, name string, source *Source, instanceService InstanceService) error
DeleteByName(ctx context.Context, name string, instanceService InstanceService) error
InitImportCache(initial map[string]int) error
GetCachedImports(sourceName string) int
RecordActiveImport(sourceName string)
RemoveActiveImport(sourceName string)
}
type Target ¶
type Target struct {
ID int64
Name string `db:"primary=yes"`
TargetType api.TargetType
Properties json.RawMessage
EndpointFunc func(api.Target) (TargetEndpoint, error) `json:"-" db:"ignore"`
}
func (Target) GetEndpoint ¶
func (Target) GetExternalConnectivityStatus ¶
func (t Target) GetExternalConnectivityStatus() api.ExternalConnectivityStatus
func (Target) GetServerCertificate ¶
func (t Target) GetServerCertificate() *x509.Certificate
func (Target) GetTrustedServerCertificateFingerprint ¶
func (*Target) SetExternalConnectivityStatus ¶
func (t *Target) SetExternalConnectivityStatus(status api.ExternalConnectivityStatus)
func (*Target) SetOIDCTokens ¶
func (t *Target) SetOIDCTokens(tokens *oidc.Tokens[*oidc.IDTokenClaims])
func (*Target) SetServerCertificate ¶
func (t *Target) SetServerCertificate(cert *x509.Certificate)
type TargetEndpoint ¶
type TargetEndpoint interface {
Connect(ctx context.Context) error
DoBasicConnectivityCheck() (api.ExternalConnectivityStatus, *x509.Certificate)
IsWaitingForOIDCTokens() bool
}
type TargetRepo ¶
type TargetRepo interface {
Create(ctx context.Context, target Target) (int64, error)
GetAll(ctx context.Context) (Targets, error)
GetAllNames(ctx context.Context) ([]string, error)
GetByName(ctx context.Context, name string) (*Target, error)
Update(ctx context.Context, name string, target Target) error
Rename(ctx context.Context, oldName string, newName string) error
DeleteByName(ctx context.Context, name string) error
}
type TargetService ¶
type TargetService interface {
Create(ctx context.Context, target Target) (Target, error)
GetAll(ctx context.Context) (Targets, error)
GetAllNames(ctx context.Context) ([]string, error)
GetByName(ctx context.Context, name string) (*Target, error)
Update(ctx context.Context, name string, target *Target) error
DeleteByName(ctx context.Context, name string) error
InitImportCache(initial map[string]int) error
GetCachedImports(targetName string) int
RecordActiveImport(targetName string)
RemoveActiveImport(targetName string)
InitCreateCache(initial map[string]int) error
GetCachedCreations(targetName string) int
RecordCreation(targetName string)
RemoveCreation(targetName string)
}
type Warning ¶
type Warning struct {
ID int64
UUID uuid.UUID `db:"primary=yes"`
Type api.WarningType
Scope string
EntityType string
Entity string
Status api.WarningStatus
FirstSeenDate time.Time
LastSeenDate time.Time
UpdatedDate time.Time
Messages []string `db:"marshal=json"`
Count int
}
func NewSyncWarning ¶
func NewSyncWarning(wType api.WarningType, sourceName string, message string) Warning
NewSyncWarning creates a sync-scoped warning for the given type, source, and message.
type WarningRepo ¶
type WarningRepo interface {
Upsert(ctx context.Context, w Warning) (int64, error)
GetAll(ctx context.Context) (Warnings, error)
GetByScopeAndType(ctx context.Context, scope api.WarningScope, wType api.WarningType) (Warnings, error)
GetByUUID(ctx context.Context, id uuid.UUID) (*Warning, error)
Update(ctx context.Context, id uuid.UUID, w Warning) error
DeleteByUUID(ctx context.Context, id uuid.UUID) error
}
type WarningService ¶
type WarningService interface {
GetAll(ctx context.Context) (Warnings, error)
GetByScopeAndType(ctx context.Context, scope api.WarningScope, wType api.WarningType) (Warnings, error)
GetByUUID(ctx context.Context, id uuid.UUID) (*Warning, error)
Update(ctx context.Context, id uuid.UUID, w *Warning) error
UpdateStatusByUUID(ctx context.Context, id uuid.UUID, status api.WarningStatus) (*Warning, error)
DeleteByUUID(ctx context.Context, id uuid.UUID) error
Emit(ctx context.Context, w Warning) (Warning, error)
RemoveStale(ctx context.Context, scope api.WarningScope, newWarnings Warnings) error
}
type WorkerCommand ¶
Source Files
¶
- artifact_model.go
- artifact_ports.go
- artifact_service.go
- batch_model.go
- batch_ports.go
- batch_service.go
- errors.go
- instance_model.go
- instance_ports.go
- instance_service.go
- network_model.go
- network_ports.go
- network_service.go
- queue_model.go
- queue_ports.go
- queue_service.go
- source_model.go
- source_ports.go
- source_service.go
- target_model.go
- target_ports.go
- target_service.go
- warning_model.go
- warning_ports.go
- warning_service.go