Queries Huawei Cloud storage resources (EVS/OBS/SFS/CBR). Covers cloud disks (volumes/snapshots/types/quotas/recycle bin), OBS buckets (ACL/metadata/notifica...
--- name: huawei-cloud-storage-query description: "Queries Huawei Cloud storage resources (EVS/OBS/SFS/CBR). Covers cloud disks (volumes/snapshots/types/quotas/recycle bin), OBS buckets (ACL/metadata/notifications/policies/objects), SFS Turbo file systems (shares/perm rules/backend targets/quotas/LDAP/AD), and CBR backups (vaults/policies/backups/tasks/agents/protectables). No write operations. Use this skill when the user needs to query disk info, list buckets/objects, check file system status, or view backup/policy details. Triggers: 云硬盘, EVS, 对象存储, OBS, 文件系统, SFS, 备份, CBR, 存储库, 快照, 桶, volume, bucket, backup, vault." --- # Huawei Cloud Resource Query > **⚠️ Execution Method (Must Read): This skill executes queries via local Python scripts. Using hcloud, openstack, or other CLI tools or direct API calls is prohibited.** > > - Query scripts are located under the skill directory `scripts/<service_category>/` (e.g., `scripts/as/list_scaling_groups.py`) > - All scripts and environment check scripts are inside the skill package, **must be executed using `skill action=exec`, do not run them directly in the shell** > - For specific script paths and parameters, refer to `references/<service>/guide.md` > - **Do not attempt hcloud, openstack, curl IAM, or other CLI/API methods; this skill does not depend on those tools** > - **All paths are relative to the skill directory, which is the directory where this SKILL.md resides** ## Overview This skill is a standalone read-only query skill that uses local Python scripts to call the Huawei Cloud Python SDK to query Huawei Cloud resources, available specifications, and existing resource information. This skill is applicable to the following scenarios: 1. Query available cloud resource specifications in a given region 2. Query available images for a given OS type 3. Query disk types and existing disk information 4. Query existing resources and their key attributes 5. Query resources not created via Terraform or other IaC tools 6. Prepare real parameters for automated configuration, resource verification, or environment inventory 7. Obtain reusable information such as resource ID, name, specification, image, network, disk, etc. This skill does NOT handle the following: 1. Creating resources 2. Modifying resources 3. Deleting resources 4. Guessing or fabricating information that has not been queried --- ## Capabilities This skill provides query capabilities through categorized scripts in the scripts directory, and usage instructions through categorized guides in the references directory. The capabilities provided by this skill include: 1. Query resource lists 2. Query individual resource details 3. Query available specifications, images, disk types, and other selection information 4. Query key identifiers and dependency relationships of existing resources --- ## Usage Principles Important: Script paths executed within this skill are all relative to the skill directory, which is the directory where this SKILL.md resides 1. This skill only performs queries, no write operations 2. Prefer explicitly specified region, project, AZ, resource name, resource ID, etc. from the user 3. Query results must be based on actual API responses, not inferred from experience 4. Returned results should prioritize key fields for subsequent reuse 5. When the result set is large, narrow the scope first using conditions like region, name, id, status, tag, etc. 6. If no corresponding script or guide exists for the current resource type, clearly state that it is unsupported; do not return unreliable results 7. If the user has not provided necessary scope information and no default values exist in the environment, confirm before executing the query 8. Execute directly according to guide.md; do not read the script contents in the scripts directory 9. Cache output when it is large 10. Before executing each script, always run -h first to view usage 11. Do not fabricate script names; execute according to the script names in guide.md. If a script name is not found in guide.md, it means it is not supported --- ## Prerequisites **Before use, you must run the environment check script to complete environment validation and dependency installation in one step:** - Linux / macOS: `skill action=exec: bash skill://scripts/check_env.sh` - Windows: `skill action=exec: powershell -ExecutionPolicy Bypass -File skill://scripts/check_env.ps1` > Windows Note: Do not use `&&` to chain commands (PowerShell 5.x does not support it); use semicolons if you need to change directories first The script will check in sequence: Python >= 3.6 → install dependencies → validate SDK → validate credentials → validate service availability. If the environment check fails, fix the issues before proceeding with other scripts. **Environment Variables:** | Variable | Required | Description | |----------|----------|-------------| | HW_ACCESS_KEY | Yes | Huawei Cloud AK | | HW_SECRET_KEY | Yes | Huawei Cloud SK | | HW_REGION_NAME | No | Default cn-north-4 | | HW_PROJECT_ID | No | Project ID (automatically obtained via IAM API when not set) | | HW_SECURITY_TOKEN | No | Required for temporary AK/SK | **Do not output the values of the above environment variables.** For additional parameters required by other resource scripts (availability zone, enterprise project, etc.), refer to the corresponding guide.md. --- ## Execution Flow **When this skill is invoked, the following steps must be executed without waiting for the user to prompt again:** ### Step 1: Environment Preparation Run the environment check script to ensure dependencies are installed and credentials are configured: - Linux / macOS: `skill action=exec: bash skill://scripts/check_env.sh` - Windows: `skill action=exec: powershell -ExecutionPolicy Bypass -File skill://scripts/check_env.ps1` If the environment check fails, fix as prompted and re-run until it passes. ### Step 2: Identify and Execute Query Script 1. Based on the user's query intent, read `references/<service>/guide.md` to determine the script path and parameters to execute 2. First run `-h` to view script usage: - Linux / macOS: `skill action=exec: skill://.venv/bin/python3 skill://scripts/<service>/<script>.py -h` - Windows: `skill action=exec: skill://.venv/Scripts/python3.exe skill://scripts/<service>/<script>.py -h` 3. Assemble parameters based on user requirements and execute the script: - Linux / macOS: `skill action=exec: skill://.venv/bin/python3 skill://scripts/<service>/<script>.py <parameters>` - Windows: `skill action=exec: skill://.venv/Scripts/python3.exe skill://scripts/<service>/<script>.py <parameters>` 4. Format the results and return to the user **Important:** - All scripts and environment check scripts are inside the skill package, **must be executed using `skill action=exec`, do not run them directly in the shell** - The venv is automatically created by the check_env script; on Linux/macOS Python is located at `.venv/bin/python3`, on Windows at `.venv/Scripts/python3.exe` - Do not execute scripts directly with `python3` - Do not read the script source code in the scripts directory; just follow the instructions in guide.md - Cache results when output is large - The `--project_id` parameter is optional; when not provided, it is automatically obtained via IAM API based on region --- ## Directory Structure The directory conventions are as follows (all paths are relative to the skill directory): 1. scripts/<resource_category>/ contains the corresponding Python query scripts. No need to read script contents; execute scripts according to the usage instructions in guide.md 2. references/<resource_category>/guide.md contains the corresponding resource usage guide 3. Each script is responsible for a single, clear query action 4. Each resource category maintains at least one guide.md to describe script capabilities, parameters, and usage --- ## Parameter Confirmation Before executing a query script, confirm the following parameters: | Parameter | Required | Description | |-----------|----------|-------------| | region | Yes | Huawei Cloud region, e.g., cn-north-4 | | --project_id | No | Project ID, automatically obtained when not provided | | --availability_zone | No | Availability zone, required for some resource queries | For other script-specific parameters, refer to `references/<service>/guide.md`. --- ## Output Format Query results are output in JSON format, containing the following common fields: - `total`: Total number of matched resources - `items`: Resource list, each resource contains key fields such as id, name, status, etc. - Specific fields vary by resource type; see individual guide.md for details --- ## Verification Method 1. Run the environment check script to confirm dependencies and credentials are available 2. Use the `-h` parameter to view script usage and confirm parameters are correct 3. Execute queries against known resources and compare with console data to verify result accuracy 4. Check that the returned `total` count is reasonable --- ## Best Practices 1. Narrow the query scope first (specify region, availability zone, etc.) to avoid returning too much data 2. Use `--help` to view the complete list of parameters supported by the script 3. Cache large query results locally to avoid repeated requests 4. When multiple resource information is needed, query in dependency order (e.g., query VPC first, then subnets) 5. When script execution fails, check environment variables and network connectivity first --- ## Reference Documentation - Service query script usage guides: `references/<service>/guide.md` --- ## Notes 1. This skill only provides read-only query capabilities; no write operations are performed 2. Do not output the values of HW_ACCESS_KEY, HW_SECRET_KEY, and other environment variables 3. All scripts must be executed via `skill action=exec`; do not run them directly in the shell 4. Do not guess script names; strictly execute according to the names in guide.md 5. The environment check script must be run before querying 6. When using temporary AK/SK, HW_SECURITY_TOKEN must be set
don't have the plugin yet? install it then click "run inline in claude" again.