堆栈资源过滤、排序和分页

https://blueprints.launchpad.net/heat/+spec/heat-stack-resource-search

增强给定堆栈中资源的过滤、排序和过滤能力。

问题描述

在较大的堆栈中,heat 默认允许 1000 个资源(max_resources_per_stack),并且该值是可配置的。如果提供分页、排序和基于某些资源属性的过滤功能,将有助于用户获取堆栈中的资源。

提议的变更

  • 分页

在 REST API 和 heat CLI 中添加以下参数以启用给定堆栈资源的分页

  • 排序

在 REST API 和 heat CLI 中添加以下参数以排序给定堆栈中的资源

  • 过滤

在 REST API 和 heat CLI 中添加以下参数以过滤资源

在给定的堆栈中

  • type: 有效的资源类型列表

  • status: 有效的资源状态列表

  • name: 资源名称

  • action: 有效的资源操作列表

  • uuid: 资源 uuid 列表

  • physical_resource_id: 物理资源 id 列表

为了支持 NOT 条件,列表中的每个条目都可以采用“ [not:]entry”的形式,例如“not:FAILED”

受影响的资源 REST API: /v1/​{tenant_id}​/stacks/​{stack_name}​/​{stack_id}​/resources ?<query parameters>

这里,为了提供过滤参数,将使用“filter”查询参数,其值类似于 CLI 中使用的 --filters 选项。

受影响的 Heat CLI: (仅显示此处的新参数) heat resource-list [-f <KEY1=VALUE1;KEY2=VALUE2...>] [-l <LIMIT>] [-m <ID>] [-s <KEY1:asc,KEY2,KEY3>]

可选参数

-f <KEY1=VALUE1;KEY2=VALUE2…>, –filters <KEY1=VALUE1;KEY2=VALUE2…> 应用于返回资源的过滤参数。可以多次指定此参数,或者一次指定,参数之间用分号分隔。

-l <LIMIT>, –limit <LIMIT> 限制返回的资源数量。-m <ID>, –marker <ID> 仅返回在给定资源 ID 之后的资源。

-s <KEY1:asc,KEY2,KEY3>, –sort <KEY1:asc,KEY2,KEY3> 以给定的优先级和排序方向对键进行排序。

备选方案

实现

负责人

主要负责人

Kanagaraj Manickam (kanagaraj-manickam)

里程碑

完成目标里程碑

liberty-1

工作项

  • 使用额外的分页、排序和过滤功能更新资源 REST API 控制器

  • 如解决方案部分所述更新 heat CLI

  • 添加所需的 RPC 和 DB api 以及所需的微版本。

  • 添加所需的额外测试用例。

  • 添加 CLI (python-heatclient) 和 REST API (api-sites) 的文档

依赖项