resourcemanager

package
v0.1.25 Latest Latest
Warning

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

Go to latest
Published: Jan 2, 2020 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const RedisSetKeyPrefix = "resourcemanager"

This is the key that will point to the Redis Set. https://redis.io/commands#set

Variables

This section is empty.

Functions

func GetTaskResourceManager

func GetTaskResourceManager(r pluginCore.ResourceManager, resourceNamespacePrefix pluginCore.ResourceNamespace, allocationTokenPrefix TokenPrefix) pluginCore.ResourceManager

func NewRedisClient

func NewRedisClient(ctx context.Context, config config.RedisConfig) (*redis.Client, error)

Types

type Builder

type Builder interface {
	ResourceRegistrar(namespacePrefix pluginCore.ResourceNamespace) pluginCore.ResourceRegistrar
	BuildResourceManager(ctx context.Context) (pluginCore.ResourceManager, error)
}

func GetResourceManagerBuilderByType

func GetResourceManagerBuilderByType(ctx context.Context, managerType rmConfig.Type, scope promutils.Scope) (
	Builder, error)

type Metrics

type Metrics interface {
	GetScope() promutils.Scope
}

type NoopResourceManager

type NoopResourceManager struct {
}

func (*NoopResourceManager) AllocateResource

func (*NoopResourceManager) AllocateResource(ctx context.Context, namespace pluginCore.ResourceNamespace, allocationToken string) (
	pluginCore.AllocationStatus, error)

func (*NoopResourceManager) ReleaseResource

func (*NoopResourceManager) ReleaseResource(ctx context.Context, namespace pluginCore.ResourceNamespace, allocationToken string) error

type NoopResourceManagerBuilder

type NoopResourceManagerBuilder struct {
}

func (*NoopResourceManagerBuilder) BuildResourceManager

func (*NoopResourceManagerBuilder) RegisterResourceQuota

func (r *NoopResourceManagerBuilder) RegisterResourceQuota(ctx context.Context, namespace pluginCore.ResourceNamespace, quota int) error

func (*NoopResourceManagerBuilder) ResourceRegistrar

type Proxy

type Proxy struct {
	pluginCore.ResourceManager
	ResourceNamespacePrefix pluginCore.ResourceNamespace
	TokenPrefix             TokenPrefix
}

A proxy will be created for each TaskExecutionContext

func (Proxy) AllocateResource

func (p Proxy) AllocateResource(ctx context.Context, namespace pluginCore.ResourceNamespace,
	allocationToken string) (pluginCore.AllocationStatus, error)

func (Proxy) ReleaseResource

func (p Proxy) ReleaseResource(ctx context.Context, namespace pluginCore.ResourceNamespace,
	allocationToken string) error

type RedisResourceManager

type RedisResourceManager struct {
	MetricsScope promutils.Scope
	// contains filtered or unexported fields
}

func (*RedisResourceManager) AllocateResource

func (r *RedisResourceManager) AllocateResource(ctx context.Context, namespace pluginCore.ResourceNamespace, allocationToken string) (
	pluginCore.AllocationStatus, error)

func (*RedisResourceManager) ReleaseResource

func (r *RedisResourceManager) ReleaseResource(ctx context.Context, namespace pluginCore.ResourceNamespace, allocationToken string) error

type RedisResourceManagerBuilder

type RedisResourceManagerBuilder struct {
	MetricsScope promutils.Scope
	// contains filtered or unexported fields
}

func NewRedisResourceManagerBuilder

func NewRedisResourceManagerBuilder(_ context.Context, client *redis.Client, scope promutils.Scope) (*RedisResourceManagerBuilder, error)

func (*RedisResourceManagerBuilder) BuildResourceManager

func (*RedisResourceManagerBuilder) RegisterResourceQuota

func (r *RedisResourceManagerBuilder) RegisterResourceQuota(ctx context.Context, namespace pluginCore.ResourceNamespace, quota int) error

func (*RedisResourceManagerBuilder) ResourceRegistrar

type RedisResourceManagerMetrics

type RedisResourceManagerMetrics struct {
	Scope                     promutils.Scope
	RedisSizeCheckTime        promutils.StopWatch
	AllocatedTokensGauge      prometheus.Gauge
	ApproximateBackedUpLength prometheus.Gauge
}

func NewRedisResourceManagerMetrics

func NewRedisResourceManagerMetrics(scope promutils.Scope) *RedisResourceManagerMetrics

func (RedisResourceManagerMetrics) GetScope

type Resource

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

This struct is designed to serve as the identifier of an user of resource manager

type ResourceRegistrarProxy

type ResourceRegistrarProxy struct {
	pluginCore.ResourceRegistrar
	ResourceNamespacePrefix pluginCore.ResourceNamespace
	TokenPrefix             TokenPrefix
}

func (ResourceRegistrarProxy) RegisterResourceQuota

func (p ResourceRegistrarProxy) RegisterResourceQuota(ctx context.Context, namespace pluginCore.ResourceNamespace, quota int) error

type TokenPrefix added in v0.1.23

type TokenPrefix string

func ComposeTokenPrefix added in v0.1.23

func ComposeTokenPrefix(id *core.TaskExecutionIdentifier) TokenPrefix

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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