SuperAPI AI Directory

huawei-cloud-cloudrobo-resource

Deployment & operations

View repository

Updated 10-15 22:14

About this skill

Windows / PowerShell: Examples use bash syntax. To run on Windows PowerShell:

  • Flatten \ line continuations to a single line, or end lines with a backtick.
  • Set env vars with $env:NAME="value" instead of export NAME="value".
  • Single-quoted JSON '{"a":"b"}' works as-is.

Overview Overview

The cloudrobo-resource skill provides query capabilities for CloudRobo compute resources. It covers two core areas: resource quota querying (with Domain-level aggregation and CCE/ModelArts isolation) and resource pool querying (list with multi-condition filtering, show with node-level details). This skill is read-only — no write operations are included.

Applicable scenarios:

  • Quota querying — View workspace-level and Domain-level resource quotas; verify CCE (cpu/memory/gpu) and ModelArts (npu) quota isolation; check available capacity before launching workloads
  • Resource pool querying — List resource pools by type/sub-type/pool-type/usages; inspect node-level details (name, status, resources, labels)

Architecture:

Agent / LLM
    │
    ├── CLI  →  cloudrobo resource <command>
    ├── SDK  →  ResourceClient (Python)
                    │
                    ▼
              cloudrobo-service (REST API)
              /v1/resources/quotas
              /v1/resources/pools
              /v1/resources/pools/{pool_id}

All operations target the cloudrobo-service backend. Resource operations are domain-level — quota list and pool list require ABAC permission; pool detail does not.

Prerequisites Prerequisites

See references/cli-installation-guide.md for CLI installation, AK/SK authentication, and initial configuration. The cloudrobo-resource package depends on cloudrobo-core. Ensure cloudrobo workspace use --workspace-id <id> has been run to set the active workspace context before using resource commands.

Workflow Workflow

Quota Query Workflow Quota Query Workflow

  1. List quotas — cloudrobo resource list-quotas (returns domain_quotas + quotas + page_info)
  2. Filter by type — cloudrobo resource list-quotas --resource-type CCE (CCE: npu=0; MODELARTS: cpu/memory/gpu=0)
  3. Filter by workspace — cloudrobo resource list-quotas --workspace-id <id> (workspace-scoped quotas)
  4. Check capacity — Review domain_quotas[].available_spec for available compute resources

Resource Pool Query Workflow Resource Pool Query Workflow

  1. List pools — cloudrobo resource list-pools (returns resources + page_info)
  2. Filter pools — cloudrobo resource list-pools --resource-type MODELARTS --resource-sub-type STANDARD
  3. Show pool detail — cloudrobo resource show-pool --pool-id <id> (returns node info, status, config)

CLI Command Format Standard CLI Command Format Standard

cloudrobo resource <command> [OPTIONS]
Feature Description Example
Command group resource cloudrobo resource
Subcommand kebab-case list-quotas, list-pools, show-pool
Output format JSON to stdout out(result)
Comma list --usages TRAINING,INFERENCE --usages TRAINING,INFERENCE
Enum params click.Choice validated `--resource-type CCE
Pagination --limit 1-50 / --offset N --limit 20 --offset 0

Core Commands Core Commands

Quota Query Quota Query

List quotas

cloudrobo resource list-quotas [--workspace-id <id>] [--resource-id <id>] [--resource-type CCE|MODELARTS] [--resource-sub-type CPU|GPU|STANDARD|LITE] [--pool-type DEDICATED|SHARED] [--limit <n>] [--offset <n>] [--order ASC|DESC]
  • SDK: client.list_quotas(**params)
  • API: GET /v1/resources/quotas

Returns: domain_quotas (Domain-level aggregation with total_spec, used_spec, available_spec), quotas (workspace-level list with quota_id, resource_name, specs, nodes), page_info. CCE type quotas have npu=0; ModelArts type quotas have cpu/memory/gpu=0.

Resource Pool Query Resource Pool Query

List resource pools

cloudrobo resource list-pools [--resource-type CCE|MODELARTS] [--resource-sub-type CPU|GPU|STANDARD|LITE] [--pool-type DEDICATED|SHARED] [--usages TRAINING,INFERENCE] [--limit <n>] [--offset <n>] [--order ASC|DESC]
  • SDK: client.list_pools(**params)
  • API: GET /v1/resources/pools

Returns: resources (list of ResourceVo with resource_id, resource_name, resource_type, resource_sub_type, nodes, config, status, description, usages, pool_type, create_at), page_info. Pass resource_id to show-pool --pool-id.

Show resource pool detail

cloudrobo resource show-pool --pool-id <uuid>
  • SDK: client.show_pool(pool_id)
  • API: GET /v1/resources/pools/{pool_id}

--pool-id takes the pool's resource_id exactly as returned by list-pools — pass it through unmodified (no prefix stripping needed).

Returns: full ResourceVo including nodes (name, status, resources, available_resources, labels), config, status (AVAILABLE/UNAVAILABLE).

Reference Documents Reference Documents

Edge Cases Edge Cases

Scenario Handling
Missing workspace_id Quota list returns all domain quotas; use --workspace-id to filter by workspace
ABAC permission denied (403) Quota list and pool list require ABAC; pool detail does not require ABAC
Pagination out of range (400) limit must be 1-50; offset must be ≥ 0; server validates and returns 400
Resource pool not found (404) show-pool with invalid pool_id returns 404; verify with list-pools first
AK/SK not set Operations fail at HTTP signing step; set HUAWEI_CLOUD_AK/HUAWEI_CLOUD_SK
API paths Sourced from SDK source code (_url() calls in client.py), not inferred
Quota calculation isolation CCE: only cpu/memory/gpu counted (npu=0); ModelArts: only npu counted (cpu/memory/gpu=0)

Verification Method Verification Method

Specification Compliance Verification Specification Compliance Verification

bash scripts/test-cli-commands.sh -s . -e cli

Functional Testing Functional Testing

# CLI / SDK
bash scripts/test-cli-commands.sh -s . -e {cli|sdk}

Test Cases Test Cases

See templates/test-vars.json for the full test case list covering quota querying and resource pool querying scenarios.

Verification Checklist Verification Checklist

  • Verify list-quotas returns domain_quotas with CCE npu=0 and ModelArts cpu/memory/gpu=0
  • Verify list-quotas supports --workspace-id and --resource-type filtering
  • Verify list-pools returns resources with page_info
  • Verify show-pool returns node-level details including labels
  • Verify list-quotas and list-pools support pagination (--limit, --offset)

Best Practices Best Practices

  • Run list-quotas before launching workloads to verify available capacity
  • Use --resource-type filter to verify CCE/ModelArts quota isolation
  • Use list-pools with --usages filter to find pools suitable for specific workloads
  • Run show-pool to inspect node-level details before allocating resources
  • Check domain_quotas[].available_spec for Domain-level capacity overview
  • Use pagination (--limit, --offset) to manage large result sets efficiently