Install
openclaw skills install @erickeyhu-hug/huawei-cloud-dcs-countCount the number of Huawei Cloud DCS (Distributed Cache Service) instances — managed Redis and Memcached — in a region and output the count. Returns the authoritative instance_num from the ListInstances API, so the reported number is always exact regardless of page size. Supports counting all instances, counting Redis-only (or Memcached-only) instances via the per-engine breakdown, filtering by status (RUNNING, FROZEN, etc.), and a per-status count breakdown via ListNumberOfInstancesInDifferentStatus. Read-only — never creates, modifies or deletes any resource. Use for Redis/DCS instance inventory, daily inspection, or cost review. Triggers include: count Redis, Redis count, DCS instance count, how many Redis instances, number of Redis instances, Redis数量, DCS实例数量, Redis实例数量, 查询Redis数量, 查询redis数量, 缓存实例数量, DCS数量, 统计Redis实例数, redis实例个数.
openclaw skills install @erickeyhu-hug/huawei-cloud-dcs-countThis skill counts Huawei Cloud DCS (Distributed Cache Service) instances — the managed Redis / Memcached service — in a region and outputs the number. It supports four counting modes:
ListNumberOfInstancesInDifferentStatus.RUNNING).ListNumberOfInstancesInDifferentStatus.The total count is taken from the authoritative instance_num field returned
by the list API, so the result is exact regardless of page size — no pagination
sum is needed for the count itself.
Architecture:
Agent → hcloud CLI (primary) → Huawei Cloud DCS API
↘ Python SDK (fallback) ↗
Applicable Scenarios:
references/cli-installation-guide.mdhuaweicloudsdkdcs package (SDK fallback)references/iam-policies.mdinstance_num from
each response| Purpose | Command |
|---|---|
| Count all DCS (Redis/Memcached) instances | hcloud DCS ListInstances --cli-region={region} --limit={limit} |
To return just the numeric count:
hcloud DCS ListInstances --cli-region={region} --limit={limit} | jq -r '.instance_num'
The ListNumberOfInstancesInDifferentStatus API returns per-engine status
statistics. Sum the redis.* status counters for the total Redis count:
hcloud DCS ListNumberOfInstancesInDifferentStatus --cli-region={region} | jq '[.redis | to_entries[].value | tonumber] | add'
For just the number of running Redis instances:
hcloud DCS ListNumberOfInstancesInDifferentStatus --cli-region={region} | jq -r '.redis.running_count'
| Purpose | Command |
|---|---|
| Count instances in a given status | hcloud DCS ListInstances --cli-region={region} --status={status} --limit={limit} |
To return just the numeric count for a status:
hcloud DCS ListInstances --cli-region={region} --status=RUNNING --limit={limit} | jq -r '.instance_num'
Valid {status} values include: RUNNING, CREATING, FROZEN, ERROR,
RESTARTING, EXTENDING, CLOSING, CLOSED, FLUSHING, UPGRADING,
RESTORING, MIGRATING.
| Purpose | Command |
|---|---|
| Count instances grouped by lifecycle status | hcloud DCS ListNumberOfInstancesInDifferentStatus --cli-region={region} |
To extract the number of running Redis instances:
hcloud DCS ListNumberOfInstancesInDifferentStatus --cli-region={region} | jq -r '.redis.running_count'
When the CLI is unavailable, use the Python SDK:
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkdcs.v2.region.dcs_region import DcsRegion
from huaweicloudsdkdcs.v2 import DcsClient, ListInstancesRequest
credentials = BasicCredentials().with_ak(os.getenv("HUAWEI_ACCESS_KEY")) \
.with_sk(os.getenv("HUAWEI_SECRET_KEY"))
client = DcsClient.new_builder() \
.with_credentials(credentials) \
.with_region(DcsRegion.value_of("{region}")) \
.build()
response = client.list_instances(ListInstancesRequest(limit={limit}))
print(response.instance_num)
Per-engine count via SDK:
from huaweicloudsdkdcs.v2 import ListNumberOfInstancesInDifferentStatusRequest
resp = client.list_number_of_instances_in_different_status(
ListNumberOfInstancesInDifferentStatusRequest())
redis_total = sum(int(v) for k, v in resp.redis.to_dict().items() if isinstance(v, int))
print(resp.redis.running_count)
A ready-to-run helper script is provided in scripts/count_dcs_instances.py.
| Parameter | Required | Description | Example |
|---|---|---|---|
{region} | Yes | Huawei Cloud region | cn-north-4 |
{limit} | No | Max records per page (1-1000, default 10); does not affect instance_num | 100 |
{status} | No | Instance status filter (see valid values above) | RUNNING |
{engine} | No | Engine filter for SDK helper (redis or memcached) | redis |
hcloud <Service> <Operation> --cli-region=<region> [--key=value ...]
| Feature | Description | Example |
|---|---|---|
| Service name | DCS | hcloud DCS ListInstances --cli-region={region} |
| Operation name | PascalCase | ListInstances, ListNumberOfInstancesInDifferentStatus |
| Region parameter | --cli-region=<value> | --cli-region=cn-north-4 |
| Simple parameter | --key=value | --limit=100 |