server

package
v1.1.0-beta.0...-1b778f2 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package server provides a set of struct definitions for the resource group, can be imported.

Index

Constants

This section is empty.

Variables

View Source
var SetUpRestHandler = func(srv *Service) (http.Handler, server.APIServiceGroup) {
	return dummyRestService{}, server.APIServiceGroup{}
}

SetUpRestHandler is a hook to sets up the REST service.

Functions

func NewService

func NewService(svr *server.Server) registry.RegistrableService

NewService creates a new resource manager service.

Types

type GroupTokenBucket

type GroupTokenBucket struct {
	*rmpb.TokenBucket `json:"token_bucket,omitempty"`
	Consumption       *rmpb.TokenBucketsRequest `json:"consumption,omitempty"`
	LastUpdate        *time.Time                `json:"last_update,omitempty"`
	Initialized       bool                      `json:"initialized"`
}

GroupTokenBucket is a token bucket for a resource group.

func (*GroupTokenBucket) Request

func (t *GroupTokenBucket) Request(
	neededTokens float64, targetPeriodMs uint64,
) *rmpb.TokenBucket

Request requests tokens from the token bucket.

func (*GroupTokenBucket) Update

func (t *GroupTokenBucket) Update(now time.Time)

Update updates the token bucket.

type Manager

type Manager struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

Manager is the manager of resource group.

func NewManager

func NewManager(srv *server.Server) *Manager

NewManager returns a new Manager.

func (*Manager) AddResourceGroup

func (m *Manager) AddResourceGroup(group *ResourceGroup) error

AddResourceGroup puts a resource group.

func (*Manager) DeleteResourceGroup

func (m *Manager) DeleteResourceGroup(name string) error

DeleteResourceGroup deletes a resource group.

func (*Manager) GetResourceGroup

func (m *Manager) GetResourceGroup(name string) *ResourceGroup

GetResourceGroup returns a copy of a resource group.

func (*Manager) GetResourceGroupList

func (m *Manager) GetResourceGroupList() []*ResourceGroup

GetResourceGroupList returns copies of resource group list.

func (*Manager) Init

func (m *Manager) Init()

Init initializes the resource group manager.

func (*Manager) ModifyResourceGroup

func (m *Manager) ModifyResourceGroup(group *rmpb.ResourceGroup) error

ModifyResourceGroup modifies an existing resource group.

type NativeResourceSettings

type NativeResourceSettings struct {
	CPU              GroupTokenBucket `json:"cpu,omitempty"`
	IOReadBandwidth  GroupTokenBucket `json:"io_read_bandwidth,omitempty"`
	IOWriteBandwidth GroupTokenBucket `json:"io_write_bandwidth,omitempty"`
}

NativeResourceSettings is the definition of the native resource settings.

type RequestUnitSettings

type RequestUnitSettings struct {
	RRU GroupTokenBucket `json:"rru,omitempty"`
	WRU GroupTokenBucket `json:"wru,omitempty"`
}

RequestUnitSettings is the definition of the RU settings.

type ResourceGroup

type ResourceGroup struct {
	sync.RWMutex
	Name string         `json:"name"`
	Mode rmpb.GroupMode `json:"mode"`
	// RU settings
	RUSettings *RequestUnitSettings `json:"r_u_settings,omitempty"`
	// Native resource settings
	ResourceSettings *NativeResourceSettings `json:"resource_settings,omitempty"`
}

ResourceGroup is the definition of a resource group, for REST API.

func FromProtoResourceGroup

func FromProtoResourceGroup(group *rmpb.ResourceGroup) *ResourceGroup

FromProtoResourceGroup converts a rmpb.ResourceGroup to a ResourceGroup.

func (*ResourceGroup) CheckAndInit

func (rg *ResourceGroup) CheckAndInit() error

CheckAndInit checks the validity of the resource group and initializes the default values if not setting. Only used to initialize the resource group when creating.

func (*ResourceGroup) Copy

func (rg *ResourceGroup) Copy() *ResourceGroup

Copy copies the resource group.

func (*ResourceGroup) IntoProtoResourceGroup

func (rg *ResourceGroup) IntoProtoResourceGroup() *rmpb.ResourceGroup

IntoProtoResourceGroup converts a ResourceGroup to a rmpb.ResourceGroup.

func (*ResourceGroup) PatchSettings

func (rg *ResourceGroup) PatchSettings(metaGroup *rmpb.ResourceGroup) error

PatchSettings patches the resource group settings. Only used to patch the resource group when updating. Note: the tokens is the delta value to patch.

func (*ResourceGroup) String

func (rg *ResourceGroup) String() string

type Service

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

Service is the gRPC service for resource manager.

func (*Service) AcquireTokenBuckets

func (s *Service) AcquireTokenBuckets(stream rmpb.ResourceManager_AcquireTokenBucketsServer) error

AcquireTokenBuckets implements ResourceManagerServer.AcquireTokenBuckets.

func (*Service) AddResourceGroup

AddResourceGroup implements ResourceManagerServer.AddResourceGroup.

func (*Service) DeleteResourceGroup

DeleteResourceGroup implements ResourceManagerServer.DeleteResourceGroup.

func (*Service) GetManager

func (s *Service) GetManager() *Manager

GetManager returns the resource manager.

func (*Service) GetResourceGroup

GetResourceGroup implements ResourceManagerServer.GetResourceGroup.

func (*Service) ListResourceGroups

ListResourceGroups implements ResourceManagerServer.ListResourceGroups.

func (*Service) ModifyResourceGroup

func (s *Service) ModifyResourceGroup(ctx context.Context, req *rmpb.PutResourceGroupRequest) (*rmpb.PutResourceGroupResponse, error)

ModifyResourceGroup implements ResourceManagerServer.ModifyResourceGroup.

func (*Service) RegisterGRPCService

func (s *Service) RegisterGRPCService(g *grpc.Server)

RegisterGRPCService registers the service to gRPC server.

func (*Service) RegisterRESTHandler

func (s *Service) RegisterRESTHandler(userDefineHandlers map[string]http.Handler)

RegisterRESTHandler registers the service to REST server.

Directories

Path Synopsis
apis
v1

Jump to

Keyboard shortcuts

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