resources
Last updated: 2025-06-26 01:04:48.033088 File source: link on GitLab
resources
Table of Contents
Specification
Description
resources
deals with resource management for the machine. This includes calculation of available resources for new jobs or bid requests.
Structure and Organisation
Here is quick overview of the contents of this pacakge:
README: Current file which is aimed towards developers who wish to use and modify the DMS functionality.
init: Contains the initialization of the package.
resource_manager: Contains the resource manager which is responsible for managing the resources of dms.
usage_monitor: Contains the implementation of the
UsageMonitor
interface.store: Contains the implementation of the
store
for the resource manager.
All files with *_test.go
contains unit tests for the corresponding functionality.
Class Diagram
The class diagram for the resources
package is shown below.
Source file
Rendered from source file
!$rootUrlGitlab = "https://gitlab.com/nunet/device-management-service/-/raw/main"
!$packageRelativePath = "/dms/resources"
!$packageUrlGitlab = $rootUrlGitlab + $packageRelativePath
!include $packageUrlGitlab/specs/class_diagram.puml
Functionality
Manager Interface
The interface methods are explained below.
AllocateResources
signature:
AllocateResources(context.Context, ResourceAllocation) error
input:
Context
output (error): Error message
AllocateResources
allocates the resources to the job.
DeallocateResources
signature:
DeallocateResources(context.Context, string) error
input:
Context
output (error): Error message
DeallocateResources
deallocates the resources from the job.
GetTotalAllocation
signature:
GetTotalAllocation() (Resources, error)
input:
Context
output:
types.Resource
output (error): Error message
GetTotalAllocation
returns the total resources allocated to the jobs.
GetFreeResources
signature:
GetFreeResources() (FreeResources, error)
input: None
output:
FreeResources
output (error): Error message
GetFreeResources
returns the available resources in the allocation pool.
GetOnboardedResources
signature:
GetOnboardedResources(context.Context) (OnboardedResources, error)
input:
Context
output:
OnboardedResources
output (error): Error message
GetOnboardedResources
returns the resources onboarded to dms.
UpdateOnboardedResources
signature:
UpdateOnboardedResources(context.Context, OnboardedResources) error
input:
Context
input:
OnboardedResources
output (error): Error message
UpdateOnboardedResources
updates the resources onboarded to dms.
UsageMonitor
signature:
UsageMonitor() types.UsageMonitor
input: None
output:
types.UsageMonitor
instanceoutput (error): None
UsageMonitor
returns the types.UsageMonitor
instance.
UsageMonitor Interface
This interface defines methods to monitor the system usage. The methods are explained below.
GetUsage
signature:
GetUsage(context.Context) (types.Resource, error)
input:
Context
output:
types.Resource
output (error): Error message
GetUsage
returns the resources currently used by the machine.
Data Types
types.Resources
: resources defined for the machine.types.AvailableResources
: resources onboarded to Nunet.types.FreeResources
: resources currently available for new jobs.types.ResourceAllocation
: resources allocated to a job.types.MachineResources
: resources available on the machine.types.GPUVendor
: GPU vendors available on the machine.types.GPU
: GPU details.types.GPUs
: A slice ofGPU
.types.CPU
: CPU details.types.RAM
: RAM details.types.Disk
: Disk details.types.NetworkInfo
: Network details.
### Testing
Refer to `*_test.go` files for unit tests of different functionalities.
### Proposed Functionality / Requirements
#### List of issues
All issues that are related to the implementation of `dms` package can be found below. These include any proposals for modifications to the package or new functionality needed to cover the requirements of other packages.
- [dms package implementation](https://gitlab.com/groups/nunet/-/issues/?sort=created_date&state=opened&label_name%5B%5D=collaboration_group_24%3A%3A33&first_page_size=20)
### References
Last updated