文档首页> 存储容灾服务 SDRS> API参考> API> 标签管理> 通过标签查询保护实例
更新时间:2023-11-21 GMT+08:00

通过标签查询保护实例

功能介绍

使用标签过滤保护实例。

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

    表1 tag字段数据结构说明

    名称

    是否必选

    参数类型

    说明

    key

    String

    键。最大长度127个unicode字符。 key不能为空。key不能为空或者空字符串,不能为空格,使用之前先trim前后半角空格。

    values

    Array of strings

    值列表。每个值最大长度255个unicode字符,使用之前先trim前后半角空格。

    *为系统保留字符,如果value是以*开头表示按照*后面的值全模糊匹配。不能只传入“*”。

    如果values为空列表,则表示any_value(查询任意value)。value之间为或的关系。

    表2 match字段数据结构说明

    名称

    是否必选

    参数类型

    说明

    key

    String

    键。

    目前限定为resource_name,后续扩展。

    value

    String

    值。

    每个值最大长度255个unicode字符。

  • 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:表示资源被冻结。
    • 空:表示资源没有被冻结。
    表8 resource_tag字段数据结构说明

    名称

    是否必选

    参数类型

    说明

    key

    String

    键。同一资源的key值不能重复。

    最大长度为36个UNICODE字符。key不能为空,不允许为空字符串。不能包含以下字符:非打印字符ASCII(0-31)特殊字符“*”,“<”,“>”,“\”,“=”,“,”,“|”,“/”键。不能为空。对于同一资源键值唯一。

    value

    String

    值。

    最大长度为43个UNICODE字符。value不能为空,可以空字符串。不能包含以下字符:非打印字符ASCII(0-31)特殊字符“*”,“<”,“>”,“\”,“=”,“,”,“|”,“/”。

  • 响应样例

    action为filter时响应样例

    {
        "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

    系统异常