--- 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//` (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//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//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//