Versions in this module Expand all Collapse all v0 v0.6.2 Oct 27, 2026 v0.6.1 Oct 24, 2026 Changes in this version + const ChunkSize + const MaxFileSize + const ResultKept + const ResultOK + const ResultRejected + const ResultRemoved + var ErrAssigned = errors.New("extension is assigned") + var ErrCommandExecution = errors.New("command-execution extensions can only be assigned to nodes") + var ErrDuplicate = errors.New("extension name already exists") + var ErrEmpty = errors.New("extension file is empty") + var ErrInvalid = errors.New("invalid extension input") + var ErrKept = errors.New("extension is still on a host that could not remove it") + var ErrNotCommandExecution = errors.New("only command-execution extensions can be assigned to nodes") + var ErrNotFound = errors.New("extension not found") + var ErrTooLarge = errors.New("extension file is too large") + var ErrTruncated = errors.New("extension file upload was cut short") + func ValidName(name string) bool + func ValidPlatform(platform, arch string) bool + func ValidSHA256(s string) bool + type EnvExtension struct + CreatedBy string + EnvironmentID uint + ExtensionID uint + type Extension struct + CommandExecution bool + CreatedBy string + Description string + Name string + UpdatedBy string + Version string + type ExtensionChunk struct + Data []byte + ID uint + SHA256 string + Seq int + type ExtensionFile struct + Arch string + ExtensionID uint + Filename string + Platform string + SHA256 string + Size int64 + UpdatedBy string + type ExtensionView struct + EnvAssignments int64 + Files []ExtensionFile + NodeAssignments int64 + type Manager struct + func NewManager(db *gorm.DB) (*Manager, error) + func (m *Manager) AssignEnv(envID, extID uint, by string) error + func (m *Manager) AssignNode(nodeUUID string, envID, extID uint, expiresAt *time.Time, by string) (*NodeExtension, error) + func (m *Manager) Create(ext Extension) (*Extension, error) + func (m *Manager) Delete(id uint) error + func (m *Manager) DeleteFile(extID uint, platform, arch string) error + func (m *Manager) DeleteNode(nodeUUID string) error + func (m *Manager) EffectiveSet(envID uint, nodeUUID, platform, arch string, now time.Time) ([]types.OsctrldExtensionEntry, error) + func (m *Manager) EnvExtensions(envID uint) ([]Extension, error) + func (m *Manager) FileSize(sha string) (int64, error) + func (m *Manager) Get(id uint) (*Extension, error) + func (m *Manager) InEnvSet(envID uint, sha string) (bool, error) + func (m *Manager) List() ([]ExtensionView, error) + func (m *Manager) NodeAssignments(nodeUUID string) ([]NodeExtension, error) + func (m *Manager) NodeStatuses(nodeUUID string) ([]NodeExtensionStatus, error) + func (m *Manager) PutFile(ctx context.Context, extID uint, platform, arch, filename string, r io.Reader, ...) (*ExtensionFile, error) + func (m *Manager) RecordStatus(nodeUUID string, envID uint, s []types.OsctrldExtensionStatus, at time.Time) error + func (m *Manager) StreamFile(ctx context.Context, sha string, w io.Writer) (int64, error) + func (m *Manager) UnassignEnv(envID, extID uint) error + func (m *Manager) UnassignNode(nodeUUID string, extID uint) error + func (m *Manager) Update(id uint, desc, version string, commandExec *bool, by string) (*Extension, error) + type NodeExtension struct + CreatedBy string + EnvironmentID uint + ExpiresAt *time.Time + ExtensionID uint + NodeUUID string + func (n *NodeExtension) Expired(now time.Time) bool + type NodeExtensionStatus struct + At *time.Time + EnvironmentID uint + Error string + Name string + NodeUUID string + ReportedAt time.Time + Result string + SHA256 string