通过标签查询保护实例
功能介绍
使用标签过滤保护实例。
URI
- URI格式
POST /v1/{project_id}/protected-instances/resource_instances/action
- 参数说明
名称
是否必选
参数类型
说明
project_id
是
String
项目ID。
获取方法请参见获取项目ID。
请求消息
- 参数说明
名称
是否必选
参数类型
说明
offset
否
String
索引位置,偏移量(action为count时无此参数)从第一条数据偏移offset条数据后开始查询,如果action为filter默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。
limit
否
String
查询记录数(action为count时无此参数)如果action为filter默认为1000,limit最多为1000,不能为负数,最小值为1。
action
是
String
操作标识(仅限于filter,count):filter(过滤),count(查询总条数)。
如果是filter就按照过滤条件查询,如果是count,只需要返回总条数,禁止返回其他字段。
matches
否
Array of objects
搜索字段,key为要匹配的字段,如resource_name等。value为匹配的值。key为固定字典值,不能包含重复的key或不支持的key。
根据key的值确认是否需要模糊匹配,如resource_name默认为模糊搜索(不区分大小写),如果value为空字符串精确匹配。目前只有resource_name,后续再扩展。
详情请参见表2。
not_tags
否
Array of objects
不包含标签,最多包含10个key,每个key下面的value最多10个, 每个key对应的value可以为空数组但结构体不能缺失。Key不能重复,同一个key中values不能重复。结果返回不包含标签的资源列表,key之间是与的关系,key-value结构中value是或的关系。无过滤条件时返回全量数据。
详情请参见表1。
tags
否
Array of objects
包含标签,最多包含10个key,每个key下面的value最多10个,每个key对应的value可以为空数组但结构体不能缺失。Key不能重复,同一个key中values不能重复。结果返回包含所有标签的资源列表,key之间是与的关系,key-value结构中value是或的关系。无tag过滤条件时返回全量数据。
详情请参见表1。
tags_any
否
Array of objects
包含任意标签,最多包含10个key,每个key下面的value最多10个, 每个key对应的value可以为空数组但结构体不能缺失。Key不能重复,同一个key中values不能重复。结果返回包含标签的资源列表,key之间是或的关系,key-value结构中value是或的关系。无过滤条件时返回全量数据。
详情请参见表1。
not_tags_any
否
Array of objects
不包含任意标签,最多包含10个key,每个key下面的value最多10个, 每个key对应的value可以为空数组但结构体不能缺失。Key不能重复,同一个key中values不能重复。结果返回不包含标签的资源列表,key之间是或的关系,key-value结构中value是或的关系。无过滤条件时返回全量数据。
详情请参见表1。
- action为filter时请求样例
POST https://{Endpoint}/v1/{project_id}/protected-instances/resource_instances/action
{ "offset": "100", "limit": "100", "action": "filter", "matches": [ { "key": "resource_name", "value": "resource1" } ], "not_tags": [ { "key": "key1", "values": [ "*value1", "value2" ] } ], "tags": [ { "key": "key1", "values": [ "*value1", "value2" ] } ], "tags_any": [ { "key": "key1", "values": [ "value1", "value2" ] } ], "not_tags_any": [ { "key": "key1", "values": [ "value1", "value2" ] } ] }
- action为count时请求样例
POST https://{Endpoint}/v1/{project_id}/protected-instances/resource_instances/action
{ "action": "count", "not_tags": [ { "key": "key1", "values": [ "value1", "*value2" ] } ], "tags": [ { "key": "key1", "values": [ "value1", "value2" ] }, { "key": "key2", "values": [ "value1", "value2" ] } ], "tags_any": [ { "key": "key1", "values": [ "value1", "value2" ] } ], "not_tags_any": [ { "key": "key1", "values": [ "value1", "value2" ] } ], "matches": [ { "key": "resource_name", "value": "resource1" } ] }
响应
- 要素说明
名称
是否必选
参数类型
说明
resources
是
Array of objects
返回的保护实例列表。
详情参见表3。
total_count
是
Integer
总记录数。
该值不受过滤条件的影响。
表3 resource字段数据结构说明 名称
是否必选
参数类型
说明
resource_id
是
String
保护实例ID。
resource_name
是
String
保护实例名称,没有名称时默认为空字符串。
resource_detail
是
Object
保护实例详情。
详情参见表4。
tags
是
Array of objects
标签列表,没有标签默认为空数组。
详情请参见表8。
表4 protected_instances字段说明 参数名称
参数类型
说明
id
String
保护实例的ID。
name
String
保护实例的名称。
description
String
保护实例的描述。
server_group_id
String
保护组的ID。
status
String
保护实例的状态。
具体请参见保护实例状态。
progress
Integer
保护实例的同步进度。
单位:百分比(%)。
source_server
String
生产站点云服务器ID。
target_server
String
容灾站点云服务器ID。
created_at
String
创建时间。
默认格式为:"yyyy-MM-dd HH:mm:ss.SSS",例:"2019-04-01 12:00:00.000"。
updated_at
String
更新时间。
默认格式为:"yyyy-MM-dd HH:mm:ss.SSS",例:"2019-04-01 12:00:00.000"。
priority_station
String
标识保护实例所在保护组的当前生产站点可用区。
- source:表示当前生产站点可用区为保护组source_availability_zone的值。
- target:表示当前生产站点可用区为保护组的target_availability_zone的值。
attachment
Array of objects
挂载的复制对列表。
字段说明见表2。
tags
Array of objects
标签列表。
字段说明见表3。
metadata
Object
保护实例元数据信息。
具体请参见表4。
表5 attachment字段说明 参数名称
参数类型
说明
replication
String
复制对ID。
device
String
挂载点。
表6 tags字段说明 参数说明
参数类型
说明
key
String
标签的键。
value
String
标签的值。
表7 metadata字段说明 参数名称
参数类型
说明
__system__frozen
String
保护实例元数据中资源冻结的字段。
- true:表示资源被冻结。
- 空:表示资源没有被冻结。
- 响应样例
{ "resources": [ { "resource_id": "d5a00c87-6b82-414a-a09e-59c37fff44d0", "resource_name": "Protected-Instance-c801", "resource_detail": { "id": "d5a00c87-6b82-414a-a09e-59c37fff44d0", "name": "Protected-Instance-c801", "description": null, "server_group_id": "525fbd01-d4d1-44fc-b341-6d734bcce245", "status": "protected", "progress": 100, "source_server": "73aff1d7-48d2-494e-a9f1-a7d3ffad31ff", "target_server": "0f6bc56b-a3bb-4707-a4fb-ccd4db5fac59", "created_at": "2019-05-28 08:17:50.066", "updated_at": "2019-05-30 01:40:00.74", "priority_station": "source", "attachment": [ { "replication": "42e2016e-b96e-4f75-aa57-1377a9cb45e4", "device": "/dev/vda" } ], "tags": [ { "key": "GH1111113fffffKdddddd", "value": "aaappppppppddddddd" } ], "metadata": {} }, "tags": [ { "key": "GH1111113fffffKdddddd", "value": "aaappppppppddddddd" } ] } ], "total_count": 1 }
- action为count时响应样例
{ "total_count": 1000 }
返回值
- 正常
返回值
说明
200
OK
- 异常
返回值
说明
400
参数非法
401
鉴权失败
403
权限不足
404
资源未找到
500
系统异常