Vitrage 模板验证 API¶
https://blueprints.launchpad.net/vitrage/+spec/template-validate-api
用于验证模板的 API
问题描述¶
我们希望能够在将模板上传到 Vitrage 之前,通过 API 验证单个模板(或多个模板)。
提议的变更¶
创建 API 以验证 Vitrage 模板的内容和语法。
通过提供模板文件的完整路径,验证单个模板。
通过提供目录的完整路径,验证其中的所有模板文件。
模板验证 API 返回一个包含以下字段的结果
status - 验证成功/失败
file path - 模板文件的完整路径
description
message - 错误消息
状态码
REST API 影响¶
模板验证¶
验证 Vitrage 模板
POST /¶
头部¶
X-Auth-Token (字符串, 必需) - Keystone 认证令牌
Accept (字符串) - application/json
User-Agent (字符串)
Content-Type (字符串): application/json
路径参数¶
无。
查询参数¶
path (字符串(255), 必需) - 模板文件或目录的路径
请求体¶
无。
请求示例¶
POST /v1/template/?path=[file/dir path]
Host: 135.248.18.122:8999
User-Agent: keystoneauth1/2.3.0 python-requests/2.9.1 CPython/2.7.6
Content-Type: application/json
Accept: application/json
X-Auth-Token: 2b8882ba2ec44295bf300aecb2caa4f7
响应¶
状态码¶
200 - 确定
400 - 请求错误
响应体¶
返回一个 JSON 对象,该对象是一个结果列表。每个结果描述了单个模板文件的完整验证(语法和内容)。
响应示例¶
{
"results": [
{
"status": "validation failed",
"file path": "/tmp/templates/basic_no_meta.yaml",
"description": "Template syntax validation",
"message": "metadata is a mandatory section.",
"status code": 62
},
{
"status": "validation OK",
"file path": "/tmp/templates/basic.yaml",
"description": "Template validation",
"message": "Template validation is OK",
"status code": 4
}
]
}
实现¶
负责人¶
liat har-tal <liat.har-tal@nokia.com>
依赖项¶
依赖于模板验证蓝图
测试¶
还需要添加 Tempest 测试来测试
验证单个模板
验证多个模板
文档影响¶
新的 api 应该被记录
参考资料¶
无