⚠️ Security Execution Rules (Highest Priority):
This skill provides complete operational capabilities for Huawei Cloud Flexus L instances, covering instance lifecycle management, configuration modification, monitoring queries, and other core scenarios.
text
OpenClaw Agent → Flexus L Ops Skill → Huawei Cloud SDK → Huawei Cloud Services
│ │ │
│ │ ├─ Flexus L (instance/lifecycle/password)
│ │ └─ BSS (traffic query)
│ │
└─ scripts/ └─ huaweicloudsdk{core,ecs,bss,config}
Core Components:
Typical Problem Scenarios:
Trigger Keywords:
English KeywordChinese KeywordFlexus LFlexus LHuawei Cloud Ops华为云运维Query Instance查询实例Start/Stop/Reboot开机/关机/重启Reset Password重置密码Update Info修改信息Query Traffic查流量Traffic Package流量包List All Servers查所有服务器My Servers我的服务器有哪些List All Instances列出所有实例
bash
pip3 install huaweicloudsdkcore huaweicloudsdkecs huaweicloudsdkconfig huaweicloudsdkbss \
-i https://repo.huaweicloud.com/repository/pypi/simple
Different operations MUST use the corresponding script. Do NOT use other scripts' commands.
OperationMust Use ScriptCorrect Command❌ Wrong CommandQuery Flexus L instancesquery_instances.py``query_instances.py list``password_unified.py listQuery instance detailsquery_instances.py``query_instances.py detail -i <ID>``lifecycle.py listStart/Stop/Rebootlifecycle.py``lifecycle.py stop --instance-id <ID>``query_instances.py stopReset passwordpassword_unified.py``password_unified.py reset --instance-id <ID> --password <pwd>``lifecycle.py resetModify server infoupdate_server.py``update_server.py --instance-id <ID> --name <name>``query_instances.py update
After any lifecycle operation (start/stop/reboot), MUST query and report the final status to user.
Example feedback format:
text
✅ Operation completed
Instance: your-instance-name
Status: Running
Public IP: <IP>
This ensures the user knows the operation has completed successfully.
ScriptFunctionCommandsquery_instances.pyInstance query tool ⭐list, detail, free-resources, traffic, traffic-regionlifecycle.pyLifecycle managementstop, start, rebootpassword_unified.pyPassword resettest, list, resetupdate_server.pyModify server info--name, --description, --hostname
ScriptFunctionauth.pyAuthentication managementparams.pyParameter processing
See Execution Flow for operation steps.
Required Parameters:
OperationRequired ParametersDescriptionQuery Instance Detailsinstance-idInstance IDStart/Stop/Rebootinstance-idInstance ID (supports multiple)Reset Passwordinstance-id, passwordInstance ID + new passwordModify Infoinstance-id + (name/description/hostname)Instance ID + at least one modificationQuery Traffic by Regiontarget-regionTarget region codeQuery Traffic by IDtraffic_idsTraffic package ID list
Optional Parameters:
ParameterDescriptionRequiredDefaultExample--regionTarget region code (supports Chinese names)Nocn-north-4--region cn-north-4--akHuawei Cloud Access Key AK (can be temporary AK)NoHW_ACCESS_KEY env var--ak AXXX...--skHuawei Cloud Access Key SK (can be temporary SK)NoHW_SECRET_KEY env var--sk SXXX...--security-tokenSecurity token for temporary credentials (required when using temporary AK/SK)NoHW_SECURITY_TOKEN env var--security-token XXXX...
Region Parameter Support:
cn-north-4North-China-Beijing4Beijing4, Guangzhou, ShanghaiGet credentials from environment variables first, automatic check, no need to ask user.
Decision Logic:
Credential StatusNext Step✅ HW_ACCESS_KEY + HW_SECRET_KEY + HW_SECURITY_TOKEN existExecute script directly ( Recommended: Temporary AK/SK authentication, higher security level, pass --ak --sk --security-token parameters)✅ HW_ACCESS_KEY + HW_SECRET_KEY exist (no Token)Execute script directly (Permanent AK/SK authentication, pass --ak --sk parameters)❌ Environment variables not foundPrompt user to configure credentials (prefer environment variables, do NOT ask directly)❌ Authentication failedPrompt user to check or reconfigure credentials (prefer environment variables, do NOT ask directly)
⚠️ Security Recommendations:
Credential Missing or Authentication Failed Message:
text
❌ Credentials not configured or authentication failed
Please configure Huawei Cloud credentials. For security, we recommend using temporary AK/SK + Security Token method via environment variables:
- HW_ACCESS_KEY: Access Key AK
- HW_SECRET_KEY: Secret Key SK
- HW_SECURITY_TOKEN: Security Token (Recommended)
⚠️ Security Note: Temporary credentials are more secure, please prefer using them!
Note: We prioritize obtaining credentials from environment variables and NEVER ask users to input AK/SK directly. However, we still support parsing credentials if user voluntarily provides them via other methods (e.g., conversation input, config file).
After credentials are verified, ask user what operation to perform:
⚠️ Instance Validation (When user provides instance ID/name):
bash
python3 {baseDir}/scripts/query_instances.py free-resources --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
⚠️ Important Notes:
1. Instance Type Confirmation: Before executing any operation, remind user that this skill only supports Flexus L instances
2. Server ID Guidance: If user hasn't specified a server ID to operate on, guide user to query all instances or specific server
Query all instances across regions:
bash
python3 {baseDir}/scripts/query_instances.py list --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
Query instances in specific region:
bash
python3 {baseDir}/scripts/query_instances.py list --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
Required Parameters:
bash
python3 {baseDir}/scripts/query_instances.py detail --instance-id <ID> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
⚠️ Error Handling: If query fails with "server not found" and user didn't specify region, tell user to check region, instance type, and ID.
Required Parameters:
bash
python3 {baseDir}/scripts/lifecycle.py start --instance-id <ID1> --instance-id <ID2> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
⚠️ Dangerous Operation: Must Confirm Twice
🔒 Instance Type Restriction: This operation ONLY supports Flexus L instances, NOT all ECS instances. Must verify instance type before execution.
Required Parameters:
Must confirm twice before execution:
bash
python3 {baseDir}/scripts/lifecycle.py stop --instance-id <ID1> --instance-id <ID2> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
⚠️ Dangerous Operation: Must Confirm Twice
🔒 Instance Type Restriction: This operation ONLY supports Flexus L instances, NOT all ECS instances. Must verify instance type before execution.
Required Parameters:
Must confirm twice before execution:
bash
python3 {baseDir}/scripts/lifecycle.py reboot --instance-id <ID1> --instance-id <ID2> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
Required Parameters:
⚠️ Important: After resetting password, the instance MUST be rebooted for the new password to take effect.
Must confirm with user before reboot:
bash
python3 {baseDir}/scripts/password_unified.py reset --instance-id <ID> --password <new_password> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
Reboot Command:
bash
python3 {baseDir}/scripts/lifecycle.py reboot --instance-id <ID> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
Required Parameters:
bash
python3 {baseDir}/scripts/update_server.py --instance-id <ID> --name "new_name" --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
Option 1: Query by Traffic Package ID
Required Parameters:
⚠️ Special Note: Traffic package query uses Beijing-1 region (cn-north-1) by default, traffic package ID can be from any region
bash
python3 {baseDir}/scripts/query_instances.py traffic <traffic_id_1> <traffic_id_2> --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
Option 2: Query by Region ⭐ Recommended
Required Parameters:
bash
python3 {baseDir}/scripts/query_instances.py traffic-region --target-region cn-east-3 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
If user asks "how to find server ID" or "don't know server ID", first provide console lookup steps:
text
You can find server ID through the following ways:
Option 1: Via Huawei Cloud Console
1. Login to Huawei Cloud Console
2. Go to Flexus Application Server L instance list
3. Click instance name to enter details page
4. In basic information, click "Cloud Host VM"
5. View cloud host ID in cloud host information
6. Click copy button after ID to quickly copy
Help Document: https://support.huaweicloud.com/intl/zh-cn/flexusl_faq/faq_01_0003.html
Then append the following, offer automatic query option:
text
Option 2: I can also help query all servers under your account
Would you like me to list all instances under your account? I can query directly for you.
If user agrees, execute list all instances:
bash
python3 {baseDir}/scripts/query_instances.py list --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
Region CodeRegion Namecn-north-4North China-Beijing 4cn-north-1North China-Beijing 1cn-south-1South China-Guangzhoucn-east-3East China-Shanghai 1ap-southeast-1China-Hong Kongap-southeast-2Asia Pacific-Singapore
This skill supports automatic region name conversion, can use Chinese names or English codes:
bash
# Use region code
python3 {baseDir}/scripts/query_instances.py list --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
# Use region name (auto-convert)
python3 {baseDir}/scripts/query_instances.py list --region "North-China-Beijing4" --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
python3 {baseDir}/scripts/query_instances.py list --region "Beijing4" --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
python3 {baseDir}/scripts/query_instances.py list --region "Guangzhou" --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
⚠️ Traffic package query uses Beijing-1 region (cn-north-1) by default
Instance ID is the cloud host ID corresponding to Flexus L instance
Region defaults to cn-north-4 (Beijing 4)
AK/SK Security Requirements:
Stop/Reboot Security Requirements:
This skill includes the following reference documents: