LogoLogo
WebsiteTechnical Discussions
Developer documentation
Developer documentation
  • Public Technical Documentation
    • device-management-service
      • main
        • actor
        • api
        • cmd
          • actor
          • cap
        • db
          • repositories
            • clover
        • dms
          • behaviors
          • jobs
          • node
          • onboarding
          • resources
        • docs
          • deployments
          • onboarding
          • private_network
        • executor
          • docker
          • firecracker
          • background_tasks
          • config
          • hardware
        • maint-scripts
        • network
          • libp2p
        • observability
        • specs
          • basic_controller
          • s3
          • volume
          • integration
        • tokenomics
        • types
        • utils
          • validate
      • release
        • actor
        • api
        • cmd
          • actor
          • cap
        • db
          • repositories
            • clover
        • dms
          • behaviors
          • hardware
          • jobs
          • node
          • onboarding
          • resources
        • docs
          • deployments
          • onboarding
          • private_network
        • executor
          • docker
          • firecracker
        • internal
          • background_tasks
          • config
        • maint-scripts
        • network
          • libp2p
        • observability
        • plugins
        • specs
        • storage
          • basic_controller
          • s3
          • volume
        • test
        • tokenomics
        • types
        • utils
          • validate
    • solutions
      • asi-node
        • main
          • demos
            • ocap_auth
              • ansible
              • videos
          • did-auth-use-scenarios
            • create-a-hosting-deployment
            • make-a-payment
            • manage-dids-and-ocaps
            • register-an-ai-agent
            • submit-a-compute-job
          • pilots
            • asi-create-authentication-poc
        • release
      • nunet-appliance
        • main
        • release
    • test-suite
      • main
        • cicd
          • tests
            • feature_environment
          • cli
          • dms-on-lxd
            • local
        • environments
          • development
          • feature
          • production
          • staging
        • infrastructure
          • cloud-init
          • dms-on-lxd
          • nginx
        • lib
        • stages
          • dependency_scanning
          • functional_tests
          • integration_tests
          • load_tests
          • regression_tests
          • security_tests_1
          • security_tests_2
          • security_tests_live
          • unit_tests
          • user_acceptance_tests
      • release
        • cicd
          • tests
            • feature_environment
          • cli
          • dms-on-lxd
            • local
        • environments
          • development
          • feature
          • production
          • staging
        • infrastructure
          • cloud-init
          • dms-on-lxd
          • nginx
        • lib
        • stages
          • dependency_scanning
          • functional_tests
          • integration_tests
          • load_tests
          • regression_tests
          • security_tests_1
          • security_tests_2
          • security_tests_live
          • unit_tests
          • user_acceptance_tests
    • team-processes-and-guidelines
      • main
        • best_practices
        • ci_cd_pipeline
        • community_feedback_process
        • contributing_guidelines
        • git_workflows
        • nunet_test_process_and_environments
        • secure_coding_guidelines
        • specification_and_documentation
        • team_process
          • a_project_management
          • b_ceremonies_artifacts
          • c_drum_buffer_rope
          • d_development_process
          • e_culture_rules
          • f_mr_review
        • vulnerability_management
          • devsecops_maturity_models
          • nunet_security_pipeline
          • secret_management
          • sop_security_mr_review
Powered by GitBook
On this page
  • resources
  • Table of Contents
  • Specification
Export as PDF
  1. Public Technical Documentation
  2. device-management-service
  3. main
  4. dms

resources

PreviousonboardingNextdocs

Last updated 11 hours ago

Last updated: 2025-05-15 01:08:12.557961 File source:

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:

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 instance

  • output (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 of GPU.

  • 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








: Current file which is aimed towards developers who wish to use and modify the DMS functionality.

: Contains the initialization of the package.

: Contains the resource manager which is responsible for managing the resources of dms.

: Contains the implementation of the UsageMonitor interface.

: Contains the implementation of the store for the resource manager.

README
init
resource_manager
usage_monitor
store
resources Class diagram
link on GitLab
Project README
Release/Build Status
Changelog
License
Contribution Guidelines
Code of Conduct
Secure Coding Guidelines
Description
Structure and Organisation
Class Diagram
Functionality
Data Types
Testing
Proposed Functionality/Requirements
References