堆栈输出的 API 调用

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/heat/+spec/api-call-output

当前的编排 API 没有专门的调用来显示和列出堆栈输出。 此外,CLI 命令 output-show 和 output-list 需要调用 stack.get 来解析输出,这不正确。

问题描述

当前的 output-show 和 output-list CLI 命令仅在 heat 客户端中实现,它们需要请求 stack.get,这会从数据库加载堆栈并解析所有输出,这可能会减慢命令执行速度。 因此,需要添加获取所需输出而不解析所有输出的可能性。 可以通过在 heat 引擎中添加新方法来实现,这些方法将仅解析指定的输出。

提议的变更

变更涉及以下步骤

  • 为 heat 服务添加新功能,该功能将实现显示和列出堆栈输出。 此外,输出显示应该仅解析指定的输出;

  • 添加新的 API 调用来显示指定的堆栈输出和列出所有堆栈输出。

    显示堆栈输出的 API 将如下所示

    /stacks/{stack_name}/{stack_id}/outputs/{output_key}
    

    并且将返回以下响应

    {
        "output": {
            "output_key": <output_key>,
            "output_value": <output_value>,
            "description": <description>
        }
    }
    

    列出堆栈输出的 API 将如下所示

    /stacks/{stack_name}/{stack_id}/outputs/
    

    并且将返回以下响应

    {
        "outputs": [
            ...
        ]
    }
    
  • 更改 heat 客户端的 output-show 和 output-list,它们应该调用专门的 API 来显示输出和列出输出,而不是调用 stack.get 并从其响应中解析输出。

  • 将新的 API 添加到 API 参考文档 (项目 api-site)。

  • 在 tempest 和 heat 客户端功能测试中添加相应的 API 测试。

备选方案

实现

负责人

主要负责人

<prazumovsky> <ochuprykov>

里程碑

完成目标里程碑

mitaka-1

工作项

  • 为堆栈添加 heat 服务中的新方法来显示和列出输出。

  • 为堆栈添加新的 API 调用来显示和列出输出。

  • 使用新的 API 更改 output-show 和 output-list heat 客户端方法。

  • 将新的 API 添加到 API 参考文档。

  • 在 tempest 和 heat 客户端功能测试中添加相应的 API 测试。

依赖项