- 全局错误码
- API
- 数据类型
- Production Object
- Application Object
- Deploy Settings
- Host object
- Resource Request
- DNS
- Ip Address Object
- User object
- role object
- external navigator object
- auth token object
- cdn refresh task
- jump server log
- dns operation
- host operation
- app operation
- module authorized operation
- resource authorized operation
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
page | Number | 否 | 1 | 页码 |
page_size | Number | 否 | 10 | 页面大小 |
接口描述: 获取应用列表 接口地址: /applications/ 请求方法: GET
请求参数
参数名 | 类型 | 必须 | 说明 |
---|---|---|---|
name | String | 否 | 应用名 |
full_path | String | 否 | 绝对路径 |
response_persons | Array | 否 | 负责人id列表 |
has_parent | Number | 否 | 是否有父应用, 0 - 无, 1 - 有. |
user | String | 否 | 用户名 |
role | String | 否 | 角色名 |
page_number | Number | 否 | 页码 |
page_size | Number | 否 | 页面大小 |
name与full_path的区别, name 表示应用在整个应用拓扑结构链中的某个节点的命名, 而full_path则用来表示整个应用拓扑链路. 举个例子
假设应用A有一个子应用B,B又包含子应用C, 则应用C 的name为C, full_path 为A.B.C
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Application Object |
请求示例
GET /applications/
ContentType: 'application/json'
响应示例
{
'next': '/application/?page=2',
'prev': null,
'count': 100,
'results': [
{'id': 1,
'name': 'applicationA',
'has_child': true,
'parent_app': 1,
'available_actions': {
'view': true,
'deploy': true,
'check_deploy_task': true,
'edit': true,
'delete': true,
'reboot': true,
'view_log': true,
'view_monitor': true
}
},
{'id': 2,
'name': 'applicationB',
'has_child': true,
'parent_app': 2,
'available_actions': {
'view': true,
'deploy': true,
'check_deploy_task': true,
'edit': true,
'delete': true,
'reboot': true,
'view_log': true,
'view_monitor': true
}
},
]
}
接口描述: 更新应用属性 接口地址: /applications/{id}/ 请求方法: PATCH 请求参数
属性 | 类型 | 必选 | 说明 |
---|---|---|---|
name | String | 否 | 应用名称 |
description | String | 否 | 描述 |
application_type | String | 否 | 应用类型 |
run_users | String | 否 | 运行用户 |
directory | String | 否 | 部署路径 |
startup_cmd | String | 否 | 启动命令 |
stop_cmd | String | 否 | 停止命令 |
stdout_path | String | 否 | 标准输出路径 |
stderr_path | String | 否 | 错误输出路径 |
pid_path | String | 否 | pid文件路径 |
parent_app | Number or Null | 否 | 父应用ID |
child_apps | Array of child app id | 否 | 子应用id列表 |
required_apps | Array of required app id | 否 | 依赖应用id列表 |
response_person | Array of response person id | 否 | 负责人id列表 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 返回信息 |
请求示例
PATCH /application/{id}/
ContentType: 'application/json'
{
'name': 'newAppName',
'description': 'some description',
'application_type': 1,
'run_user': 'root',
'directory': '/data/newAppName',
'startup_cmd': 'service newAppName start',
'stop_cmd': 'service newAppName stop',
'stdout_path': '/data/log/newAppName/stdout',
'stderr_path': '/data/log/newAppName/stderr',
'pid_path': '/var/run/newAppName.pid',
'parent_app': 1,
'child_apps': [4, 5, 6, 7],
'required_apps': [11, 12],
'response_person': [1, 2, 3]
}
响应示例
{
'message': "success",
}
接口描述: 更新应用属性 接口地址: /applications/{id}/ 请求方法: DELETE
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 返回信息 |
请求示例
DELETE /applications/{id}/
响应示例
{
'message': 'success'
}
接口描述: 更新应用属性 接口地址: /applications/get-by-users/ 请求方法: POST
请求参数
Array of [user object](#user object)
返回内容
属性 | 类型 | 说明 |
---|---|---|
user_id | Number | 用户id |
applications | Array | Array of application object |
请求示例
POST /applications/get-by-users/
ContentType: 'application/json'
[{'id': 1}, ['id': 2]]
响应示例
[
{'user_id': 1,
'applications': [
{
'name': 'newAppName',
'description': 'some description',
'application_type': 1,
'run_user': 'root',
'directory': '/data/newAppName',
'startup_cmd': 'service newAppName start',
'stop_cmd': 'service newAppName stop',
'stdout_path': '/data/log/newAppName/stdout',
'stderr_path': '/data/log/newAppName/stderr',
'pid_path': '/var/run/newAppName.pid',
'parent_app': 1,
'child_apps': [4, 5, 6, 7],
'required_apps': [11, 12],
'response_person': [1, 2, 3],
'available_actions': {
'view_app': true,
'edit_app': false,
'delete_app': true,
'deploy_app': false,
'review_app_deploy_task': true,
'restart_app': true,
'view_app_log': true,
'view_app_monitor': true
}
},
...
],
}
]
####获取应用实例 接口描述: 获取应用实例列表 接口地址: /application/{id}/instances/ 请求方法: GET
请求参数
参数名 | 类型 | 必选 | 说明 |
---|
page | Number | 否 | 页码
page_number | Number | 否 | 页面大小
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of App Instance |
App Instance
属性 | 类型 | 说明 |
---|---|---|
id | Number | 实例Id |
hostname | String | 实例所在主机 |
status | String | 实例状态, 值为['restarting','running', 'stopped','updating', 'reverting'] 之一 |
version | String | 实例版本号 |
请求示例
GET /application/{id}/instances/
ContentType: 'application/json'
响应示例
{
'next': '/application/{id}/instances/?page=2',
'prev': null,
'count': 100,
'results': [
{
'id': 1,
'hostname': 'hostA',
'status': 'running',
'version': '2018-04-35'
},
{
'id': 2,
'hostname': 'hostB',
'status': 'running',
'version': '2018-04-35'
}
]
}
####添加应用实例 接口描述: 添加应用实例 接口地址: /application/{id}/instances/ 请求方法: POST
请求参数
Array of bellow
参数名 | 类型 | 必选 | 说明 |
---|---|---|---|
hostid | Number | 是 | 实例所属主机id |
hostname | String | 否 | 实例所属主机名 |
返回内容 Array of App Instance obj
请求示例
POST /application/{id}/instances/
ContentType: 'application/json'
[
{ 'hostid': 1},
{ 'hostid': 2}
]
返回示例
[
{ 'id': 3, 'hostid': 1, 'hostname': 'hostA', status: 'stopped'},
{ 'id': 4, 'hostid': 2, 'hostname': 'hostB', status: 'stopped'}
]
接口描述: 删除应用实例 接口地址: /application/{id}/instances/ 请求方法: DELETE
请求参数
Array of bellow
参数名 | 类型 | 必选 | 说明 |
---|---|---|---|
id | Number | 是 | 实例id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 返回信息 |
请求示例
DELETE /application/{:id}/instances/
ContentType: 'application/json'
[
{ 'id': 1},
{ 'id': 2}
]
返回示例
{
'message': 'sucess',
}
接口描述: 获取应用负责人信息 接口地址: /application/{id}/response-person/ 请求方法: GET
请求参数
参考 公共请求参数
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of App response person |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 负责人id |
name | String | 姓名 |
String | 邮箱 | |
type | String | 负责人类型, 可选值为['dev', 'ops', 'qa', 'pm'] |
mobile | Number | 手机号码 |
请求示例
GET /application/{id}/response-person/
ContentType: 'application/json'
响应示例
{
'next': '/application/{id}/response-person/?page=2',
'prev': null,
'count': 100,
'results': [
{
'id': 1,
'name': '张三'
'mobile': 18834584567,
'email': 'san.zhang@gmail.com'
'type': 'pm'
},
{
'id': 2,
'name': '李四'
'mobile': 18834584567,
'email': 'si.li@gmail.com'
'type': 'dev'
},
]
}
接口描述: 添加应用负责人信息 接口地址: /application/{id}/response-person/ 请求方法: POST
请求参数
Array of bellow
参数名 | 类型 | 必选 | 说明 |
---|---|---|---|
id | Number | 是 | 负责人ID |
type | String | 是 | 负责人类型, 可选值为['dev', 'ops', 'qa', 'pm'] |
返回内容
Array of App response person
请求示例
POST /application/{id}/response-person/
ContentType: 'application/json'
[
{'id': 1, 'type': 'pm'},
{'id': 2, 'type': 'dev'},
]
响应示例
[
{
'id': 1,
'name': '张三'
'mobile': 18834584567,
'type': 'pm',
'email': 'san.zhang@gmail.com'
},
{
'id': 2,
'name': '李四'
'mobile': 18834584567,
'type': 'dev',
'email': 'si.li@gmail.com'
},
]
接口描述: 删除应用负责人 接口地址: /application/{id}/response-person/ 请求方法: DELETE
请求参数
Array of bellow
参数名 | 类型 | 必选 | 说明 |
---|---|---|---|
id | Number | 是 | 负责人id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 返回信息 |
请求示例
DELETE /application/{id}/response-person/
ContentType: 'application/json'
[
{ 'id': 1 },
{ 'id': 2 },
]
响应示例
{
'message': 'success',
}
接口描述: 获取应用日志 接口地址: /application/{:id}/instance/{:id}/log/ 请求方法: GET
请求参数
注意日志读取模式
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
log_type | String | 是 | 'stdout' | 日志类型, 可选值为['stdout', 'error']. |
mode | String | 是 | 'bytes' | 可选值为['lines',' bytes']. |
from_position | Number | 否 | 0 | 从文件开头 from_position 字节位置读取block_size 大小文件内容, 不能与from_last_position参数一起使用, 只在'bytes'模式下生效. |
from_last_position | Number | 否 | 0 | 从文件结尾 from_last_position字节位置读取 block_size 大小的文件内容, 不能与from_position 参数一起使用, 只在 bytes 模式下生效 |
block_size | Nunber | 否 | 8192 | 每次读取大小, 只在'bytes'模式下生效. |
lines | Number | 否 | 1000 | 从文件开始获取lines行的日志内容, 只在'lines'模式下生效. |
from_lines | Number | 否 | 无 | 从文件开始from_lines行之后的位置读取 lines行的文件内容,只在'lines'模式下生效. |
latest_lines | Number | 否 | 1000 | 获取最近latest_lines行的文件内容,只在'lines'模式下生效. |
latest_lines_offset | Number | 否 | 无 | 从文件尾部之前latest_lines_offset行的位置向前获取 latest_lines行的文件内容, 只在'lines'模式下生效. |
返回内容
属性 | 类型 | 说明 |
---|---|---|
content | String | 日志内容 |
length | Number | 日志内容大小 |
total_length | Number | 日志文件大小 |
position | Number | 当前位置 |
lines | Number | 当前行数, 只在'lines'模式下返回 |
请求示例
GET /application/{:id}/instance/{:id}/log/?log_type=error
返回示例
{
'content': 'some erro log text'.
'length': 48,
'total_length': 1000,
'position': 48,
}
接口描述: 获取子应用信息 接口地址: /application/{:id}/child-apps/ 请求方法: GET
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 应用名 |
full_name | String | 否 | 无 | 应用绝对路径 |
user | String | 否 | 无 | 用户名 |
role | String | 否 | 无 | 角色名 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Application obj |
请求示例
GET /application/{:id}/child-apps/
ContentType: 'application/json'
响应示例
{
'next': "/application/{:id}/child-apps/?page=2"
'prev': null,
'count': 100,
'results': [
{'id': 1,
'name': 'applicationA',
'has_child': true,
'parent_app': 1,
'available_actions': {
'view': true,
'deploy': true,
'check_deploy_task': true,
'edit': true,
'delete': true,
'reboot': true,
'view_log': true,
'view_monitor': true
}
},
{'id': 2,
'name': 'applicationB',
'has_child': true,
'parent_app': 2,
'available_actions': {
'view': true,
'deploy': true,
'check_deploy_task': true,
'edit': true,
'delete': true,
'reboot': true,
'view_log': true,
'view_monitor': true
}
},
]
}
接口描述: 添加子应用 接口地址: /application/{:id}/child-apps/ 请求方法: POST
添加子应用并不会创建新的应用对象,只是新增应用父子依赖映射关系.
请求参数
Array of bellow object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | String | 是 | 无 | 子应用id |
返回内容
Array of [Application obj] (#application-object)
请求示例
POST /application/{:id}/child-apps/
ContentType: 'application/json'
[ {'id': 1, 'id': 2}]
响应示例
[
{'id': 1,
'name': 'applicationA',
'has_child': true,
'parent_app': 0,
},
{'id': 2,
'name': 'applicationB',
'has_child': true,
'parent_app': 0,
},
...
]
接口描述: 删除子应用 接口地址: /application/{:id}/child-apps/ 请求方法: DELETE
删除子应用并不会删除子应用对象,只是解除子应用与当前应用的父子映射关系 请求参数 以下对象列表
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | String | 是 | 无 | 子应用id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 消息 |
请求示例
DELETE /application/{:id}/child-apps/
ContentType: 'application/json'
[ {'id': 1, 'id': 2}]
响应示例
{
'message': 'success',
}
接口描述: 获取依赖应用 接口地址: /application/{:id}/required-apps/ 请求方法: GET
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 应用名 |
full_name | String | 否 | 无 | 应用绝对路径 |
user | String | 否 | 无 | 用户名 |
role | String | 否 | 无 | 角色名 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 产品总条数 |
results | Array | Array of Application object |
请求示例
GET /application/{:id}/required-apps/
ContentType: 'application/json'
响应示例
{
'next': '/application/{:id}/required-apps/?page=2',
'prev': null,
'count': 2,
'results': [
{'id': 1,
'name': 'applicationA',
'has_child': true,
'parent_app': 1,
'available_actions': {
'view': true,
'deploy': true,
'check_deploy_task': true,
'edit': true,
'delete': true,
'reboot': true,
'view_log': true,
'view_monitor': true
}
},
{'id': 2,
'name': 'applicationB',
'has_child': true,
'parent_app': 2,
'available_actions': {
'view': true,
'deploy': true,
'check_deploy_task': true,
'edit': true,
'delete': true,
'reboot': true,
'view_log': true,
'view_monitor': true
}
},
]
}
接口描述: 添加依赖应用 接口地址: /application/{:id}/required-apps/ 请求方法: POST
添加依赖应用并不会创建新的应用对象,只是新增应用兄弟依赖映射关系.
请求参数
Array of bellow object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | String | 是 | 无 | 依赖应用id |
返回内容 Array of Application object
请求示例
POST /application/{:id}/required-apps/
ContentType: 'application/json'
[ {'id': 1, 'id': 2}]
响应示例
[
{'id': 1,
'name': 'applicationA',
'has_child': true,
'parent_app': 0,
},
{'id': 2,
'name': 'applicationB',
'has_child': true,
'parent_app': 0,
},
...
]
接口描述: 删除依赖应用 接口地址: /application/{:id}/required-apps/ 请求方法: DELETE
删除依赖应用并非删除依赖应用对象,只是解除兄弟依赖映射关系.
请求参数
Array of bellow object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | String | 是 | 无 | 依赖应用id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 消息 |
请求示例
DELETE /application/{:id}/required-apps/
ContentType: 'application/json'
[ {'id': 1, 'id': 2}
响应示例
{
'message': 'success',
}
应用依赖关系需要通过 添加依赖应用 接口进行操作
接口描述: 获取被依赖应用 接口地址: /application/{:id}/required-by-apps/ 请求方法: GET
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 应用名 |
full_name | String | 否 | 无 | 应用绝对路径 |
user | String | 否 | 无 | 用户名 |
role | String | 否 | 无 | 角色名 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 产品总条数 |
results | Array | Array of Application object |
请求示例
GET /application/{:id}/required-by-apps/
ContentType: 'application/json'
响应示例
{
'next': '/application/{:id}/required-by-apps/?page=2',
'prev': null,
'count': 1000,
'results': [
{'id': 1,
'name': 'applicationA',
'has_child': true,
'parent_app': 1,
'available_actions': {
'view': true,
'deploy': true,
'check_deploy_task': true,
'edit': true,
'delete': true,
'reboot': true,
'view_log': true,
'view_monitor': true
}
},
{'id': 2,
'name': 'applicationB',
'has_child': true,
'parent_app': 2,
'available_actions': {
'view': true,
'deploy': true,
'check_deploy_task': true,
'edit': true,
'delete': true,
'reboot': true,
'view_log': true,
'view_monitor': true
}
},
]
}
接口描述: 获取应用发布配置 接口地址: /application/{:id}/deploy-settings/ 请求方法: GET
请求参数 无
返回内容
请求示例
GET /application/{:id}/deploy-settings/
ContentType: 'application/json
响应示例
{
'enabled': true,
'application': 1,
'template': {
'id': 1,
'name': 'test-deploy-template'
},
'repository': {
'type': 'GIT'
'url': 'http://git.example.com/test',
'branch': 'release',
'credential': {
'type': 'PASSWORD',
'username': 'username',
'password': 'pasword'
}
},
'deploy_path': '/path/to/deploy/path',
'script_running_user': 'work',
'timeout': 120,
'keep_backups': 5,
'lifecycle_hooks': {
'running_user': 'work',
'global_pre_exec': null,
'pre_exec': {
'script': {
'id': 1,
'name': 'pre exec script',
}
},
'post_exec': {
'script': {
'id': 2,
'name': 'post exec script',
}
},
'glboal_post_exec': null,
}
}
接口描述: 更新发布配置 接口地址: /application/{:id}/deploy-settings/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
applications | Array | 否 | 无 | 关联应用Id列表 |
repository | Object | 否 | 无 | 应用源码仓库, 可能的类型为 |
deploy_path | String | 否 | 无 | 发布路径 |
timeout | Number | 否 | 120 | 发布任务执行超时时间 |
keep_backups | Number | 否 | 5 | 保留最近备份数 |
lifecycle_hooks | Array | 否 | 无 | deploy task lifecycle hooks |
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
url | String | 否 | 无 | ftp地址 |
credential | credential id | password crendential | ssh private key credential | 否 | 无 | 登录凭据 |
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
url | String | 否 | 无 | git仓库地址 |
branch | String | 否 | 无 | git仓库分支 |
credential | credential id | password crendential | ssh private key credential | 否 | 无 | 登录凭据 |
返回内容 Application deploy template
请求示例
PATCH /application/{:id}/deploy-settings/
ContentType: 'application/json'
{
'repository': {
'type': 'GIT',
'url': 'http://git.example.com/test',
'branch': 'release',
'credential': 1,
},
'deploy_path': '/path/to/deploy/path',
'timeout': 120,
'keep_backups': 5,
'lifecycle_hooks': {
'running_user': 'work',
'global_pre_exec': null,
'pre_exec': {
'script': {
'id': 1,
}
},
'post_exec': {
'script': {
'id': 2,
}
},
'glboal_post_exec': null,
}
}
响应示例
{
'id': 1
'enabled': true,
'creator': 'test_user',
'repository': {
'type': 'GIT',
'url': 'http://git.example.com/test',
'branch': 'release',
'credential': {
'type': 'PASSWORD'
'username': 'username',
'password': 'pasword'
}
},
'deploy_path': '/path/to/deploy/path',
'timeout': 120,
'keep_backups': 5,
'lifecycle_hooks': {
'running_user': 'work',
'global_pre_exec': null,
'pre_exec': {
'script': {
'id': 1,
'name': 'pre exec script',
'language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja',
}
},
'post_exec': {
'script': {
'id': 2,
'name': 'post exec script',
‘language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja'
}
},
'glboal_post_exec': null,
}
}
接口描述: 链接发布模板 接口地址: /application/{:id}/deploy-settings/template/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 说明 |
---|---|---|---|
id | Number | 是 | 发布模板id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 消息 |
请求示例
POST /application/{:id}/deploy-settings/template/
ContentType: 'application/json'
{'id': 1}
响应示例
{
'message': 'success'
}
接口描述: 移除发布模板 接口地址: /application/{:id}/deploy-settings/template/ 请求方法: DELETE
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | Number | 是 | 无 | 发布模板id |
clean | Bool | 否 | false | 是否清理发布配置 |
移除模板并清理发布配置时, 将clean设置为true即可
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 消息 |
请求示例
POST /application/{id}/deploy-settings/template/
ContentType: 'application/json'
{'id': 1}
响应示例
{
'message': 'success'
}
接口描述: 获取发布任务 接口地址: /application/deploy-tasks/ 请求方法: GET
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|
接口描述: 新建发布任务 接口地址: /application/deploy-tasks/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
application_id | Number | 是 | 无 | 应用id |
version | Number | 是 | 无 | 发布版本号 |
description | String | 是 | 无 | 上线描述 |
level | String | 是 | 无 | 任务级别 可选值 [ S, A, B, C, I ] |
package_source | String | 是 | 无 | 发布的文件路径 |
planned_exec_time | Number | 是 | 无 | 计划发布时间戳 |
upgrade_checklist | String | 否 | 无 | 上线checklist |
upgrade_steps | String | 否 | 无 | 更新执行步骤 |
rollback_steps | String | 否 | 无 | 回滚步骤 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 消息 |
请求示例
POST /application/deploy-tasks/
ContentType: 'application/json'
{
'application_id': 1,
'version': '20180408-120000'
'planned_exec_time': 1523177609,
'deploy_source': '/data/app/20180408/root.war',
'level': 'A',
'upgrade_checklist': '检查日志',
'upgrade_steps': '直接发布',
'rollback_steps': '直接回滚'
}
响应示例
{
'message': 'success'
}
接口描述: 批准任务 接口地址: /application/deploy-tasks/{id}/actions/approve/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 消息 |
请求示例
POST /application/deploy-tasks/{id}/actions/approve/
ContentType: 'application/json'
响应示例
{
'message': 'success'
}
接口描述: 拒绝任务 接口地址: /application/deploy-tasks/{id}/actions/reject/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 消息 |
请求示例
POST /application/deploy-tasks/{id}/actions/reject/
ContentType: 'application/json'
响应示例
{
'message': 'success'
}
接口描述: 开始任务 接口地址: /application/deploy-tasks/{id}/actions/start/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 消息 |
请求示例
POST /application/deploy-tasks/{id}/actions/start/
ContentType: 'application/json'
响应示例
{
'message': 'success'
}
接口描述: 关闭任务 接口地址: /application/deploy-tasks/{id}/actions/close/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 消息 |
请求示例
POST /application/deploy-tasks/{id}/actions/close/
ContentType: 'application/json'
响应示例
{
'message': 'success'
}
接口描述: 委托任务 接口地址: /application/deploy-tasks/{id}/actions/delegate/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
user_id | Number | 是 | 无 | 被委托人用户ID |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 消息 |
请求示例
POST /application/deploy-tasks/{id}/actions/delegate/
ContentType: 'application/json'
{'user_id': 1}
响应示例
{
'message': 'success'
}
接口描述: 新建子发布任务 接口地址: /application/deploy-tasks/{id}/sub-upgrade-tasks/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
instances | Object | 是 | 无 | Array of instance要更新的应用实例id列表 |
update_source | String | 是 | 无 | 更新源文件路径 |
version | String | 是 | 无 | 更新版本号 |
timeout | Number | 否 | 120 | 子任务超时时间 |
instance object
属性 | 类型 | 说明 |
---|---|---|
id | Number | 要更新的应用实例id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
task_id | String | 子任务ID |
task_output | String | 子任务标准输出的 websocket 地址 |
请求示例
POST /application/deploy-tasks/{id}/sub-upgrade-tasks/
ContentType: 'application/json'
{
'instances': [
{'id': 1}, {'id': 2}, {'id': 3}
],
'update_source': '/application/{id}/root.war',
'version': '20180414-121540'
}
响应示例
{
'task_id': '342443434'
'task_output': 'ws://ws.example.com/channel/xxx'
}
接口描述: 新建子回滚任务 接口地址: /application/deploy-tasks/{id}/sub-revert-tasks/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
instances | Object | 是 | 无 | Array of instance要回滚的应用实例id列表 |
version | String | 是 | 无 | 回滚的版本号 |
timeout | Number | 否 | 120 | 子任务超时时间 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
task_id | String | 子任务ID |
task_output | String | 子任务标准输出的 websocket 地址 |
请求示例
POST /application/deploy-tasks/{id}/sub-revert-tasks/
ContentType: 'application/json'
{
'instances': [
{'id': 1}, {'id': 2}, {'id': 3}
],
'version': '20180414-121540'
}
响应示例
{
'task_id': '342443434'
'task_output': 'ws://ws.example.com/channel/xxx'
}
接口描述: 获取产品线列表 接口地址: /productions/ 请求方法: GET
请求参数
其他参数请参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 产品线名称 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 产品总条数 |
results | Array | Array of Production Object |
请求示例
GET /productions/
响应示例
{
'count': 100,
'prev': null,
'next': '/productions/?page=2',
'results': [
{'id': 1, 'name': 'production A', 'description': 'desc of production A'},
...
]
}
接口描述: 获取产品线应用 接口地址: /productions/{id}/applications/ 请求方法: GET
请求参数
其他参数请参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 产品线名称 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Application Object |
请求示例
GET /productions/{id}/applications/
响应示例
{
'count': 100,
'prev': null,
'next': '/productions/{id}/applications/?page=2',
'results': [
{'id': 1, 'name': 'app-B', 'full_name': 'appA.app-B', 'has_child': true, 'parent_app': '2'},
....
]
}
接口描述: 添加产品线应用 接口地址: /productions/{id}/applications/ 请求方法: POST
请求参数
请求参数为以下对象列表
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | Number | 是 | 无 | 应用id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /productions/{id}/applications/
ContentType: 'application/json'
[{'id': 1}, {'id': 2}]
响应示例
{
'message': 'success'
}
接口描述: 删除产品线应用 接口地址: /productions/{id}/applications/ 请求方法: DELETE
请求参数
请求参数为以下对象列表
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | Number | 是 | 无 | 应用id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
DELETE /productions/{id}/applications/
ContentType: 'application/json'
[{'id': 1}, {'id': 2}]
响应示例
{
'message': 'success'
}
接口描述: 获取主机列表 接口地址: /hosts/ 请求方法: GET
请求参数
其他参数请参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 主机名 |
host_type | String | 否 | 无 | 主机类型 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Host Object |
请求示例
GET /hosts/
ContentType: 'application/json'
响应示例
{
'count': 100,
'prev': null,
'next': '/hosts/?page=2',
'results': [{
'id': 1,
'name': 'host A',
'host_type': 'ALI_ECS',
'location': 'hangzhou',
'status': 'attached',
'os_status': 'running',
'os_type': 'centos-7',
'description': 'desription of host A',
'ip_address': [
{'address': '10.10.10.2',
'netmask': '255.255.0.0',
'network': '10.10.0.0',
'is_virtual': false,
'addr_type': 'PRIVATE'},
...
],
'cpu': 4,
'memory': 8192,
}]
}
接口描述: 获取主机初始化任务列表 接口地址: /hosts/init-tasks/ 请求方法: GET
请求参数
其他参数请参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
hostname | String | 否 | 无 | 任务相关主机名 |
creator | String | 否 | 无 | 任务创建者 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Host init task |
请求示例
GET /hosts/init-tasks/
ContentType: 'application/json'
响应示例
{
'count': 100,
'prev': null,
'next': '/hosts/init-tasks/?page=2',
'results': [
{'id': 1,
'creator': 'foo',
'hosts': [
{'id': 1,
'name': 'host-A'},
{'id': 2,
'name': 'host-B'},
...
],
'opts': {
'zabbix_groups': ['host_group_A', 'host_group_B'],
'zabbix_templates': ['templateA', 'templateB']
},
'created_time': '2018-04-18T15:38:40+08:00',
'finished_time': ' 2018-04-18T15:40:40+08:00',
'status': 'running',},
...
]
}
接口描述: 创建主机初始化任务 接口地址: /hosts/init-tasks/ 请求方法: POST
请求参数
其他参数请参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
hosts | Array | 是 | 无 | Array of Host |
opts | Object | 是 | 无 | Host init task options |
返回内容
请求示例
POST /hosts/init-tasks/
ContentType: 'application/json'
{'hosts': [
{'id': 1},
{'id': 2},
...
],
'opts': {
'zabbix_groups': ['host_group_A', 'host_group_B'],
'zabbix_templates': ['templateA', 'templateB']
},
}
响应示例
{'id': 1,
'creator': 'foo',
'hosts': [
{'id': 1,
'name': 'host-A'},
{'id': 2,
'name': 'host-B'},
...
],
'opts': {
'zabbix_groups': ['host_group_A', 'host_group_B'],
'zabbix_templates': ['templateA', 'templateB']
},
'created_time': ' 2018-04-18T15:38:40+08:00',
'finished_time': ' 2018-04-18T15:40:40+08:00',
'status': 'running',
}
接口描述: 获取主机关联应用 接口地址: /hosts/{id}/applications/ 请求方法: GET
请求参数
参考 公共请求参数
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Application |
请求示例
GET /hosts/{id}/applications/
响应示例
{
'count': 100,
'next': '/hosts/{id}/applications/?page=2',
'prev': null,
'results': [
{'id': 1,
'name': 'application-A',
'full_name': 'parent.application-A'},
...
]
}
接口描述: 获取主机启动任务 接口地址: /hosts/start-tasks/ 请求方法: GET
请求参数
参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
creator | String | 否 | 无 | 创建者 |
time__gt | String | 否 | 无 | 大于时间 |
time__lt | String | 否 | 无 | 小于时间 |
status | String | 否 | 无 | 任务状态, 可选值['running', 'finished', 'failed'] |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Host Start Task |
请求示例
GET /hosts/start-tasks/
响应示例
[
'count': 100,
'next': '/hosts/start-tasks/?page=2',
'prev': null,
'results': [
{'id': '13045745',
'hosts': [
{'id': 1, 'name': 'host-A'},
{'id': 2, 'name': 'host-B'}
],
'creator': 'test_user',
'created_time': '2018-04-18T15:38:40+08:00',
'finished_time': '2018-04-18T15:40:40+08:00',
'status': 'finished',}
]
]
接口描述: 启动主机 接口地址: /hosts/{id}/actions/start/ 请求方法: POST
请求参数 无
正确返回
属性 | 类型 | 说明 |
---|---|---|
task_id | String | 主机启动任务Id |
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 500 | saltstack 调用失败 |
30002 | 500 | 主机正在运行中 |
30003 | 500 | 重启失败 |
30004 | 500 | 未知错误 |
请求示例
POST /hosts/{id}/actions/start/
ContentType: 'application/json'
正确响应示例
{'task_id': '310034904'}
错误响应示例
{'error_code': '30002',
'message': '主机正在运行中.'}
接口描述: 批量启动主机 接口地址: /hosts/start-tasks/ 请求方法: POST
请求参数
请求参数为下列对象列表
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
host_id | Number | 是 | 无 | 主机id |
正确返回
属性 | 类型 | 说明 |
---|---|---|
task_id | String | 主机启动任务Id |
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 500 | saltstack 调用失败 |
30002 | 500 | 主机正在运行中 |
30003 | 500 | 重启失败 |
30004 | 500 | 未知错误 |
请求示例
POST /hosts/start-tasks/
ContentType: 'application/json'
[{'host_id': 1},
{'host_id': 2},
...]
正确响应示例
{'task_id': '310034904'}
错误响应示例
{'error_code': '30002',
'message': '主机正在运行中.'}
接口描述: 获取主机停止任务 接口地址: /hosts/stop-tasks/ 请求方法: GET
请求参数
参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
creator | String | 否 | 无 | 创建者 |
time__gt | String | 否 | 无 | 大于时间 |
time__lt | String | 否 | 无 | 小于时间 |
status | String | 否 | 无 | 任务状态, 可选值['running', 'finished', 'failed'] |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Host Stop Task |
请求示例
GET /hosts/stop-tasks/
响应示例
[
'count': 100,
'next': '/hosts/stop-tasks/?page=2',
'prev': null,
'results': [
{'id': '13045745',
'hosts': [
{'id': 1, 'name': 'host-A'},
{'id': 2, 'name': 'host-B'}
],
'creator': 'test_user',
'created_time': '2018-04-18T15:38:40+08:00',
'finished_time': '2018-04-18T15:40:40+08:00',
'status': 'finished',}
]
]
接口描述: 停止主机 接口地址: /hosts/{id}/actions/stop/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
force | Bool | 否 | false | 是否强制关闭 |
正确返回
属性 | 类型 | 说明 |
---|---|---|
task_id | String | 主机停止任务Id |
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 500 | saltstack 调用失败 |
30002 | 500 | cloudstack API调用失败 |
30003 | 500 | 腾讯云API调用失败 |
30004 | 500 | 腾讯云黑石物理机API调用失败 |
请求示例
POST /hosts/{id}/actions/stop/
ContentType: 'application/json'
{'force': true}
正确响应示例
{'task_id': '310034904'}
错误响应示例
{'error_code': '30002',
'message': 'cloudstack API 调用失败.'}
接口描述: 批量停止主机 接口地址: /hosts/stop-tasks/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
host_id | Number | 是 | 无 | 主机id |
force | Bool | 否 | false | 是否强制关闭 |
正确返回
属性 | 类型 | 说明 |
---|---|---|
task_id | String | 主机停止任务Id |
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 500 | saltstack 调用失败 |
30002 | 500 | cloudstack API调用失败 |
30003 | 500 | 腾讯云API调用失败 |
30004 | 500 | 腾讯云黑石物理机API调用失败 |
请求示例
POST /hosts/stop-tasks/
ContentType: 'application/json'
[{'host_id': 1, 'force': true},
{'host_id': 2, 'force': false},
...]
正确响应示例
{'task_id': '310034904'}
错误响应示例
{'error_code': '30002',
'message': 'cloudstack API 调用失败.'}
接口描述: 获取主机重启任务 接口地址: /hosts/restart-tasks/ 请求方法: GET
请求参数
参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
creator | String | 否 | 无 | 创建者 |
time__gt | String | 否 | 无 | 大于时间 |
time__lt | String | 否 | 无 | 小于时间 |
status | String | 否 | 无 | 任务状态, 可选值['running', 'finished', 'failed'] |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Host Restart Task |
请求示例
GET /hosts/restart-tasks/
响应示例
[
'count': 100,
'next': '/hosts/restart-tasks/?page=2',
'prev': null,
'results': [
{'id': '13045745',
'hosts': [
{'id': 1, 'name': 'host-A'},
{'id': 2, 'name': 'host-B'}
],
'creator': 'test_user',
'created_time': '2018-04-18T15:38:40+08:00',
'finished_time': '2018-04-18T15:40:40+08:00',
'status': 'finished',}
]
]
接口描述: 新建重启主机任务 接口地址: /hosts/{id}/actions/restart/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
force | Bool | 否 | false | 是否强制重启 |
正确返回
属性 | 类型 | 说明 |
---|---|---|
task_id | String | 主机停止任务Id |
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 500 | saltstack 调用失败 |
30002 | 500 | cloudstack API调用失败 |
30003 | 500 | 腾讯云API调用失败 |
30004 | 500 | 腾讯云黑石物理机API调用失败 |
请求示例
POST /hosts/{id}/actions/restart/
ContentType: 'application/json'
{'force': true}
正确响应示例
{'task_id': '310034904'}
错误响应示例
{'error_code': '30002',
'message': 'cloudstack API 调用失败.'}
接口描述: 批量重启主机 接口地址: /hosts/restart-tasks/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
host_id | Number | 是 | 无 | 主机id |
force | Bool | 否 | false | 是否强制关闭 |
正确返回
属性 | 类型 | 说明 |
---|---|---|
task_id | String | 主机停止任务Id |
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 500 | saltstack 调用失败 |
30002 | 500 | cloudstack API调用失败 |
30003 | 500 | 腾讯云API调用失败 |
30004 | 500 | 腾讯云黑石物理机API调用失败 |
请求示例
POST /hosts/restart-tasks/
ContentType: 'application/json'
[{'host_id': 1, 'force': true},
{'host_id': 2, 'force': false},
...]
正确响应示例
{'task_id': '310034904'}
错误响应示例
{'error_code': '30002',
'message': 'cloudstack API 调用失败.'}
接口描述: 更改主机状态 接口地址: /hosts/{id}/actions/change-status/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
status | string | 是 | 无 | 可选值 ['attached', 'inited', 'raw', 'offline'] |
正确返回
属性 | 类型 | 说明 |
---|---|---|
task_id | String | 主机停止任务Id |
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 500 | saltstack 调用失败 |
30002 | 500 | cloudstack API调用失败 |
30003 | 500 | 腾讯云API调用失败 |
30004 | 500 | 腾讯云黑石物理机API调用失败 |
请求示例
POST /hosts/{id}/actions/change-status/
ContentType: 'application/json'
{'status': 'raw'}
正确响应示例
{'task_id': '310034904'}
错误响应示例
{'error_code': '30002',
'message': 'cloudstack API 调用失败.'}
参考 更改主机状态
请求示例
POST /hosts/{id}/actions/change-status/
ContentType: 'application/json'
{'status': 'offline'}
正确响应示例
{'task_id': '310034904'}
错误响应示例
{'error_code': '30002',
'message': 'cloudstack API 调用失败.'}
接口描述: 更改主机zabbix配置 接口地址: /hosts/{id}/actions/change-zabbix-opts/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
zabbix_groups | Array | 否 | 无 | Array of zabbix group name |
zabbix_templates | Array | 否 | 无 | Array of zabbix template name |
正确返回
属性 | 类型 | 说明 |
---|---|---|
message | String | success |
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 500 | zabbix API 调用失败 |
30002 | 500 | 模板不存在 |
30003 | 500 | zabbix group 不存在 |
请求示例
POST /hosts/{id}/actions/change-zabbix-opts/
ContentType: 'application/json'
{'zabbix_groups': [
'host_group_A','host_group_B'],
'zabbix_templates': [
'templateA', 'templateB']}
正确响应示例
{'message': 'success'}
错误响应示例
{'error_code': 30002, 'message': '模板 "templateB" 不存在'}
接口描述: 获取服务器申请列表 接口地址: /resource-request/hosts/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
creator | String | 否 | 无 | 申请人 |
time__gt | String | 否 | 无 | 大于时间 |
time__lt | String | 否 | 无 | 小于时间 |
status | String | 否 | 无 | 申请单状态, 可选值['approved', 'wait_review', 'rejected', 'closed', 'finished'] |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Host request |
请求示例
GET /resource-request/hosts/
响应示例
{
'count': 100,
'next': '/resource-request/hosts/?page=2',
'prev': null,
'results': [
{'id': 1,
'creator': 'test_user',
'created_time': '2018-04-18T15:38:40+08:00',
'purpose': '服务扩容',
'expect_delivery_days': '7',
'expiration': 'never',
'login_users': [
{'id': 1}, {'id': 2}
],
'shiped_packackages': [
{'id': 3}, {'id': 4}
],
'required_hosts': [
{'name': 'host-a',
'specs': {
'cpu_core': 4,
'mem': 8192,
'storage': 100000},
'os': 'centos-7.1',
'type': 'TECENT_CVM',
{'name': 'host-b',
'specs': {
'cpu_core': 4,
'mem': 8192,
'storage': 100000}
'os': 'centos-7.1',
'type': 'TECENT_CVM'},
...
],
},
...
]
}
接口描述: 新建服务器申请 接口地址: /resource-request/hosts/ 请求方法: POST
请求参数
参数 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
purpose | String | 是 | 无 | 用途 |
expect_delivery_days | String | 否 | 7 | 期望交付天数 |
expiration | String | 否 | 'never' | 主机是否过期 |
login_users | Array | 否 | 无 | Array of User |
shipped_packages | Array | 否 | 无 | Array of Shipped Package |
required_hosts | Array | 否 | 无 | Array of Requested Host |
返回内容 Host Request
请求示例
POST /resource-request/hosts/
ContentType: 'application/json'
{
'purpose': '服务扩容',
'expect_delivery_days': '7',
'expiration': 'never',
'login_users': [
{'id': 1}, {'id': 2}
],
'shiped_packackages': [
{'id': 3}, {'id': 4}
],
'required_hosts': [
{'name': 'host-A',
'specs': {
'cpu_core': 4,
'mem': 8192,
'storage': 100000},
'os': 'centos-7.1',
'type': 'TECENT_CVM',
{'name': 'host-b',
'specs': {
'cpu_core': 4,
'mem': 8192,
'storage': 100000}
'os': 'centos-7.1',
'type': 'TECENT_CVM'},
...
],
}
接口描述: 获取服务器申请详情 接口地址: /resource-request/hosts/{id}/ 请求方法: GET
请求参数 无
返回内容 Host Request
请求示例
GET /resource-request/hosts/{id}/
响应示例
{
'id': 1
'purpose': '服务扩容',
'expect_delivery_days': '7',
'created_time': ''2018-04-18T15:38:40+08:00',
'expiration': 'never',
'login_users': [
{'id': 1}, {'id': 2}
],
'shiped_packackages': [
{'id': 3}, {'id': 4}
],
'required_hosts': [
{'name': 'host-A',
'specs': {
'cpu_core': 4,
'mem': 8192,
'storage': 100000},
'os': 'centos-7.1',
'type': 'TECENT_CVM',
{'name': 'host-b',
'specs': {
'cpu_core': 4,
'mem': 8192,
'storage': 100000}
'os': 'centos-7.1',
'type': 'TECENT_CVM'},
...
],
}
接口描述: 更新服务器申请 接口地址: /resource-request/hosts/{id}/ 请求方法: PATCH
请求参数
参数 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
purpose | String | 否 | 无 | 用途 |
expect_delivery_days | String | 否 | 无 | 期望交付天数 |
expiration | String | 否 | 无 | 主机是否过期 |
users_with_log_perm | Array | 否 | 无 | Array of User |
shipped_packages | Array | 否 | 无 | Array of Shipped Package |
required_hosts | Array | 否 | 无 | Array of Requested Host |
返回内容 Host Request
请求示例
PATCH /resource-request/hosts/{id}/
ContentType: 'application/json'
{
'purpose': '服务扩容',
'expect_delivery_days': '7',
'expiration': 'never',
'login_users': [
{'id': 1}, {'id': 2}
],
'shiped_packackages': [
{'id': 3}, {'id': 4}
],
'required_hosts': [
{'name': 'host-A',
'specs': {
'cpu_core': 4,
'mem': 8192,
'storage': 100000},
'os': 'centos-7.1',
'type': 'TECENT_CVM',
{'name': 'host-b',
'specs': {
'cpu_core': 4,
'mem': 8192,
'storage': 100000}
'os': 'centos-7.1',
'type': 'TECENT_CVM'},
...
],
},
正确响应
{
'id': 1,
'creator': 'test_user',
'created_time': '2018-04-18T15:38:40+08:00',
'purpose': '服务扩容',
'expect_delivery_days': '7',
'expiration': 'never',
'login_users': [
{'id': 1}, {'id': 2}
],
'shiped_packackages': [
{'id': 3}, {'id': 4}
],
'required_hosts': [
{'name': 'host-A',
'specs': {
'cpu_core': 4,
'mem': 8192,
'storage': 100000},
'os': 'centos-7.1',
'type': 'TECENT_CVM',
{'name': 'host-b',
'specs': {
'cpu_core': 4,
'mem': 8192,
'storage': 100000}
'os': 'centos-7.1',
'type': 'TECENT_CVM'},
...
],
}
接口描述: 新建服务器申请 接口地址: /resource-request/hosts/{id}/actions/approve/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | success - 成功 |
请求示例
POST /resource-request/hosts/{id}/actions/approve/
响应示例
{'message': 'success'}
接口描述: 拒绝服务器申请 接口地址: /resource-request/hosts/{id}/actions/reject/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | success - 成功 |
请求示例
POST /resource-request/hosts/{id}/actions/reject/
响应示例
{'message': 'success'}
接口描述: 关闭服务器申请 接口地址: /resource-request/hosts/{id}/actions/close/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | success - 成功 |
请求示例
POST /resource-request/hosts/{id}/actions/close/
响应示例
{'message': 'success'}
接口描述: 获取域名申请列表 接口地址: /resource-request/domains/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
creator | String | 否 | 无 | 申请人 |
time__gt | String | 否 | 无 | 大于时间 |
time__lt | String | 否 | 无 | 小于时间 |
status | String | 否 | 无 | 任务状态, 可选值['approved', 'wait_review', 'rejected', 'closed', 'finished'] |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Domain Request |
请求示例
GET /resource-request/domains/
响应示例
{
'count': 100,
'next': '/resource-request/domains/?page=2',
'prev': null,
'results': [
{
'id': '1',
'creator': 'test_user',
'created_time': ''2018-04-18T15:38:40+08:00',
'status': 'wait_review',
'records': [
{'record': 'record-a.example.com',
'value' '10.10.10.10',
'type': 'A'},
{'record': 'record-b.example.com',
'value' '10.10.10.11',
'type': 'A'},
]},
...
]
}
接口描述: 新建域名申请 接口地址: /resource-request/domains/ 请求方法: POST
*请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
associated_app | Array | 否 | 无 | Array of appliation id |
records | Array | 是 | 无 | Array of Requested Dns Record |
返回内容
请求示例
POST /resource-request/domains/
ContentType: 'application/json'
{'records': [
{'record': 'record-a.example.com',
'value': '10.10.10.10',
'type': 'A'},
{'record': 'record-b.example.com',
'value': '10.10.10.11',
'type': 'A'},
]}
响应示例
{
'id': '1',
'creator': 'test_user',
'status': 'wait_review',
'created_time': ''2018-04-18T15:38:40+08:00',
'records': [
{'record': 'record-a.example.com',
'value' '10.10.10.10',
'type': 'A'},
{'record': 'record-b.example.com',
'value' '10.10.10.11',
'type': 'A'},
]
}
接口描述: 获取域名申请详情 接口地址: /resource-request/domains/{id}/ 请求方法: GET
请求参数 无
返回内容 Domian request
请求示例
GET /resource-request/domains/{id}/
响应示例
{
'id': '1',
'creator': 'test_user',
'status': 'wait_review',
'created_time': ''2018-04-18T15:38:40+08:00',
'records': [
{'record': 'record-a.example.com',
'value' '10.10.10.10',
'type': 'A'},
{'record': 'record-b.example.com',
'value' '10.10.10.11',
'type': 'A'},
]
}
接口描述: 更改域名申请 接口地址: /resource-request/domains/{id}/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
associated_app | Array | 否 | 无 | Array of appliation id |
records | Array | 是 | 无 | Array of Requested Dns Record |
返回内容
请求示例
PATCH /resource-request/domains/{id}/
ContentType: 'application/json'
{'records': [
{'record': 'record-a.example.com',
'value': '10.10.10.10',
'type': 'A'},
{'record': 'record-b.example.com',
'value': '10.10.10.11',
'type': 'A'},
]}
响应示例
{
'id': '1',
'creator': 'test_user',
'status': 'wait_review',
'created_time': ''2018-04-18T15:38:40+08:00',
'records': [
{'record': 'record-a.example.com',
'value' '10.10.10.10',
'type': 'A'},
{'record': 'record-b.example.com',
'value' '10.10.10.11',
'type': 'A'},
]
}
接口描述: 批准域名申请 接口地址: /resource-request/domains/{id}/actions/approve/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /resource-request/domains/{id}/actions/approve/
响应示例
{"message": "success"}
接口描述: 拒绝域名申请 接口地址: /resource-request/domains/{id}/actions/reject/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /resource-request/domains/{id}/actions/reject/
响应示例
{"message": "success"}
接口描述: 关闭域名申请 接口地址: /resource-request/domains/{id}/actions/close/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /resource-request/domains/{id}/actions/close/
响应示例
{"message": "success"}
接口描述: 获取ssl证书申请列表 接口地址: /resource-request/ssl-certificates/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
creator | String | 否 | 无 | 申请人 |
time__gt | String | 否 | 无 | 大于时间 |
time__lt | String | 否 | 无 | 小于时间 |
domain | String | 否 | 无 | 证书域名 |
certificate_type | String | 否 | 无 | 证书类型,可选值 ['wizard', 'normal']
|
status | String | 否 | 无 | 任务状态, 可选值['approved', 'wait_review', 'rejected', 'closed', 'finished'] |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of SSL certificate request |
请求示例
GET /resource-request/ssl-certificates/
响应示例
{
'count': 100,
'next': '/resource-request/ssl-certificates/?page=2',
'prev': null,
'results': [
{
'id': '1',
'creator': 'test_user',
'created_time': ''2018-04-18T15:38:40+08:00',
'status': 'wait_review',
'domain': 'example.com',
'certificate_type': 'wizard'
'expect_delivery_days': '7',
'purpose': 'description of purpose'
},
...
]
}
接口描述: 新建ssl证书申请 接口地址: /resource-request/ssl-certificates/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
domain | String | 是 | 无 | 证书域名 |
certificate_type | String | 是 | 无 | 证书类型,可选值 ['wizard', 'normal']
|
associate_app | Array | 否 | 无 | Array of application id, 证书关联应用id列表 |
purpose | String | 否 | 无 | 证书用途 |
请求示例
POST /resource-request/ssl-certificates/
ContentType: 'application/json'
{
'domain': 'example.com',
'certificate_type': 'wizard',
'expect_delivery_days': '7',
'purpose': 'description of purpose'
}
响应示例
{
'id': 1,
'creator': 'test_user',
'created_time': ''2018-04-18T15:38:40+08:00',
'status': 'wait_review',
'domain': 'example.com',
'certificate_type': 'wizard',
'expect_delivery_days': '7',
'purpose': 'description of purpose'
}
接口描述: 获取ssl证书申请详情 接口地址: /resource-request/ssl-certificates/{id}/ 请求方法: GET
请求参数 无
请求示例
GET /resource-request/ssl-certificates/{id}/
响应示例
{
'id': 1,
'creator': 'test_user',
'created_time': ''2018-04-18T15:38:40+08:00',
'status': 'wait_review',
'domain': 'example.com',
'certificate_type': 'wizard',
'expect_delivery_days': '7',
'purpose': 'description of purpose'
}
接口描述: 更新ssl证书申请 接口地址: /resource-request/ssl-certificates/{id}/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
domain | String | 否 | 无 | 证书域名 |
certificate_type | String | 否 | 无 | 证书类型,可选值 ['wizard', 'normal']
|
associate_app | Array | 否 | 无 | Array of application id, 证书关联应用id列表 |
purpose | String | 否 | 无 | 证书用途 |
expect_delivery_days | String | 否 | 7 | 期望交付天数 |
请求示例
PATCH /resource-request/ssl-certificates/{id}/
ContentType: 'application/json'
{
'domain': 'example.com',
'certificate_type': 'wizard',
'expect_delivery_days': '7',
'purpose': 'description of purpose'
}
响应示例
{
'id': 1,
'creator': 'test_user',
'created_time': '2018-04-18T15:38:40+08:00',
'status': 'wait_review',
'domain': 'example.com',
'certificate_type': 'wizard',
'expect_delivery_days': '7',
'purpose': 'description of purpose'
}
接口描述: 同意ssl证书申请 接口地址: /resource-request/ssl-certificates/{id}/actions/approve/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
错误内容
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | 类型 | 说明 |
---|---|---|
30001 | Number | 申请单已批准 |
30002 | String | 申请单已关闭 |
30003 | String | 申请单已完成 |
请求示例
POST /resource-request/ssl-certificates/{id}/actions/approve/
响应示例
{"message": "success"}
错误响应示例
{"error_code": 30001, "message": "申请单已批准"}
接口描述: 拒绝ssl证书申请 接口地址: /resource-request/ssl-certificates/{id}/actions/reject/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
错误内容
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | 类型 | 说明 |
---|---|---|
30001 | Number | 申请单已批准 |
30002 | String | 申请单已关闭 |
30002 | String | 申请单已完成 |
请求示例
POST /resource-request/ssl-certificates/{id}/actions/reject/
响应示例
{"message": "success"}
错误响应示例
{"error_code": 30001, "message": "申请单已批准"}
接口描述: 关闭ssl证书申请 接口地址: /resource-request/ssl-certificates/{id}/actions/close/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
属性 | 类型 | 说明 |
---|---|---|
30001 | Number | 申请单已批准 |
30002 | String | 申请单已关闭 |
30002 | String | 申请单已完成 |
请求示例
POST /resource-request/ssl-certificates/{id}/actions/close/
响应示例
{"message": "success"}
错误响应示例
{"error_code": 30001, "message": "申请单已批准"}
接口描述: 获取服务器列表 接口地址: /dns-services/ 请求方法: POST
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
creator | String | 否 | 无 | 申请人 |
name | String | 否 | 无 | 名称 |
description | String | 否 | 无 | 描述 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of DNS Server |
请求示例
GET /dns-services/
响应示例
{
'count': 100,
'next': '/dns-services/?page=2',
'prev': null,
'results': [
{
'id': '1',
'name': 'server A',
'creator': 'test user',
'created_time': '2018-04-18T15:38:40+08:00'
'type': 'bind',
'api_endpoint': 'http://127.0.0.1:8053/'
},
...
]
}
接口描述: 添加域名服务器 接口地址: /dns-services/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 是 | 无 | 服务器名称 |
type | String | 是 | 'bind' | 可选值 ['bind', 'powerdns'] |
api_endpoint | String | 是 | 无 | dns服务器api接口地址 |
description | String | 是 | 无 | 描述 |
请求示例
POST /dns-services/
ContentType: 'application/json'
{
'name': 'server A',
'type': 'bind',
'api_endpoint': 'http://127.0.0.1:8053/''
'description': 'desc of server'
}
响应示例
{
'id': '1',
'name': 'server A',
'creator': 'test user',
'created_time': '2018-04-18T15:38:40+08:00'
'type': 'bind',
'api_endpoint': 'http://127.0.0.1:8053/'
}
接口描述: 获取服务器域名列表 接口地址: /dns-services/{id}/domains/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 域名 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of DNS domain |
请求示例
GET /dns-services/{id}/domains/
响应示例
{
'count': 100,
'next': '/dns-services/{id}/domains/?page=2',
'prev': null,
'results': [
{
'id': '1',
'name': 'domain-a.com',
},
{
'id': '2',
'name': 'domain-b.com',
},
...
]
}
接口描述: 添加域名 接口地址: /dns-services/{id}/domains/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 是 | 无 | 域名 |
返回内容 DNS domain
请求示例
POST /dns-services/{id}/domains/
ContentType: 'application/json'
{
'name': 'domain-a.com',
}
响应示例
{
'id': '1',
'name': 'domain-a.com',
}
接口描述: 添加域名 接口地址: /dns-services/{id}/domains/{id}/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 域名 |
返回内容 DNS domain
请求示例
PATCH /dns-services/{id}/domains/{id}/
响应示例
{
'id': '1',
'name': 'domain-a.com',
}
接口描述: 删除域名 接口地址: /dns-services/{id}/domains/ 请求方法: DELETE
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
DELETE /dns-services/{id}/domains/{id}
响应示例
{
"message": "success"
}
接口描述: 获取域名记录 接口地址: /dns-services/{id}/domains/{id}/records/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 记录名 |
value | String | 否 | 无 | 记录值 |
type | String | 否 | 无 | 记录类型 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of domain record |
请求示例
GET /dns-services/{id}/domains/{id}/records/
响应示例
{
'count': 100,
'next': '/dns-services/{id}/domains/{id}/records/?page=2',
'prev': null,
'results': [
{
'id': '1',
'name': 'record-a.domain-a.com',
'value': '10.10.10.10',
'type': 'A'
},
{
'id': '2',
'name': 'record-b.domain-a.com',
'value': '10.10.10.11',
'type': 'A'
},
...
]
}
接口描述: 添加域名记录 接口地址: /dns-services/{id}/domains/{id}/records/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 是 | 无 | 记录名 |
value | String | 是 | 无 | 记录值 |
type | String | 是 | 无 | 记录类型 |
返回内容 domain record
请求示例
POST /dns-services/{id}/domains/{id}/records/
ContentType: 'application/json'
{
'name': 'record-a.domain-a.com',
'value': '10.10.10.10',
'type': 'A'
}
响应示例
{
'id': '1',
'name': 'record-a.domain-a.com',
'value': '10.10.10.10',
'type': 'A'
}
接口描述: 更新域名记录 接口地址: /dns-services/{id}/domains/{id}/records/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 记录名 |
value | String | 否 | 无 | 记录值 |
type | String | 否 | 无 | 记录类型 |
返回内容 domain record
请求示例
PATCH /dns-services/{id}/domains/{id}/records/
ContentType: 'application/json'
{
'name': 'record-a.domain-a.com',
'value': '10.10.10.10',
'type': 'A'
}
响应示例
{
'id': '1',
'name': 'record-a.domain-a.com',
'value': '10.10.10.10',
'type': 'A'
}
接口描述: 删除域名记录 接口地址: /dns-services/{id}/domains/{id}/records/ 请求方法: DELETE
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
DELETE /dns-services/{id}/domains/{id}/{records}/{id}/
响应示例
{
"message": "success"
}
接口描述: 禁用域名记录 接口地址: /dns-services/{id}/domains/{id}/records/actions/disable/ 请求方法: POST
请求参数
Array of below
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | Number | 是 | 无 | 域名记录ID |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /dns-services/{id}/domains/{id}/records/actions/disable/
ContentType: 'application/json'
[{'id': 1}, {'id': 2}, ...]
响应示例
{
"message": "success"
}
接口描述: 获取发布模板列表 接口地址: /application/deploy-templates/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 模板名 |
creator | String | 否 | 无 | 创建人 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Application deploy template |
请求示例
GET /application/deploy-templates/
响应示例
{
'count': 100,
'next': '/application/deploy-templates/?page=2',
'prev': null,
'results': [
{
'id': 1
'enabled': true,
'applictions': [{'id': 1}, {'id': 2}],
'creator': 'test_user',
'repository': {
'type': 'GIT',
'url': 'http://git.example.com/test',
'branch': 'release',
'credential': {
'type': 'PASSWORD'
'username': 'username',
'password': 'pasword'
}
},
'deploy_path': '/path/to/deploy/path',
'timeout': 120,
'keep_backups': 5,
'lifecycle_hooks': {
'running_user': 'work',
'global_pre_exec': null,
'pre_exec': {
'script': {
'id': 1,
'name': 'pre exec script',
'language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja',
}
},
'post_exec': {
'script': {
'id': 2,
'name': 'post exec script',
‘language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja'
}
},
'glboal_post_exec': null,
}
},
...
]
}
接口描述: 新建发布模板 接口地址: /application/deploy-templates/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 是 | 无 | 模板名 |
applications | Array | 否 | 无 | 关联应用Id列表 |
repository | Object | 是 | 无 | 应用源码仓库, 可能的类型为 |
deploy_path | String | 是 | 无 | 发布路径 |
timeout | Number | 否 | 120 | 发布任务执行超时时间 |
keep_backups | Number | 否 | 5 | 保留最近备份数 |
lifecycle_hooks | Array | 否 | 无 | deploy task lifecycle hooks |
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
url | String | 是 | 无 | ftp地址 |
credential | credential id | password crendential | ssh private key credential | 是 | 无 | 登录凭据 |
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
url | String | 是 | 无 | git仓库地址 |
branch | String | 是 | 无 | git仓库分支 |
credential | credential id | password crendential | ssh private key credential | 是 | 无 | 登录凭据 |
返回内容 Application deploy template
请求示例
POST /application/deploy-templates/
ContentType: 'application/json'
{
'repository': {
'type': 'GIT',
'url': 'http://git.example.com/test',
'branch': 'release',
'credential': 1,
},
'deploy_path': '/path/to/deploy/path',
'timeout': 120,
'keep_backups': 5,
'lifecycle_hooks': {
'running_user': 'work',
'global_pre_exec': null,
'pre_exec': {
'script': {
'id': 1,
}
},
'post_exec': {
'script': {
'id': 2,
}
},
'glboal_post_exec': null,
}
}
响应示例
{
'id': 1
'enabled': true,
'creator': 'test_user',
'repository': {
'type': 'GIT',
'url': 'http://git.example.com/test',
'branch': 'release',
'credential': {
'type': 'PASSWORD'
'username': 'username',
'password': 'pasword'
}
},
'deploy_path': '/path/to/deploy/path',
'timeout': 120,
'keep_backups': 5,
'lifecycle_hooks': {
'running_user': 'work',
'global_pre_exec': null,
'pre_exec': {
'script': {
'id': 1,
'name': 'pre exec script',
'language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja',
}
},
'post_exec': {
'script': {
'id': 2,
'name': 'post exec script',
‘language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja'
}
},
'glboal_post_exec': null,
}
}
接口描述: 获取发布模板详情 接口地址: /application/deploy-templates/{id}/ 请求方法: GET
请求参数 无
返回内容 Application deploy template
请求示例
GET /application/deploy-templates/{id}/
响应示例
{
'id': 1
'enabled': true,
'creator': 'test_user',
'repository': {
'type': 'GIT',
'url': 'http://git.example.com/test',
'branch': 'release',
'credential': {
'type': 'PASSWORD'
'username': 'username',
'password': 'pasword'
}
},
'deploy_path': '/path/to/deploy/path',
'timeout': 120,
'keep_backups': 5,
'lifecycle_hooks': {
'running_user': 'work',
'global_pre_exec': null,
'pre_exec': {
'script': {
'id': 1,
'name': 'pre exec script',
'language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja',
}
},
'post_exec': {
'script': {
'id': 2,
'name': 'post exec script',
‘language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja'
}
},
'glboal_post_exec': null,
}
}
接口描述: 更新发布模板 接口地址: /application/deploy-templates/{id}/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 模板名 |
applications | Array | 否 | 无 | 关联应用Id列表 |
repository | Object | 否 | 无 | 应用源码仓库, 可能的类型为 |
deploy_path | String | 否 | 无 | 发布路径 |
timeout | Number | 否 | 120 | 发布任务执行超时时间 |
keep_backups | Number | 否 | 5 | 保留最近备份数 |
lifecycle_hooks | Array | 否 | 无 | deploy task lifecycle hooks |
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
url | String | 否 | 无 | ftp地址 |
credential | credential id | password crendential | ssh private key credential | 否 | 无 | 登录凭据 |
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
url | String | 否 | 无 | git仓库地址 |
branch | String | 否 | 无 | git仓库分支 |
credential | credential id | password crendential | ssh private key credential | 是 | 无 | 登录凭据 |
返回内容 Application deploy template
请求示例
PATCH /application/deploy-templates/{id}/
ContentType: 'application/json'
{
'repository': {
'type': 'GIT',
'url': 'http://git.example.com/test',
'branch': 'release',
'credential': 1,
},
'deploy_path': '/path/to/deploy/path',
'timeout': 120,
'keep_backups': 5,
'lifecycle_hooks': {
'running_user': 'work',
'global_pre_exec': null,
'pre_exec': {
'script': {
'id': 1,
}
},
'post_exec': {
'script': {
'id': 2,
}
},
'glboal_post_exec': null,
}
}
响应示例
{
'id': 1
'enabled': true,
'creator': 'test_user',
'repository': {
'type': 'GIT',
'url': 'http://git.example.com/test',
'branch': 'release',
'credential': {
'type': 'PASSWORD'
'username': 'username',
'password': 'pasword'
}
},
'deploy_path': '/path/to/deploy/path',
'timeout': 120,
'keep_backups': 5,
'lifecycle_hooks': {
'running_user': 'work',
'global_pre_exec': null,
'pre_exec': {
'script': {
'id': 1,
'name': 'pre exec script',
'language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja',
}
},
'post_exec': {
'script': {
'id': 2,
'name': 'post exec script',
‘language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja'
}
},
'glboal_post_exec': null,
}
}
接口描述: 删除发布模板 接口地址: /application/deploy-templates/{id}/ 请求方法: DELETE
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
DELETE /application/deploy-templates/{id}/
响应示例
{
"message": "success"
}
接口描述: 获取发布脚本列表 接口地址: /application/deploy-scripts/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 脚本名 |
creator | String | 否 | 无 | 创建人 |
language | String | 否 | 无 | 语言 |
content | String | 否 | 无 | 内容 |
否 | ||||
返回内容 |
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of deploy script |
请求示例
GET /application/deploy-scripts/
响应示例
{
'id': 1
'enabled': true,
'creator': 'test_user',
'repository': {
'type': 'GIT',
'url': 'http://git.example.com/test',
'branch': 'release',
'credential': {
'type': 'PASSWORD'
'username': 'username',
'password': 'pasword'
}
},
'deploy_path': '/path/to/deploy/path',
'timeout': 120,
'keep_backups': 5,
'lifecycle_hooks': {
'running_user': 'work',
'global_pre_exec': null,
'pre_exec': {
'script': {
'id': 1,
'name': 'pre exec script',
'language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja',
}
},
'post_exec': {
'script': {
'id': 2,
'name': 'post exec script',
‘language': 'bash',
'content': 'echo "test"',
'template_engine': 'jinja'
}
},
'glboal_post_exec': null,
}
}
接口描述: 新建发布脚本 接口地址: /application/deploy-scripts/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 是 | 无 | 脚本名 |
creator | String | 是 | 无 | 创建人 |
language | String | 是 | 无 | 语言 |
content | String | 是 | 无 | 内容 |
template_engine | String | 否 | 'jinja' | 脚本渲染引擎 |
正确返回 deploy script
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 500 | 脚本名称已存在 |
30002 | 500 | 语言不支持 |
30003 | 500 | 脚本引擎不支持 |
请求示例
POST /application/deploy-scripts/
ContentType: 'application/json'
{
'name': 'script a',
'language': 'bash',
'content': 'echo "script a"'
}
响应示例*
{
'id': 1,
'name': 'script a',
'creator': 'admin',
'language': 'bash',
'content': 'echo "script a"',
'template_engine': 'jinja'
}
接口描述: 获取发布脚本 接口地址: /application/deploy-scripts/{id}/ 请求方法: GET
请求参数 无
*返回内容 deploy script
请求示例
GET /application/deploy-scripts/{id}/
响应示例
{
'id': 1,
'name': 'script a',
'creator': 'admin',
'language': 'bash',
'content': 'echo "script a"',
'template_engine': 'jinja'
}
接口描述: 更新发布脚本 接口地址: /application/deploy-scripts/{id}/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 记录名 |
creator | String | 否 | 无 | 创建人 |
language | String | 否 | 无 | 语言 |
content | String | 否 | 无 | 内容 |
template_engine | String | 否 | 'jinja' | 脚本渲染引擎 |
正确返回 deploy script
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 500 | 脚本名称已存在 |
30002 | 500 | 语言不支持 |
30003 | 500 | 脚本引擎不支持 |
请求示例
PATCH /application/deploy-scripts/{id}/
ContentType: 'application/json'
{
'name': 'script a',
'language': 'bash',
'content': 'echo "script a"'
}
响应示例*
{
'id': 1,
'name': 'script a',
'creator': 'admin',
'language': 'bash',
'content': 'echo "script a"',
'template_engine': 'jinja'
}
接口描述: 获取脚本关联应用 接口地址: /application/deploy-scripts/{id}/applications/ 请求方法: GET
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of application object |
请求示例
GET /application/deploy-scripts/{id}/applications/
响应示例
{
'count': 100,
'next': '/application/deploy-scripts/{id}/applications/?page=2',
'prev': null,
'results': [
{'id': 1,
'name': 'application-a',
'full_name: 'parent.application-a'},
{'id': 2,
'name': 'application-a',
'full_name: 'parent.application-a'},
...
]
}
接口描述: 删除发布脚本 接口地址: /application/deploy-scripts/{id}/ 请求方法: DELETE
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
DELETE /application/deploy-scripts/{id}/
响应示例
{
"message": "success"
}
接口描述: 获取密码登录凭据列表 接口地址: /application/repository-credentials/password/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 凭据名称 |
username | String | 否 | 无 | 用户名 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of password credential |
请求示例
GET /application/repository-credentials/password/
响应示例
{
'count': 100,
'next': '/application/repository-credentials/password/?page=2',
'prev': null,
'results': [
{'id': 1,
'name': 'credential-a',
'username': 'username',
'password': 'password'},
{'id': 1,
'name': 'credential-a',
'username': 'username',
'password': 'password'},
]
}
接口描述: 创建密码登录凭据 接口地址: /application/repository-credentials/password/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 凭据名称 |
username | String | 否 | 无 | 用户名 |
password | String | 否 | 无 | 密码 |
返回内容
请求示例
POST /application/repository-credentials/password/
ContentType: 'application/json'
{
'name': 'credential-a',
'username': 'username',
'password': 'password'
}
响应示例
{
'id': 1,
'name': 'credential-a',
'username': 'username',
'password': 'password'
}
接口描述: 更新密码登录凭据 接口地址: /application/repository-credentials/password/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 凭据名称 |
username | String | 否 | 无 | 用户名 |
password | String | 否 | 无 | 密码 |
返回内容
请求示例
PATCH /application/repository-credentials/password/
ContentType: 'application/json'
{
'name': 'credential-a',
'username': 'username',
'password': 'password'
}
响应示例
{
'id': 1,
'name': 'credential-a',
'username': 'username',
'password': 'password'
}
接口描述: 删除密码登录凭据 接口地址: /application/repository-credentials/password/{id}/ 请求方法: DELETE
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
DELETE /application/repository-credentials/password/{id}/
响应示例
{
"message": "success"
}
接口描述: 获取用户列表 接口地址: /users/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
username | String | 否 | 无 | 用户名 |
String | 否 | 无 | 邮箱 | |
phone | String | 否 | 无 | 手机号码 |
status | String | 否 | 无 | 用户状态, 可选值['enabled', 'disabled'] |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of User object |
请求示例
GET /users/
响应示例
{
'count': 100,
'next': '/users/?page=2',
'prev': null,
'results': [
{'id': 1,
'username': 'user-a',
'email': 'user-a@example.com',
'phone': '12345678901'},
{'id': 2,
'name': 'user-b',
'username': 'user-b@weimob.com',
'phone': '12345678902'},
]
}
接口描述: 获取用户配置 接口地址: /users/{id}/ 请求方法: GET
请求参数 无
返回内容 User object
请求示例
GET /users/{id}/
响应示例
{
'id': 1,
'username': 'user-a',
'email': 'user-a@example.com',
'phone': '12345678901'
}
接口描述: 更新用户配置 接口地址: /users/{id}/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
String | 否 | 无 | 邮箱 | |
phone | String | 否 | 无 | 手机号码 |
返回内容 User object
请求示例
PATCH /users/{id}/
ContentType: 'application/json'
{
'email': 'user-a@example.com',
'phone': '12345678901'
}
响应示例
{
'id': 1,
'username': 'user-a',
'status': 'enabled',
'email': 'user-a@example.com',
'phone': '12345678901'
}
接口描述: 分配用户角色 接口地址: /users/{id}/roles/ 请求方法: POST
请求参数
Array of bellow object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | Number | 是 | 无 | 角色id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /users/{id}/roles/
CopntentType: 'application/json'
[
{'id': 1},
{'id': 2},
...
]
响应示例
{
"message": "success"
}
接口描述: 移除用户角色 接口地址: /users/{id}/roles/ 请求方法: DELETE
请求参数
Array of bellow object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | Number | 是 | 无 | 角色id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
DELETE /users/{id}/roles/
CopntentType: 'application/json'
[
{'id': 1},
{'id': 2},
...
]
响应示例
{
"message": "success"
}
接口描述: 移除用户角色 接口地址: /users/{id}/actions/disable/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /users/{id}/actions/disable/
响应示例
{ "message": "success"}
接口描述: 移除用户角色 接口地址: /users/{id}/actions/enable/ 请求方法: POST
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /users/{id}/actions/disable/
响应示例
{ "message": "success"}
接口描述: 更改密码 接口地址: /users/{id}/actions/change-password/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
original_password | String | 是 | 无 | 原始密码 |
new_password | String | 是 | 无 | 新密码 |
正确返回
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误消息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
300001 | 400 | 原始密码错误 |
请求示例
POST /users/{id}/actions/change-password/
ContentType:'application/json'
{
"original_password": 'original_password',
"new_password": 'new_password'
}
响应示例
{ "message": "success"}
接口描述: 忘记密码 接口地址: /users/{id}/actions/forget-password/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
String | 是 | 无 | 公司邮箱 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
接口描述: 获取角色列表 接口地址: /roles/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 角色名 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Role object |
请求示例
GET /roles/
响应示例
{
'count': 100,
'next': '/roles/?page=2',
'prev': null,
'results': [
{
'id': 1,
'name': 'role a',
'creator': 'admin',
},
{'id': 2,
'name': 'role-b',
'creator': 'admin'
},
...
]
}
接口描述: 获取角色列表 接口地址: /roles/{id}/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 角色名 |
返回内容 role object
请求示例
GET /roles/{id}/users/
ContentType: 'application/json'
{'name': 'role a'}
响应示例
{
'id': 1,
'name': 'role a',
'creator': 'admin',
}
接口描述: 获取角色用户列表 接口地址: /roles/{id}/users/ 请求方法: GET
请求参数 无
返回内容 Array of role object
[
{'id': 1,
'username': 'user-a',
'email': 'user-a@example.com',
'phone': '12345678901'},
{'id': 2,
'name': 'user-b',
'username': 'user-b@weimob.com',
'phone': '12345678902'},
...
]
接口描述: 添加用户 接口地址: /roles/{id}/users/ 请求方法: POST
请求参数
Array of bellow object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | Number | 是 | 无 | 用户id |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /roles/{id}/users/
CopntentType: 'application/json'
[
{'id': 1},
{'id': 2},
...
]
响应示例
{
"message": "success"
}
接口描述: 移除用户 接口地址: /roles/{id}/users/ 请求方法: DELETE
请求参数
Array of bellow object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
id | Number | 是 | 无 | 用户id |
请求示例
DELETE /roles/{id}/users/
CopntentType: 'application/json'
[
{'id': 1},
{'id': 2},
...
]
响应示例
{
"message": "success"
}
接口描述: 删除角色 接口地址: /roles/{id}/ 请求方法: DELETE
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
DELETE /roles/{id}/
响应示例
{ "message": "success"}
接口描述: 用户应用授权 接口地址: /users/{id}/application/perms/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
authorizations | Array | 否 | 无 | Array of Application authorization entry |
application authorization entry
属性 | 类型 | 说明 |
---|---|---|
id | Number | 应用ID |
app_name | String | 应用名 |
permission | Object | Application permission object |
true - 启用权限, false - 取消权限.
属性 | 类型 | 说明 |
---|---|---|
view_app | Bool | 查看应用 |
edit_app | Bool | 编辑应用 |
delete_app | Bool | 删除应用 |
deploy_app | Bool | 新建,执行发布任务 |
review_app_deploy_task | Bool | 审核发布任务 |
restart_app | Bool | 重启应用实例 |
view_app_log | Bool | 查看应用日志 |
view_app_monitor | Bool | 查看应用监控 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /users/{id}/application/perms/
ContentType: 'application/json'
{
'authorizations': [
{
'id': 1,
'permission': {
'view_app': true,
'view_app_log': true,
'restart_app': true,
}
},
{
'id': 2,
'permissions': {
'view_app': true,
'view_app_log': true,
'restart_app': true,
}
},
...
]
}
响应示例
{'message': 'success'}
接口描述: 角色应用授权 接口地址: /roles/{id}/application/perms/ 请求方法: POST
参考 用户应用授权
接口描述: 获取用户应用权限 接口地址: /users/{id}/application/perms/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
app_name | String | 否 | 无 | 应用名 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Application authorization entry |
请求示例
GET /users/{id}/application/perms/
响应示例
{
'count': 100,
'next': '/users/{id}/application/perms/',
'prev': null,
'results': [{
'id': 1,
'app_name': 'test.app-a',
'permission': {
'view_app': true,
'view_app_log': true,
'restart_app': true,
}
},
{
'id': 2,
'app_name': 'test.app-b',
'permission': {
'view_app': true,
'view_app_log': true,
'restart_app': true,
}
},
...
]
}
接口描述: 获取角色应用权限 接口地址: /roles/{id}/application/perms/ 请求方法: GET
参考 获取用户应用权限
接口描述: 用户主机授权 接口地址: /users/id}/host/perms/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
authorizations | Array | 否 | 无 | Array of host authorization entry |
host authorization entry
属性 | 类型 | 说明 |
---|---|---|
id | Number | 主机id |
hostname | String | 主机名 |
permission | Object | host permission object |
true - 启用权限, false - 取消权限.
属性 | 类型 | 说明 |
---|---|---|
view_host | Bool | 查看主机 |
edit_host | Bool | 编辑主机 |
delete_host | Bool | 删除主机 |
init_host | Bool | 初始化主机 |
restart_host | Bool | 重启主机 |
login_host | Bool | 登录主机 |
deactivate_host | Bool | 下架主机 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
POST /users/{id}/application/perms/
ContentType: 'application/json'
{
'authorizations': [
{
'id': 1,
'permission': {
'view_host': true,
'edit_host': true,
'delete_host': true,
'login_host': true,
}
},
{
'id': 2,
'permission': {
'view_host': true,
'edit_host': false,
'delete_host': false,
'login_host': true,
}
},
...
]
}
响应示例
{'message': 'success'}
接口描述: 角色主机授权 接口地址: /roles/id}/host/perms/ 请求方法: POST
参考 用户主机授权
接口描述: 获取用户主机权限 接口地址: /users/{id}/host/perms/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
hostname | String | 否 | 无 | 主机名 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of host authorization entry |
请求示例
GET /users/{id}/host/perms/
响应示例
{
'count': 100,
'next': '/users/{id}/application/perms/',
'prev': null,
'results': [
{
'id': 1,
'hostname': 'server-a',
'permission': {
'view_host': true,
'edit_host': true,
'delete_host': true,
'login_host': true,
}
},
{
'id': 2,
'hostname': 'server-b',
'permission': {
'view_host': true,
'edit_host': false,
'delete_host': false,
'login_host': true,
}
},
...
]
}
接口描述: 获取角色主机权限 接口地址: /roles/{id}/host/perms/ 请求方法: GET
参考 获取角色主机权限
接口描述: 获取应用用户授权 接口地址: /applications/{id}/authorization/users/ 请求方法: GET
请求参数
参考 公共请求参数
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Number | Array of User app authorization |
属性 | 类型 | 说明 |
---|---|---|
user | String | User object |
permission | Object | Application permission object |
请求示例
GET /applications/{id}/authorization/users/
响应示例
{
'next': '/applications/{id}/authorization/users/?page=2'
'prev': null
'count': 100,
'results': [
{'user': {'id': 4, 'username': 'user-a'},
'permission': {
'view_app': true,
'view_app_log': true,
'restart_app': true,
}
},
{'user': {'id': 5, 'username': 'user-b'},
'permission': {
'view_app': true,
'view_app_log': true,
'restart_app': false,
}
},
...
]
}
接口描述: 更新应用用户授权 接口地址: /applications/{id}/authorization/users/ 请求方法: PATCH
请求参数
Array of below object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
user | Object | 是 | 无 | User object |
permission | Object | 否 | 无 | Application permission object |
action | String | 是 | update | 可选值['update', 'delete'] |
请求示例
PATCH /applications/{id}/authorization/users/
ContentType: 'application/json'
[
{
'user': {'id': 1},
'permission': {
'edit_app': false,
},
'action': 'update',
},
{
'user': {'id': 2},
'action': 'delete',
},
...
]
响应示例
{'message': 'success'}
接口描述: 获取应用用户授权 接口地址: /applications/{id}/authorization/roles/ 请求方法: GET
请求参数
参考 公共请求参数
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Number | Array of Role app authorization |
属性 | 类型 | 说明 |
---|---|---|
role | String | Role object |
permission | Object | Application permission object |
请求示例
GET /applications/{id}/authorization/roles/
响应示例
{
'next': '/applications/{id}/authorization/roles/?page=2'
'prev': null
'count': 100,
'results': [
{'user': {'id': 4, 'username': 'user-a'},
'permission': {
'view_app': true,
'view_app_log': true,
'restart_app': true,
}
},
{'user': {'id': 5, 'username': 'user-b'},
'permission': {
'view_app': true,
'view_app_log': true,
'restart_app': false,
}
},
...
]
}
更新应用角色授权
接口描述: 更新应用角色授权 接口地址: /applications/{id}/authorization/roles/ 请求方法: PATCH
请求参数
Array of below object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
role | Object | 是 | 无 | Role object |
permission | Object | 否 | 无 | Application permission object |
action | String | 是 | update | 可选值['update', 'delete'] |
请求示例
PATCH /applications/{id}/authorization/roles/
ContentType: 'application/json'
[
{
'role': {'id': 1},
'permission': {
'edit_app': false,
},
'action': 'update',
},
{
'role': {'id': 2},
'action': 'delete',
},
...
]
响应示例
{'message': 'success'}
接口描述: 获取主机用户授权 接口地址: /hosts/{id}/authorization/users/ 请求方法: GET
请求参数
参考 公共请求参数
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Number | Array of User host authorization |
属性 | 类型 | 说明 |
---|---|---|
user | String | User object |
permission | Object | Host permission object |
请求示例
GET /hosts/{id}/authorization/users/
响应示例
{
'next': '/hosts/{id}/authorization/users/?page=2'
'prev': null
'count': 100,
'results': [
{'user': {'id': 4, 'username': 'user-a'},
'permission': {
'view_host': true,
'edit_host': true,
'delete_host': true,
'login_host': true,
}
},
{'user': {'id': 5, 'username': 'user-b'},
'permission': {
'view_host': true,
'edit_host': true,
'delete_host': true,
'login_host': true,
}
},
...
]
}
接口描述: 更新主机用户授权 接口地址: /applications/{id}/authorization/users/ 请求方法: PATCH
请求参数
Array of below object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
user | Object | 是 | 无 | User object |
permission | Object | 否 | 无 | Host permission object |
action | String | 是 | update | 可选值['update', 'delete'] |
请求示例
PATCH /applications/{id}/authorization/users/
ContentType: 'application/json'
[
{
'user': {'id': 1},
'permission': {
'edit_host': false,
},
'action': 'update',
},
{
'user': {'id': 2},
'action': 'delete',
},
...
]
响应示例
{'message': 'success'}
接口描述: 获取主机角色授权 接口地址: /host/{id}/authorization/roles/ 请求方法: GET
请求参数
参考 公共请求参数
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Number | Array of Role host authorization |
属性 | 类型 | 说明 |
---|---|---|
role | String | Role object |
permission | Object | Host permission object |
请求示例
GET /hosts/{id}/authorization/roles/
响应示例
{
'next': '/hosts/{id}/authorization/roles/?page=2'
'prev': null
'count': 100,
'results': [
{'role': {'id': 4, 'name': 'role-a'},
'permission': {
'view_host': true,
'edit_host': true,
'delete_host': true,
'login_host': true,
}
},
{'role': {'id': 5, 'name': 'role-b'},
'permission': {
'view_host': true,
'edit_host': true,
'delete_host': true,
'login_host': true,
}
},
...
]
}
接口描述: 更新主机角色授权 接口地址: /applications/{id}/authorization/roles/ 请求方法: PATCH
请求参数
Array of below object
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
role | Object | 是 | 无 | Role object |
permission | Object | 否 | 无 | Host permission object |
action | String | 是 | update | 可选值['update', 'delete'] |
请求示例
PATCH /applications/{id}/authorization/roles/
ContentType: 'application/json'
[
{
'role': {'id': 1},
'permission': {
'edit_host': false,
},
'action': 'update',
},
{
'role': {'id': 2},
'action': 'delete',
},
...
]
响应示例
{'message': 'success'}
接口描述: 用户功能授权 接口地址: /users/{id}/system/perms/ 请求方法: POST
请求参数
Array of bellow
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
module_name | String | 是 | 无 | 功能模块名称 |
permissions | Object | 是 | 无 | Module permission |
由于不同功能模块权限各不相同, module permission 对象将会根据module_name参数变化. 模块权限详情请参考 模块权限
属性 | 类型 | 说明 |
---|---|---|
enable_resource_req | Bool | 启用资源申请模块 |
approve_host_req | Bool | 主机申请审批 |
approve_domain_req | Bool | 域名申请审批 |
approve_ssl_cert_req | Bool | ssl证书审批 |
create_resource_req | Bool | 新建资源申请 |
属性 | 类型 | 说明 |
---|---|---|
enable_app_mgmt | Bool | 启用应用管理模块 |
view_app | Bool | 查看所有应用 |
create_app | Bool | 新建应用 |
delete_app | Bool | 删除所有应用 |
edit_app | Bool | 编辑所有应用 |
属性 | 类型 | 说明 |
---|---|---|
enable_dns_mgmt | Bool | 启用DNS管理模块 |
manage_dns_server | Bool | 管理DNS服务 |
属性 | 类型 | 说明 --------------------- -|--------|---------- enable_host_mgmt | Bool | 启用主机管理模块 add_host | Bool | 添加主机 edit_host | Bool | 编辑任意主机配置 delete_host | Bool | 删除任意主机 manage_host | Bool | 管理任意主机 enable_business_mgmt | Bool | 启用业务管理模块 view_business | Bool | 查看任意业务线 add_business | Bool | 新增业务线 delete_business | Bool | 删除任意业务线
属性 | 类型 | 说明 |
---|---|---|
enable_navigator | Bool | 启用第三方导航模块 |
view_navigator | Bool | 查看第三方导航 |
manage_navigator | Bool | 管理第三方导航 |
属性 | 类型 | 说明 |
---|---|---|
enable_common_tools | Bool | 启用常用工具模块 |
enable_cdn_refresher | Bool | 启用cdn刷新功能 |
enable_jumpserver_log_mgmt | Bool | 启用跳板机日志管理功能 |
属性 | 类型 | 说明 |
---|---|---|
enable_deploy_template_mgmt | Bool | 启用启用模块 |
enable_cdn_refresher | Bool | 启用cdn刷新功能 |
enable_jumpserver_log_mgmt | Bool | 启用跳板机日志管理功能 |
正确返回
属性 | 类型 | 说明 |
---|---|---|
message | String | success - 成功 |
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 400 | 未定义的权限 |
30002 | 400 | 没有授权权限 |
请求示例
POST /users/{id}/system/perms/
ContentType: 'application/json'
{
'module_name': 'application',
'permissions': {
'enable_app_mgmt': true,
'add_app': true,
'delte_app': true,
'manage_app': true,
}
}
正确响应示例
{'message': 'success'}
错误响应示例
{'error_code': 30001, 'message': '未定义的权限 restart_app'}
接口描述: 角色功能授权 接口地址: /roles/{id}/system/perms/ 请求方法: POST
参考 用户功能授权
接口描述: 获取导航列表 接口地址: /external-navigators/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 导航名称 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of External navigator object |
请求示例
GET /external-navigators/
响应示例
{
'count': 100,
'next': '/external-navigators/?page=2',
'prev': null,
'results': [
{
'id': 1,
'name': 'external system a',
'img': '/imgs/externa-a.jpg'
'url': 'http://external-a.example.com/'
'creator': 'admin',
},
{
'id': 2,
'name': 'external system b',
'img': '/imgs/externa-b.jpg'
'url': 'http://external-b.example.com/'
'creator': 'admin',
},
...
]
}
接口描述: 新建导航 接口地址: /external-navigators/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 是 | 无 | 导航名称 |
img | String | 是 | 无 | 导航图片路径 |
url | String | 是 | 无 | 导航地址 |
返回内容 External navigator object
请求示例
POST /external-navigators/
ContentType: 'application/json'
{
'name': 'external system a',
'img': '/imgs/externa-a.jpg'
'url': 'http://external-a.example.com/'
}
响应示例
{
'id': 1,
'name': 'external system a',
'img': '/imgs/externa-a.jpg'
'url': 'http://external-a.example.com/'
'creator': 'admin',
}
接口描述: 更新导航 接口地址: /external-navigators/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | 导航名称 |
img | String | 否 | 无 | 导航图片路径 |
url | String | 否 | 无 | 导航地址 |
返回内容 External navigator object
请求示例
PATCH /external-navigators/
ContentType: 'application/json'
{
'name': 'external system a',
'img': '/imgs/externa-a.jpg'
'url': 'http://external-a.example.com/'
}
响应示例
{
'id': 1,
'name': 'external system a',
'img': '/imgs/externa-a.jpg'
'url': 'http://external-a.example.com/'
'creator': 'admin',
}
接口描述: 获取导航详情 接口地址: /external-navigators/{id}/ 请求方法: GET
请求参数 无
返回内容 External navigator object
请求示例
GET /external-navigators/{id}/
响应示例
{
'id': 1,
'name': 'external system a',
'img': '/imgs/externa-a.jpg'
'url': 'http://external-a.example.com/'
'creator': 'admin',
}
接口描述: 删除导航 接口地址: /external-navigators/{id}/ 请求方法: DELETE
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
DELETE /external-navigators/{id}
响应示例
{'message': 'success'}
接口描述: 获取auth token列表 接口地址: /auth-tokens/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | token 名 |
value | String | 否 | 无 | token 值 |
description | String | 否 | 无 | 描述信息 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Auth token |
请求示例
GET /auth-tokens/
响应示例
{
'count': 100,
'next': '/auth-tokens/?page=2',
'prev': null,
'results': [
{
'id': 1,
'name': 'role a',
'creator': 'admin',
},
{'id': 2,
'name': 'role-b',
'creator': 'admin'
},
...
]
}
接口描述: 创建auth token 接口地址: /auth-tokens/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 是 | 无 | token 名 |
description | String | 否 | 无 | 描述信息 |
返回内容 Auth token
请求示例
POST /auth-tokens/
ContentType: 'application/json'
{
'name': 'token a',
'description': 'description of token'
}
响应示例
{
'id': 1,
'name': 'token a',
'value': '9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b',
'description': 'description of token'
}
接口描述: 更新auth token 接口地址: /auth-tokens/{id}/ 请求方法: PATCH
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
name | String | 否 | 无 | token 名 |
description | String | 否 | 无 | 描述信息 |
返回内容 Auth token
请求示例
PATCH /auth-tokens/
ContentType: 'application/json'
{
'name': 'token a',
'description': 'description of token'
}
响应示例
{
'id': 1,
'name': 'token a',
'value': '9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b',
'description': 'description of token'
}
接口描述: 获取auth token详情 接口地址: /auth-tokens/{id}/ 请求方法: GET
请求参数 无
返回内容 Auth token
请求示例
GET /auth-tokens/{id}/
响应示例
{
'id': 1,
'name': 'token a',
'value': '9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b',
'description': 'description of token'
}
接口描述: 删除auth token 接口地址: /auth-tokens/{id}/ 请求方法: DELETE
请求参数 无
返回内容
属性 | 类型 | 说明 |
---|---|---|
message | String | 'success' - 成功 |
请求示例
DELETE /auth-tokens/{id}/
响应示例
{'message': 'success'}
接口描述: 跳板机日志查询 接口地址: /common-utils/jump-server-logs/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
keyword | String | 否 | 无 | 查询关键字 |
user | String | 否 | 无 | 操作用户 |
host | String | 否 | 无 | 操作主机 |
time__gt | String | 否 | 无 | 操作时间大于等于 |
time__lt | String | 否 | 无 | 操作时间小于等于 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of Jump server log |
请求示例
GET /common-utils/jump-server-log/
响应示例
{
'count': 100,
'next': '/common-utils/jump-server-log/?page=2',
'prev': null,
'results': [
{
'id': 1,
'user': 'admin',
'host': 'host-a',
'created_time': '2018-04-18T15:38:40+08:00',
'text': 'some operation text'
},
...
]
}
接口描述: 获取CDN刷新任务列表 接口地址: /common-utils/cdn-refresh-tasks/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
cdn_service_provider | String | 否 | 无 | cdn厂商 |
creator | String | 否 | 无 | 创建人 |
created_time__gt | String | 否 | 无 | 创建时间大于等于 |
created_time__lt | String | 否 | 无 | 创建时间小于等于 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of cdn refresh task |
请求示例
GET /common-utils/cdn-refresh-tasks/
响应示例
{
'count': 100,
'next': '/common-utils/cdn-refresh-tasks/?page=2',
'prev': null,
'results': [
{
'id': 1,
'urls': ['http://url-a.example.com', 'http://url-a.example.com'],
'cdn_service_provider': 'wangsu',
'refresh_mode': 'recursive',
'creator': 'admin',
'status': 'finished',
'created_time': '2018-04-18T15:38:40+08:00',
'finished_time': ' 2018-04-18T15:40:40+08:00',
},
{
'id': 2,
'urls': ['http://url-c.example.com', 'http://url-d.example.com'],
'cdn_service_provider': 'tecent',
'refresh_mode': 'single_file',
'creator': 'admin',
'status': 'failed',
'error': 'call service api failed',
'created_time': '2018-04-18T15:38:40+08:00',
'finished_time': null,
},
...
]
}
接口描述: 新建CDN刷新任务 接口地址: /common-utils/cdn-refresh-tasks/ 请求方法: POST
请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
cdn_service_provider | String | 是 | 无 | cdn厂商 |
refresh_mode | String | 是 | 无 | 刷新模式, recursive - 递归刷新 single_file - 单文件刷新 |
urls | Array | 是 | 无 | Array of url |
正确返回
错误返回
属性 | 类型 | 说明 |
---|---|---|
error_code | Number | 错误码 |
message | String | 错误信息 |
错误码
错误码 | http状态码 | 说明 |
---|---|---|
30001 | 400 | url不能为空 |
30002 | 400 | 非法的url域名 |
30003 | 400 | 刷新模式不支持 |
30004 | 400 | CDN厂商不支持 |
请求示例
POST /common-utils/cdn-refresh-tasks/
ContentType: 'application/json'
{
'urls': ['http://url-a.example.com', 'http://url-a.example.com'],
'cdn_service_provider': 'wangsu',
'refresh_mode': 'recursive',
}
响应示例
{
'id': 1,
'urls': ['http://url-a.example.com', 'http://url-a.example.com'],
'cdn_service_provider': 'wangsu',
'refresh_mode': 'recursive',
'creator': 'admin',
'status': 'processing',
'created_time': '2018-04-18T15:38:40+08:00',
}
接口描述: 获取DNS操作记录 接口地址: /audit/dns-operations/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
operator | String | 否 | 无 | 操作人 |
op_type | String | 否 | 无 | 操作类型,可选值['add', 'update', 'delete', 'disable', 'enable'] |
op_target | String | 否 | 无 | 操作对象类型, 可选值['server', ['domain', 'record']] |
op_detail | String | 否 | 无 | 操作消息 |
op_time__lt | String | 否 | 无 | 操作时间小于等于 |
op_time__gt | String | 否 | 无 | 操作时间大于等于 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of dns operation |
请求示例
GET /audit/dns-operations/
响应示例
{
'count': 100,
'next': '/audit/dns-operations/?page=2',
'prev': null,
'results': [
{
'id': 1,
'op_target': 'domain',
'op_type': 'add',
'op_detail': '新增域名 example.com',
'op_time': '2018-04-18T15:38:40+08:00',
'operator': 'admin',
},
{
'id': 2,
'op_target': 'record',
'op_type': 'delete',
'op_detail': '删除域名记录 record-a.example.com',
'op_time': '2018-04-18T15:38:40+08:00',
'operator': 'admin',
},
...
]
}
接口描述: 获取主机操作记录 接口地址: /audit/host-operations/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
operator | String | 否 | 无 | 操作人 |
op_type | String | 否 | 无 | 操作类型,可选值['add', 'update', 'delete', 'attach_app', 'deatach_app'] |
hostname | Strig | 否 | 无 | 主机名 |
op_detail | String | 否 | 无 | 操作详情 |
op_time__lt | String | 否 | 无 | 操作时间小于等于 |
op_time__gt | String | 否 | 无 | 操作时间大于等于 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of host operation |
请求示例
GET /audit/host-operations/
响应示例
{
'count': 100,
'next': '/audit/host-operations/?page=2',
'prev': null,
'results': [
{
'id': 1,
'hostname': 'server-a',
'op_type': 'add',
'operator': 'admin',
'op_detail': '新增主机 server-a',
'op_time': '2018-04-18T15:38:40+08:00',
},
{
'id': 2,
'hostname: 'server-b'
'op_type': 'delete',
'operator': 'admin',
'op_detail': '删除主机server-b',
'op_time': '2018-04-18T15:38:40+08:00',
},
...
]
}
接口描述: 获取应用操作记录 接口地址: /audit/app-operations/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
operator | String | 否 | 无 | 操作人 |
app_name | String | 否 | 无 | 应用名 |
op_type | String | 否 | 无 | 操作类型,可选值['add', 'update', 'delete', 'attach_host', 'deatach_host', 'change_deploy_setting'] |
op_detail | String | 否 | 无 | 操作详情 |
op_time__lt | String | 否 | 无 | 操作时间小于等于 |
op_time__gt | String | 否 | 无 | 操作时间大于等于 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of app operation |
请求示例
GET /audit/app-operations/
响应示例
{
'count': 100,
'next': '/audit/app-operations/?page=2',
'prev': null,
'results': [
{
'id': 1,
'app_name': 'test.app-a',
'op_type': 'add',
'operator': 'admin',
'op_detail': '新增应用 test.app-a',
'op_time': '2018-04-18T15:38:40+08:00',
},
{
'id': 2,
'app_name': 'test.app-a',
'op_type': 'change_deploy_settings',
'operator': 'admin',
'op_detail': "更新应用发布配置 respository url,
变更前: http://test.example.com/my-repo/,
变更后: 'http://test.example.com/new-repo'",
'op_time': '2018-04-18T15:38:40+08:00', ,
},
...
]
}
接口描述: 获取模块授权操作记录 接口地址: /audit/authorize-operations/modules/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
operator | String | 否 | 无 | 操作人 |
module_name | String | 否 | 无 | 被授权模块名 |
perm_name | String | 否 | 无 | 权限名 |
action | String | 否 | 无 | 授权动作类型 ['enable', 'disable'] |
authorized_target_type | String | 否 | 无 | 获得授权的目标类型,可选值 ['role', 'user'] |
authorized_target_name | String | 否 | 无 | 获得授权的用户或角色名 |
op_time__lt | String | 否 | 无 | 操作时间小于等于 |
op_time__gt | String | 否 | 无 | 操作时间大于等于 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of module authorized operation |
请求示例
GET /audit/authorize-operations/modules/
响应示例
{
'count': 100,
'next': '/audit/authorize-operations/modules/?page=2',
'prev': null,
'results': [
{
'id': 1,
'operator': 'admin',
'module_name': '应用管理',
'perm_name': 'add_app',
'action': 'enable',
'authorized_target_type': 'role',
'authorized_target_name': '运维人员',
'op_time': '2018-04-18T15:38:40+08:00', ,
},
{
'id': 2,
'operator': 'admin',
'module_name': '应用管理',
'perm_name': 'add_app',
'action': 'disable',
'authorized_target_type': 'role',
'authorized_target_name': '开发人员',
'op_time': '2018-04-18T15:38:40+08:00', ,
},
...
]
}
接口描述: 获取资源授权操作记录 接口地址: /audit/authorize-operations/resources/ 请求方法: GET
请求参数
其他参数参考 公共请求参数
参数名 | 类型 | 必选 | 默认值 | 说明 |
---|---|---|---|---|
operator | String | 否 | 无 | 操作人 |
resource_type | String | 否 | 无 | 被授权资源类型, 可选值['host', 'application', 'business'] |
resource_id | Number | 否 | 无 | 被授权资源id |
perm_name | String | 否 | 无 | 权限名 |
action | String | 否 | 无 | 授权动作类型 ['enable', 'disable'] |
authorized_target_type | String | 否 | 无 | 获得授权的目标类型,可选值 ['role', 'user'] |
authorized_target_name | String | 否 | 无 | 获得授权的用户或角色名 |
op_time__lt | String | 否 | 无 | 操作时间小于等于 |
op_time__gt | String | 否 | 无 | 操作时间大于等于 |
返回内容
属性 | 类型 | 说明 |
---|---|---|
prev | String | 上一页链接 |
next | String | 下一页链接 |
count | Number | 总条数 |
results | Array | Array of resource authorized operation |
请求示例
GET /audit/authorize-operations/resources/
响应示例
{
'count': 100,
'next': '/audit/authorize-operations/resources/?page=2',
'prev': null,
'results': [
{
'id': 1,
'operator': 'admin',
'resource_type': 'host',
'resource': {'id': 1, 'host': 'server-a'},
'perm_name': 'login',
'action': 'enable',
'authorized_target_type': 'role',
'authorized_target_name': '运维人员',
'op_time': '2018-04-18T15:38:40+08:00',
},
{
'id': 1,
'operator': 'admin',
'resource_type': 'host',
'resource': {'id': 2, 'host': 'server-b'},
'perm_name': 'login',
'action': 'enable',
'authorized_target_type': 'role',
'authorized_target_name': '运维人员',
'op_time': '2018-04-18T15:38:40+08:00',
},
...
]
}
属性 | 类型 | 说明 |
---|---|---|
id | Number | 产品线id |
name | String | 产品线名称 |
description | String | 描述 |
available_actions | Available production actions object | 可用操作 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 应用id |
name | String | 应用名 |
full_name | String | 绝对名称(包含路径信息) |
has_child | String | 是否含有子应用 |
production | Number | 产品id |
parent_app | Number | Null | 父应用ID,若为NULL则没有父应用 |
available_actions | Available app actions object | 可用操作 |
属性 | 类型 | 说明 |
---|---|---|
view_app | Bool | 查看应用 |
edit_app | Bool | 编辑应用 |
delete_app | Bool | 删除应用 |
deploy_app | Bool | 新建,执行发布任务 |
review_app_deploy_task | Bool | 审核发布任务 |
restart_app | Bool | 重启应用实例 |
view_app_log | Bool | 查看应用日志 |
view_app_monitor | Bool | 查看应用监控 |
属性 | 类型 | 说明 |
---|---|---|
view | Bool | 查看 |
delete | Bool | 删除 |
reboot | Bool | 编辑 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 模板id |
enabled | Bool | 是否启用 |
applications | Number | 关联应用id列表 |
repository | Object | 应用源码仓库, 可能的类型为 |
deploy_path | String | 发布路径 |
timeout | Number | 发布任务执行超时时间 |
keep_backups | Number | 保留最近备份数 |
lifecyle_hooks | Array | Array of deploy task lifecyle hooks |
属性 | 类型 | 说明 |
---|---|---|
enabled | Bool | 是否启用 |
creator | String | 创建人 |
application | Number | 应用Id |
repository | Object | 应用源码仓库, 可能的类型为 |
deploy_path | String | 发布路径 |
timeout | Number | 发布任务执行超时时间 |
keep_backups | Number | 保留最近备份数 |
lifecyle_hooks | Array | Array of deploy task lifecyle hooks |
template | Object | 发布配置链接模板id |
属性 | 类型 | 说明 |
---|---|---|
running_user | String | 脚本默认执行用户,在lifecye hook 里配置的running_ user将会覆盖此配置. |
global_pre_exec | Object | lifecycle-hook |
pre_exec | Object | lifecycle-hook |
post_exec | Object | lifecycle-hook |
global_post_exec | Object | lifecycle-hook |
属性 | 类型 | 说明 |
---|---|---|
running_user | String | 脚本执行用户 |
script | Object | deploy script |
属性 | 类型 | 说明 |
---|---|---|
id | String | Script Template Id |
name | String | 脚本名称 |
language | String | 脚本语言, 可选值['python', 'bash'] |
content | String | 脚本内容 |
template_engine | String | 脚本渲染引擎 |
属性 | 类型 | 说明 |
---|---|---|
type | String | 仓库类型 值为 'FTP' |
url | String | ftp url |
credential | Object | Password Credential |
属性 | 类型 | 说明 |
---|---|---|
type | String | 仓库类型 值为 'GIT' |
url | String | git url |
branch | String | git 仓库分支 |
credential | Object | Password Credential |
属性 | 类型 | 说明 |
---|---|---|
type | String | 凭据类型,值为'PASSWORD' |
username | String | 用户名 |
password | String | 密码 |
属性 | 类型 | 说明 |
---|---|---|
type | String | 凭据类型,值为'SSH_PRIVATE_KEY' |
username | String | 用户名 |
private_key | String | 私钥内容 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 主机id |
name | String | 主机名 |
host_type | String | 主机类型,可选值: ALI_ECS - 阿里云 PHY_HOST - 物理机 TECENT_CVM - 腾讯云主机 TECENT_CPM - 腾讯云黑石物理机 CLOUDSTACK - 线上cloudstack集群 CLOUDSTACK_OFFICE - 线下CLOUDSTACK集群 |
status | String | 主机状态, 可选值: ['attached', 'inited', 'raw', 'offline'] |
os_status | String | 操作系统状态,可选值: ['stopped', 'running', 'restarting'] |
os_type | String | 操作系统版本 |
cpu | Number | cpu 核心数 |
memory | Number | 内存大小, 单位MB |
location | String | 地理位置 |
ip_adress | Array | Arrary of Ip Address Object |
description | String | 描述信息 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 初始化任务id |
hosts | Array | Array of Host |
created_time | String | 创建时间 |
opts | Object | Host init task options |
finished_time | String | 结束时间 |
status | String | 当前状态, 可选值: ['running', 'failed', 'finished'] |
creator | String | 任务发起人 |
属性 | 类型 | 说明 |
---|---|---|
zabbix_groups | Array | zabbix监控主机组 |
zabbix_temlates | Array | zabbix监控模板 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 任务id |
hosts | Array | Array of Host |
creator | String | 发起人 |
created_time | String | 创建时间 |
finished_time | String | 完成时间 |
status | String | 状态, 可选值['running', 'failed', 'finished'] |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 任务id |
hosts | Array | Array of Host |
creator | String | 发起人 |
created_time | String | 创建时间 |
finished_time | String | 完成时间 |
status | String | 状态, 可选值['running', 'failed', 'finished'] |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 任务id |
hosts | Array | Array of Host |
creator | String | 发起人 |
created_time | String | 创建时间 |
finished_time | String | 完成时间 |
status | String | 状态, 可选值['running', 'failed', 'finished'] |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 申请单ID |
creator | String | 创建人 |
status | String | 申请单状态,可能值为['approved', 'wait_review', 'rejected', 'closed', 'finished'] |
created_time | String | 创建时间 |
associated_app | Number | 域名相关application id |
records | Array | Array of dns record |
属性 | 类型 | 说明 |
---|---|---|
name | String | 记录名 |
value | String | 记录值 |
type | String | 记录类型, 可能值为['A', 'MX', 'CNAME','NS'] |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 申请单ID |
creator | String | 创建人 |
status | String | 申请单状态,可能值为['approved', 'wait_review', 'rejected', 'closed', 'finished'] |
created_time | String | 创建时间 |
purpose | String | 用途 |
expect_delivery_days | String | 期望交付天数 |
expiration_type | String | 可选值['INFINITE', 'FINITE'] |
expiration_days | String | 使用天数 |
users_with_log_perm | Array | Array of User |
shipped_packages | Array | Array of Shipped Package |
requested_hosts | Array | Array of Requested Host |
属性 | 类型 | 说明 |
---|---|---|
name | String | 主机名 |
cpu_cores | Number | cpu 核心数 |
mem | Number | 内存大小,单位MB. |
storage | Number | 存储大小,单位MB |
属性 | 类型 | 说明 |
---|---|---|
id | Number | package id |
name | String | package 名称 |
type | String | 包类型 - ['zip', 'tar.gz', 'rpm'] |
maintainer | String | 维护人 |
craeted_time | String | 创建时间 |
update_time | String | 更新时间 |
description | String | 描述 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 申请单ID |
creator | String | 创建人 |
status | String | 申请单状态,可能值为['approved', 'wait_review', 'rejected', 'closed', 'finished'] |
created_time | String | 创建时间 |
purpose | String | 用途 |
expect_delivery_days | String | 期望交付天数 |
domian | String | 证书域名z |
certificate_type | String | 证书类型,可选值 ['wizard', 'normal']
|
属性 | 类型 | 说明 |
---|---|---|
id | Number | 服务器id |
creator | String | 创建人 |
created_time | String | 创建时间 |
name | String | 服务器名称 |
type | String | 可选值 ['bind', 'powerdns'] |
api_endpoint | String | dns服务器api接口地址 |
description | String | 描述 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
creator | String | 创建人 |
created_time | String | 创建时间 |
name | String | 域名 |
available_actions | String | available domain actions |
属性 | 类型 | 说明 |
---|---|---|
edit | Bool | 编辑 |
delete | Bool | 删除 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
creator | String | 创建人 |
created_time | String | 创建时间 |
name | String | 记录名 |
value | String | 记录值 |
type | String | 记录类型, 可选值['A', 'MX', 'CNAME', 'NS'] |
属性 | 类型 | 说明 |
---|---|---|
id | Number | ID |
owner | String | IP地址绑定对象类型, 默认为HOST, 可选值: ['HOST', 'LB', null] |
is_virtual | Bool | 是否为虚拟地址 |
addr_type | String | IP地址类型,可选值:['PRIVATE','PUBLIC'] |
network | String | 网络ID |
netmask | String | 子网掩码 |
address | String | IP地址 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 用户id |
username | String | 用户名 |
String | 邮箱 | |
phone | String | 手机号码 |
status | String | 用户状态, 可选值['enabled', 'disabled'] |
属性 | 类型 | 说明 |
---|---|---|
id | Number | 用户id |
name | String | 用户名 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
name | String | 导航名称 |
img | String | 导航图片路径 |
url | String | 导航地址 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
name | String | token名 |
value | String | token值 |
description | String | token描述 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
urls | Array | Array of url |
cdn_service_provider | String | cdn厂商, 可选值['ALI_CDN', 'TECENT_CDN', 'WANGSU'] |
refresh_mode | String | 刷新模式, recursive - 递归刷新 , single_file - 单文件刷新 |
status | String | 任务状态, 可选值 ['RUNNING', 'FINISHED', 'FAILED','TIMEOUT'] |
error | String | null | 错误信息, 当任务为'FAILED 时候',该字段包含详细错误信息, 其他状态时 为空. |
created_time | String | 创建时间 |
finished_time | String | null | 完成时间 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
user | String | 操作用户 |
host | String | 操作主机 |
text | String | 操作日志内容 |
created_time | String | 操作时间 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
op_target | String | 操作对象类型, 可选值['server', 'domain', 'record']op_type |
op_detail | String | 操作详情 |
op_time | String | 操作时间 |
operator | String | 操作人 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
hostname | String | 主机名 |
op_type | String | 操作类型, 可选值['add', 'delete', 'update', 'deatach_app', 'attach_app'] |
op_detail | String | 操作详情 |
op_time | String | 操作时间 |
operator | String | 操作人 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
app_name | String | 应用名 |
op_type | String | 操作类型, 可选值['add', 'update', 'delete', 'attach_host', 'deatach_host', 'change_deploy_setting'] |
op_detail | String | 操作详情 |
op_time | String | 操作时间 |
operator | String | 操作人 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
operator | String | 操作人 |
module_name | String | 被授权模块名 |
perm_name | String | 权限名 |
action | String | 授权动作类型 ['enable', 'disable'] |
authorized_target_type | String | 获得授权的目标类型,可选值 ['role', 'user'] |
authorized_target_name | String | 获得授权的用户或角色名 |
op_time | String | 操作时间 |
属性 | 类型 | 说明 |
---|---|---|
id | Number | id |
operator | String | 操作人 |
resource_type | String | 被授权资源类型, 可选值['host', 'application', 'business'] |
resource_id | Number | 被授权资源id |
perm_name | String | 权限名 |
action | String | 授权动作类型 ['enable', 'disable'] |
authorized_target_type | String | 获得授权的目标类型,可选值 ['role', 'user'] |
authorized_target_name | String | 获得授权的用户或角色名 |
op_time | String | 操作时间 |