service

package
v0.22.2 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2026 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SelectNodeForSpace added in v0.22.0

func SelectNodeForSpace(template *model.Template, selectedNodeId string) (string, error)

SelectNodeForSpace selects the best node for a space based on template requirements Returns node ID or empty string for auto-selection, or error if no suitable node found

func SetContainerService

func SetContainerService(service Container)

func SetTransport

func SetTransport(t Transport)

func SetUserService

func SetUserService(service UserService)

Types

type Container

type Container interface {
	// Volumes
	CreateVolume(volume *model.Volume) error
	DeleteVolume(volume *model.Volume) error

	// Spaces
	StartSpace(space *model.Space, template *model.Template, user *model.User) error
	StopSpace(space *model.Space) error
	RestartSpace(space *model.Space) error
	DeleteSpace(space *model.Space)

	// Helpers
	CleanupOnBoot()
}

func GetContainerService

func GetContainerService() Container

type Icon added in v0.19.0

type Icon struct {
	Description string `toml:"description" json:"description"`
	Source      string `toml:"-" json:"source"`
	URL         string `toml:"url" json:"url"`
}

Icon represents a single icon entry

type IconList added in v0.19.0

type IconList struct {
	Icons []Icon `toml:"icons" json:"icons"`
}

type IconService added in v0.19.0

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

func GetIconService added in v0.19.0

func GetIconService() *IconService

GetIconService returns the singleton icon service instance

func (*IconService) GetIcons added in v0.19.0

func (s *IconService) GetIcons() []Icon

GetIcons returns all available icons (built-in and user-supplied)

func (*IconService) ReloadIcons added in v0.19.0

func (s *IconService) ReloadIcons()

ReloadIcons reloads icons from configuration

type SpaceListOptions added in v0.19.0

type SpaceListOptions struct {
	User           *model.User
	UserId         string // Filter by specific user ID
	IncludeDeleted bool
	CheckZone      bool
}

type SpaceService added in v0.19.0

type SpaceService struct{}

func GetSpaceService added in v0.19.0

func GetSpaceService() *SpaceService

func (*SpaceService) CheckUserQuotas added in v0.19.0

func (s *SpaceService) CheckUserQuotas(user *model.User, template *model.Template) error

checkUserQuotas validates user quotas for space creation

func (*SpaceService) CreateSpace added in v0.19.0

func (s *SpaceService) CreateSpace(space *model.Space, user *model.User) error

CreateSpace creates a new space with validation and quota checks

func (*SpaceService) DeleteSpace added in v0.19.0

func (s *SpaceService) DeleteSpace(spaceId string, user *model.User) error

DeleteSpace marks a space as deleted with validation

func (*SpaceService) GetSpace added in v0.19.0

func (s *SpaceService) GetSpace(spaceId string, user *model.User) (*model.Space, error)

GetSpace retrieves a single space by ID with permission checks

func (*SpaceService) GetSpaceCustomField added in v0.21.5

func (s *SpaceService) GetSpaceCustomField(spaceId string, fieldName string, user *model.User) (string, error)

GetSpaceCustomField retrieves a single custom field value from a space

func (*SpaceService) ListSpaces added in v0.19.0

func (s *SpaceService) ListSpaces(opts SpaceListOptions) ([]*model.Space, error)

ListSpaces returns a filtered list of spaces based on the provided options

func (*SpaceService) SetSpaceCustomField added in v0.21.5

func (s *SpaceService) SetSpaceCustomField(spaceId string, fieldName string, fieldValue string, user *model.User) error

SetSpaceCustomField sets or updates a single custom field on a space

func (*SpaceService) UpdateSpace added in v0.19.0

func (s *SpaceService) UpdateSpace(space *model.Space, user *model.User) error

UpdateSpace updates an existing space with validation

type TemplateListOptions added in v0.19.0

type TemplateListOptions struct {
	User                 *model.User
	IncludeInactive      bool
	IncludeDeleted       bool
	CheckPermissions     bool
	CheckZoneRestriction bool
}

type TemplateService added in v0.19.0

type TemplateService struct{}

func GetTemplateService added in v0.19.0

func GetTemplateService() *TemplateService

func (*TemplateService) CreateTemplate added in v0.19.0

func (s *TemplateService) CreateTemplate(template *model.Template, user *model.User) error

CreateTemplate creates a new template with validation

func (*TemplateService) DeleteTemplate added in v0.19.0

func (s *TemplateService) DeleteTemplate(templateId string, user *model.User) error

DeleteTemplate marks a template as deleted with validation

func (*TemplateService) GetTemplate added in v0.19.0

func (s *TemplateService) GetTemplate(templateId string) (*model.Template, error)

GetTemplate retrieves a single template by ID

func (*TemplateService) GetTemplateUsage added in v0.19.0

func (s *TemplateService) GetTemplateUsage(templateId string) (total int, deployed int, err error)

GetTemplateUsage returns usage statistics for a template

func (*TemplateService) ListTemplates added in v0.19.0

func (s *TemplateService) ListTemplates(opts TemplateListOptions) ([]*model.Template, error)

ListTemplates returns a filtered list of templates based on the provided options

func (*TemplateService) UpdateTemplate added in v0.19.0

func (s *TemplateService) UpdateTemplate(template *model.Template, user *model.User) error

UpdateTemplate updates an existing template with validation

type Transport

type Transport interface {
	GossipGroup(group *model.Group)
	GossipRole(role *model.Role)
	GossipSpace(space *model.Space)
	GossipTemplate(template *model.Template)
	GossipTemplateVar(templateVar *model.TemplateVar)
	GossipUser(user *model.User)
	GossipToken(token *model.Token)
	GossipVolume(volume *model.Volume)
	GossipAuditLog(entry *model.AuditLogEntry)
	GossipSession(session *model.Session)
	GetAgentEndpoints() []string
	GetTunnelServers() []string

	LockResource(resourceId string) string
	UnlockResource(resourceId, unlockToken string)

	Nodes() []*gossip.Node
	GetNodeByIDString(id string) *gossip.Node
}

func GetTransport

func GetTransport() Transport

type UserService

type UserService interface {
	// User deletion operations
	DeleteUser(user *model.User) error
	RemoveUsersSessions(user *model.User)
	RemoveUsersTokens(user *model.User)

	// SSH key and space management
	UpdateUserSpaces(user *model.User)
	UpdateSpacesSSHKey(user *model.User)
	UpdateSpaceSSHKeys(space *model.Space, user *model.User)
}

UserService defines operations that can be performed on users

func GetUserService

func GetUserService() UserService

Jump to

Keyboard shortcuts

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