Documentation
¶
Index ¶
Constants ¶
View Source
const ( StatusNone = "NONE" StatusAllocated = "ALLOCATED" )
Variables ¶
View Source
var DriversList []ResourceDriver
Functions ¶
This section is empty.
Types ¶
type ResourceDriver ¶
type ResourceDriver interface {
// Name of the driver
Name() string
// If the driver uses local node resources or a cloud or remote resources
// it is used to calculate the slots available for the local drivers
IsRemote() bool
// Give driver configs and check if it's ok
// -> config - driver configuration in json format
// -> nodedef - information about the node the driver is running on
Prepare(config []byte) error
// Make sure the allocate definition is appropriate for the driver
// -> def - describes the driver options to allocate the required resource
ValidateDefinition(def types.LabelDefinition) error
// Check if the described definition can be running on the current node
// -> node_usage - how much of node resources was used by all the drivers. Usually should not be used by the cloud drivers
// -> req - definition describes requirements for the resource
// <- capacity - the number of such definitions the driver could run, if -1 - error happened
AvailableCapacity(node_usage types.Resources, req types.LabelDefinition) (capacity int64)
// Allocate the resource by definition and returns hw address
// -> def - describes the driver options to allocate the required resource
// -> metadata - user metadata to use during resource allocation
// <- res - initial resource information to store driver instance state
Allocate(def types.LabelDefinition, metadata map[string]any) (res *types.Resource, err error)
// Get the status of the resource with given hw address
// -> res - resource information with stored driver instance state
// <- status - current status of the resource
Status(res *types.Resource) (status string, err error)
// Get task struct with implementation to execute it later
// -> task - identifier of the task operation
// -> options - additional config options for the task
GetTask(task, options string) ResourceDriverTask
// Deallocate resource with provided hw addr
// -> res - resource information with stored driver instance state
Deallocate(res *types.Resource) error
}
type ResourceDriverTask ¶ added in v0.6.0
type ResourceDriverTask interface {
// Name of the task
Name() string
// Copy the existing task structure
// Will return new not related to the original task structure
Clone() ResourceDriverTask
// Fish provides the task information about the operated items
SetInfo(task *types.ApplicationTask, res *types.Resource)
// Run the task operation
// <- result - json data with results of operation
Execute() (result []byte, err error)
}
Click to show internal directories.
Click to hide internal directories.