Documentation
¶
Overview ¶
Package workloads contains high-level logic for managing the lifecycle of ToolHive-managed containers.
Index ¶
- Constants
- Variables
- func FilterByGroup(workloadList []core.Workload, groupName string) ([]core.Workload, error)
- func FilterByGroups(workloadList []core.Workload, groupNames []string) ([]core.Workload, error)
- type Manager
- func NewManager(ctx context.Context) (Manager, error)
- func NewManagerFromRuntime(runtime rt.Runtime) (Manager, error)
- func NewManagerFromRuntimeWithProvider(runtime rt.Runtime, configProvider config.Provider) (Manager, error)
- func NewManagerWithProvider(ctx context.Context, configProvider config.Provider) (Manager, error)
Constants ¶
View Source
const ( // AsyncOperationTimeout is the timeout for async workload operations AsyncOperationTimeout = 5 * time.Minute )
Variables ¶
View Source
var ErrWorkloadNotRunning = fmt.Errorf("workload not running")
ErrWorkloadNotRunning is returned when a container cannot be found by name.
Functions ¶
func FilterByGroup ¶ added in v0.2.3
FilterByGroup filters workloads to only include those in the specified group
Types ¶
type Manager ¶
type Manager interface { // GetWorkload retrieves details of the named workload including its status. GetWorkload(ctx context.Context, workloadName string) (core.Workload, error) // ListWorkloads retrieves the states of all workloads. // The `listAll` parameter determines whether to include workloads that are not running. // The optional `labelFilters` parameter allows filtering workloads by labels (format: key=value). ListWorkloads(ctx context.Context, listAll bool, labelFilters ...string) ([]core.Workload, error) // DeleteWorkloads deletes the specified workloads by name. // It is implemented as an asynchronous operation which returns an errgroup.Group DeleteWorkloads(ctx context.Context, names []string) (*errgroup.Group, error) // StopWorkloads stops the specified workloads by name. // It is implemented as an asynchronous operation which returns an errgroup.Group StopWorkloads(ctx context.Context, names []string) (*errgroup.Group, error) // RunWorkload runs a container in the foreground. RunWorkload(ctx context.Context, runConfig *runner.RunConfig) error // RunWorkloadDetached runs a container in the background. RunWorkloadDetached(ctx context.Context, runConfig *runner.RunConfig) error // RestartWorkloads restarts the specified workloads by name. // It is implemented as an asynchronous operation which returns an errgroup.Group RestartWorkloads(ctx context.Context, names []string, foreground bool) (*errgroup.Group, error) // UpdateWorkload updates a workload by stopping, deleting, and recreating it. // It is implemented as an asynchronous operation which returns an errgroup.Group UpdateWorkload(ctx context.Context, workloadName string, newConfig *runner.RunConfig) (*errgroup.Group, error) // GetLogs retrieves the logs of a container. GetLogs(ctx context.Context, containerName string, follow bool) (string, error) // MoveToGroup moves the specified workloads from one group to another by updating their runconfig. MoveToGroup(ctx context.Context, workloadNames []string, groupFrom string, groupTo string) error // ListWorkloadsInGroup returns all workload names that belong to the specified group, including stopped workloads. ListWorkloadsInGroup(ctx context.Context, groupName string) ([]string, error) // DoesWorkloadExist checks if a workload with the given name exists. DoesWorkloadExist(ctx context.Context, workloadName string) (bool, error) }
Manager is responsible for managing the state of ToolHive-managed containers. NOTE: This interface may be split up in future PRs, in particular, operations which are only relevant to the CLI/API use case will be split out.
func NewManager ¶
NewManager creates a new container manager instance.
func NewManagerFromRuntime ¶ added in v0.1.0
NewManagerFromRuntime creates a new container manager instance from an existing runtime.
Directories
¶
Path | Synopsis |
---|---|
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
Package statuses provides an interface and implementation for managing workload statuses.
|
Package statuses provides an interface and implementation for managing workload statuses. |
mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
Package types contains types and validation functions for workloads in ToolHive.
|
Package types contains types and validation functions for workloads in ToolHive. |
Click to show internal directories.
Click to hide internal directories.