- 返回值说明 返回类型: json json
- 返回码 - 请求示例 GET /toolkit/APP/5b336a5c59b8ce996928b236
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": { "_id": { "">oid": "5b336a5c59b8ce996928b236" }, "type": "flow", "name": "二人若若ddddd", "style": { "color": "primary", "icon": "fa fa-battery-half" }, "metadata": { "flowId": "35a62ccebc414d6f5350345111da3879", "params": [{ "cmdbAttrId": "ip", "cmdbObjectId": "HOST", "label": "执行目标", "multiple": true, "name": "@agents", "required": true, "type": "cmdbInstances", "showInjectCheckbox": false, "inject": false, "rawParamType": "cmdbInstances", "paramMap": false, "inputType": "custom", "value": ["172.17.0.56"], "instanceIds": ["5b0248704f01b"], "attrName": "执行目标" }] } } } }
修删除指定模型单个任意门 - 测试关键字 delete object toolkit
- 接口访问URL DELETE /toolkit/@objectId/@toolkitId
- 参数 名称 类型 必选 备注 默认值 toolkitId string 是 任意门toolkitId
- 返回值说明 返回类型: json json
- 返回码 返回码 备注 130300 数据库错误 130502 toolkitId格式错误 130308 查询无结果 0 成功
- 请求示例 DELETE /toolkit/APP/5b336a5c59b8ce996928b236
- 返回示例 { "message": "Success", "code": 0, "data": null, "error": "\u6210\u529f" }
修改模型任意门状态 状态 开启 关闭
- 测试关键字 set object toolkit status
- 接口访问URL PUT /toolkit/setting/@objectId
- 参数 名称 类型 必选 备注 默认值 objectId string 是 实例ID enabled string 是 任意门状态 true false
- 返回值说明 返回类型: json json
- 返回码 - 请求示例 PUT /toolkit/setting/APP { "enabled": true }
- 返回示例 { "message": "Success", "code": 0, "data": null, "error": "\u6210\u529f" }
获取模型任意门状态 - 测试关键字 get object toolkit setting
- 接口访问URL GET /toolkit/setting/@objectId
- 参数 名称 类型 必选 备注 默认值 objectId string 是 实例ID
- 返回值说明 返回类型: json json
- 返回码 - 请求示例 GET /toolkit/setting/APP
- 返回示例 { "message": "Success", "code": 0, "data": { "enabled": true }, "error": "\u6210\u529f" }
管理员查询用户 - 测试关键字 get user by admin
- 接口访问URL GET /admin/users/@username
- 参数 名称 类型 必选 备注 默认值 username string 是 用户名
- 返回值说明 返回类型: json 用户信息
- 返回码 管理员修改用户信息 - 测试关键字 modify user by admin
- 接口访问URL PUT /admin/users/@username
- 参数 名称 类型 必选 备注 默认值 username string 是 用户名 email string 否 邮箱 phone string 否 手机 password string 否 密码
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
管理员查询所有用户信息 - 测试关键字 get users by admin
- 接口访问URL GET /admin/users
- 参数 名称 类型 必选 备注 默认值 page int 否 页码 pageSize int 否 页大小 state string 否 用户可用状态, 枚举型 valid, invalid name stirng 否 用户名, 用分号隔开
- 返回值说明 返回类型: json 用户信息列表
- 返回码 管理员删除用户信息 - 测试关键字 remove user by admin
- 接口访问URL DELETE /admin/users/@username
- 参数 名称 类型 必选 备注 默认值 username string 是 用户名
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
管理员禁用用户 无法禁用自己
- 测试关键字 block user by admin
- 接口访问URL PUT /admin/users/@username/_block
- 参数 名称 类型 必选 备注 默认值 username string 是 用户名
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
管理员解禁用户 无法解禁自己
- 测试关键字 unblock user by admin
- 接口访问URL PUT /admin/users/@username/_unblock
- 参数 名称 类型 必选 备注 默认值 username string 是 用户名
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
用户ID列表查询 - 接口访问URL GET /users/id
- 参数 名称 类型 必选 备注 默认值 state string 否 用户状态valid/invalid, 默认返回所有用户id
- 返回值说明 返回类型: json 用户id列表
- 返回码 - 请求示例 GET http://cmdb.easyops-only.com/users/id?state=valid
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": [ "easyops", "linuschen", "lightjiao", "lulutest", "indexzhuo", * "rufusyang", "robotname", "robota", "index" ] }
用户ID/昵称映射列表查询 - 接口访问URL GET /users/id_map_nickname
- 参数 名称 类型 必选 备注 默认值 state string 否 用户状态valid/invalid, 默认返回所有用户id
- 返回值说明 返回类型: json 用户id/昵称映射列表
- 返回码 - 请求示例 GET http://cmdb.easyops-only.com/users/id_map_nickname?state=valid
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": [ "easyops": "easyops", "linuschen": "linuschen", "lightjiao": "lightjiao", "lulutest": "lulutest", "indexzhuo": "indexzhuo", "rufusyang": "rufusyang", "robotname": "robotname", "robota": "robota", "index": "index" ] }
查询用户登录信息 指定key和value返回用户的登录信息(org和name), 请求这个接口的header里面不需要user和org
- 测试关键字 get user login info
- 接口访问URL GET /user/login_info
- 参数 名称 类型 必选 备注 默认值 login_key string 是 登录的key字符串, 例如SSO登录时候的工号的key login_value string 是 登录的值, 例如SSO登录时候的工号的值
- 返回值说明 返回类型: json 用户登录信息的name和org
- 请求示例 GET /user/login_info?login_key=userNo&login_value=12342234
- 返回示例 { "message": "Success", "code": 0, "data": { "org": 8888, "name": "easyops" }, "error": "\u6210\u529f" }
查询所有org 暂时不做自动化测试
- 接口访问URL GET /org/list
- 返回值说明 返回类型: json org信息列表
- 返回码 查询设备列表 @deprecated, 接口较老,不再建议使用
- 测试关键字 search device
- 接口访问URL GET /device/search
- 参数 名称 类型 必选 备注 默认值 ip string 否 设备IP hostname string 否 主机名 provider string 否 服务商 deviceId int 否 设备ID status string 否 设备状态 location string 否 设备状态 user_name string 否 设备状态 order string 否 排序字段 fields string 否 查询字段 ignore string 否 过滤字段 page int 否 分页 pageSize int 否 分页大小
- 返回值说明 返回类型: json 设备列表
自动注册设备信息 - 测试关键字 register device
- 接口访问URL POST /device/register
- 参数 名称 类型 必选 备注 默认值 hostname string 是 主机名 ip string 是 主机IP status string 是 运营状态
- 返回值说明 返回类型: json null
根据设备查应用 @deprecated接口较老,不再建议使用
- 测试关键字 search app by device_ids
- 接口访问URL GET /device/app-list
- 参数 名称 类型 必选 备注 默认值 deviceIdList string 是 设备id列表,以分号分隔
- 返回值说明 返回类型: json 应用列表
查询设备信息,支持批量 @deprecated, 接口较老,已弃用 高级查询请使用接口POST /object/@object_id/instance/_search
- 测试关键字 get device by key value
- 接口访问URL GET /v2/device/@key/@val
- 参数 名称 类型 必选 备注 默认值 key string 是 键 val string 是 值 fields string 否 需要的字段,默认全部返回, 用分号隔开多个字段 ignore string 否 忽略的字段,默认全部返回, 用分号隔开多个字段 page int 否 分页 pageSize int 否 分页大小
- 返回值说明 返回类型: json 设备列表
用户注册接口 注册用户, 提供username, password和org
- 测试关键字 signup
- 接口访问URL POST /sign_up
- 参数 名称 类型 必选 备注 默认值 username string 是 用户名 password string 是 用户密码 org int 是 组织id
- 返回值说明 返回类型: json 用户信息
- 返回码 绑定流水线 - 接口访问URL POST /application/@app_id/pipeline
- 参数 名称 类型 必选 备注 默认值 app_id string 是 应用ID name string 是 流水线名称 flowId string 是 流程ID flowVersion int 是 流程版本ID templateId string 否 模板ID templateVersion int 否 模板版本ID rules array 否 流水线规则 subscribers array 否 订阅者列表
- 返回值说明 返回类型: json 流水线信息
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
- 请求示例 { "name": "", "flowId": "", "flowVersion": "", "templateId": "", "templateVersion": "", "rules": { hooks: { enabled: true }, schedules: { enabled: true }, }, "subscribers": [] }
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": { "name": "", "flowId": "", "flowVersion": "", "templateId": "", "templateVersion": "", "rules": { hooks: { enabled: true }, schedules: { enabled: true }, }, "subscribers": [] } }
解绑流水线 - 接口访问URL DELETE /application/@app_id/pipeline/@flow_id
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
- 返回示例 { "message": "Success", "code": 0, "data": null, "error": "\u6210\u529f" }
列出流水线 - 接口访问URL GET /application/@app_id/pipeline
- 返回值说明 返回类型: json 流水线列表
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
- 返回示例 { "message": "Success", "code": 0, "data": { "list": [ { "flowId": "", "templateId": "", "templateVersion": "", "flowVersion": "" }, { "flowId": "", "templateId": "", "templateVersion": "", "flowVersion": "" } ] }, "error": "\u6210\u529f" }
查询流水线 - 接口访问URL GET /application/@app_id/pipeline/@flow_id
- 返回值说明 返回类型: json 流水线列表
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
- 返回示例 { "message": "Success", "code": 0, "data": { "flowId": "", "templateId": "", "templateVersion": "", "flowVersion": "" }, "error": "\u6210\u529f" }
修改流水线 - 接口访问URL PUT /application/@app_id/pipeline/@flow_id
- 参数 名称 类型 必选 备注 默认值 app_id string 是 应用ID name string 是 流水线名称 flowVersion int 否 流程版本ID templateVersion int 否 模板版本ID rules array 否 流水线规则 subscribers array 否 订阅者列表
- 返回值说明 返回类型: json 流水线信息
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
- 请求示例 { "templateVersion": "", "flowVersion": "" }
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": { "name": "", "flowId": "", "flowVersion": "", "templateId": "", "templateVersion": "", "rules": { hooks: { enabled: true }, schedules: { enabled: true }, }, "subscribers": [] } }
根据key value查询集群列表 暂时不做自动化测试
- 接口访问URL GET /v2/cluster/@key/@val
- 参数 名称 类型 必选 备注 默认值 key string 是 键 val string 是 值
- 返回值说明 返回类型: json 集群列表
批量获取集群列表 @deprecated, 接口较老,已弃用 高级查询请使用接口POST /object/@object_id/instance/_search
- 测试关键字 get cluster list by instanceids
- 接口访问URL GET /clusters/@instanceIds
- 参数 名称 类型 必选 备注 默认值 instanceIds string 否 instanceId列表,逗号分割,id为空时,获取所有应用列表 page int 否 当前页码 1 pageSize int 否 每页大小 30
- 返回值说明 返回类型: json 集群列表
- 返回码 - 返回示例 { "code": 0, "error": "成功", "message": null, "data": { "total": 78, "list": [ { "name": "test", "clusterId": "e71ad9c15fe8a989db8a8912a58d4693", "packageId": null, "deviceList": null, "appId": { "appId": "5c9bba099758cb89c7f1d394f6a08286", "instanceId": "56dff11497f66" }, "type": "0", "memo": null, "instanceId": "56e0a79e8f2fb", "ctime": "2016-03-10 06:45:50", "org": 8888, "mtime": "2016-04-06 14:56:55", "modifier": "colintest" } ] }
根据应用获取集群列表 - 测试关键字 get cluster list by app
- 接口访问URL GET /cluster/appid/@appId
- 参数 名称 类型 必选 备注 默认值 appId string 是 应用ID page int 否 页码 pageSize int 否 每页大小
- 返回值说明 返回类型: json 集群列表
- 返回码 获取集群信息 @deprecated 接口较老不建议使用,建议使用接口 GET /object/@object_id/instance/@instance_id
- 测试关键字 get cluster info
- 接口访问URL GET /cluster/@instanceId
- 参数 名称 类型 必选 备注 默认值 instanceId string 是 集群id
- 返回值说明 返回类型: json 集群详情
- 返回码 安装agent 自动安装暂时不纳入自动化测试
- 接口访问URL POST /agent/install
- 参数 名称 类型 必选 备注 默认值 ip string 是 安装agent的目标ip port string 是 安装agent的目标端口 username string 是 机器用户名 password string 是 机器密码 async bool 否 是否异步安装
- 返回值说明 返回类型: json 应用详情
- 请求示例 { "username": "root", "ip": "192.168.1.2", "password": "123456", "port": 22, "async": true }
- 返回示例 { "message": "Success", "code": 0, "data": {}, "error": "\u6210\u529f" }
查询安装结果 自动安装暂时不纳入自动化测试
- 接口访问URL GET /agent/install
- 参数 名称 类型 必选 备注 默认值 ip string 是 安装agent的目标ip port string 是 安装agent的目标端口 username string 是 机器用户名 password string 是 机器密码
- 返回值说明 返回类型: json 结果 status ["run","ok","failed"]
- 请求示例 { "ip":"192.168.1.2", "port":22, "username":"root", "password":"123456", }
- 返回示例 { "message": "Success", "code": 0, "data": { "status": "ok", "retCode": "0", "detail": "###SCRIPT_START###\nstart to install...\nCentOS release 6.7 (Final)\nCentOS release 6.7 (Final)\nCentOS release 6.7 (Final)\nstart to download...\nstart to run...\npath is: /usr/local/easyops/pkg/conf/agent/e9c35bb\nthere are monitor logs, package.conf.yaml, and so on. enjoy it\n###result=success&code=0&msg=success###\n###result=success&code=0&msg=ok###\n###CODE#0#CODE###\n###SCRIPT_END###\n" }, "error": "\u6210\u529f" }
获取agent安装密钥 - 测试关键字 agent get install key
- 接口访问URL GET /agent/install_key
- 返回值说明 返回类型: json agent安装密钥
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误 133015 获取密钥失败
- 返回示例 { "message": "Success", "code": 0, "data": "656a9d406b86b21bfc47340bc1e079f7595e145d", "error": "\u6210\u529f" }
获取agent代理安装脚本 暂时不做自动化测试
- 接口访问URL GET /agent/proxy_install_script
- 返回值说明 返回类型: file 安装脚本文件
- 返回码 返回码 备注 130202 文件不存在 130205 打开文件错误
获取agent安装脚本 - 测试关键字 agent get install script
- 接口访问URL GET /agent/install_script/@os
- 参数 名称 类型 必选 备注 默认值 os string 是 操作系统 install_key string 是 Agent安装密钥 proxy_ip string 否 代理地址
- 返回值说明 返回类型: file 安装脚本文件
- 返回码 返回码 备注 130202 文件不存在 130205 打开文件错误
查询邀请码 根据用户信息获取邀请码
- 测试关键字 get invite code
- 接口访问URL GET /invitation/code
- 返回值说明 返回类型: json 邀请码及相关信息
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
- 返回示例 { "message": "Success", "code": 0, "data": { "code": "SAV35SRYV", "org": 8888, "_id": "0ddb5877c896f43e8734e10b001e7f1eb92889cd", "ts": 1492107569, "expires": "2017-04-17 02:19:29" }, "error": "\u6210\u529f" }
重置邀请码 - 测试关键字 reset invite code
- 接口访问URL PUT /invitation/code/_reset
- 返回值说明 返回类型: json 新的邀请码
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
- 返回示例 { "message": "Success", "code": 0, "data": { "org": 8888, "code": "SAV35SRYV", "ts": 1492107569, "expires": "2017-04-17 02:19:29" }, "error": "\u6210\u529f" }
创建集群 - 测试关键字 create cluster
- 接口访问URL POST /cluster
- 参数 名称 类型 必选 备注 默认值 name string 是 集群名称 appId string 是 集群所属应用的appId type string 是 集群类型 deviceList array 否 主机列表
- 返回值说明 返回类型: json instanceId
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 请求示例 { "deviceList": [ "56dfea1bc8a96", "56dfea253c80f" ], "type": 1, "name": "\u535a\u5ba2\u96c6\u7fa4", "appId": "56dff11497f66" }
- 返回示例 { "message": "Success", "code": 0, "data": "5715e1aa4a014", "error": "\u6210\u529f" }
修改集群 - 测试关键字 update cluster
- 接口访问URL PUT /cluster/@instanceId
- 参数 名称 类型 必选 备注 默认值 instanceId string 是 实例ID type string 否 集群类型 name string 否 集群名称
- 返回值说明 返回类型: json 集群instanceId
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 请求示例 { "name": "\u535a\u5ba2\u5e94\u7528" }
- 返回示例 { "message": "Success", "code": 0, "data": "5715e1aa4a014", "error": "\u6210\u529f" }
删除集群 - 测试关键字 delete cluster
- 接口访问URL DELETE /cluster/@instanceId
- 参数 名称 类型 必选 备注 默认值 instanceId string 是 集群id
- 返回值说明 返回类型: json instanceId
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
集群添加设备 URL中的clusterId为集群的instanceId; deviceIds 为主机instanceId列表, 用分号隔开
- 测试关键字 add devices to cluster
- 接口访问URL POST /cluster/@clusterId/device/@deviceIds
- 参数 名称 类型 必选 备注 默认值 clusterId string 是 集群实例ID deviceIds string 是 主机实例ID列表, 用分号隔开
- 返回值说明 返回类型: json 集群instanceId
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
解除集群关联设备 URL中的clusterId为集群的instanceId; deviceIds 为主机instanceId列表, 用分号隔开
- 测试关键字 delete devices from cluster
- 接口访问URL DELETE /cluster/@clusterId/device/@deviceIds
- 参数 名称 类型 必选 备注 默认值 clusterId string 是 集群实例ID deviceIds string 是 主机实例ID列表, 用分号隔开
- 返回值说明 返回类型: json 集群instanceId
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
集群关联包 URL中的ClusterId 为集群InstanceId
- 测试关键字 add package list to cluster
- 接口访问URL POST /cluster/@clusterId/package
- 参数 名称 类型 必选 备注 默认值 clusterId string 是 集群实例ID package_list struct 是 包列表
- 返回值说明 返回类型: json null
- 请求示例 [ { "packageId": "3d81bc9e85ea9ffc5959303c0ed09780", "installPath": "/data/test" } ]
解除集群关联包 - 测试关键字 delete package from cluster
- 接口访问URL DELETE /cluster/@clusterId/package/@packageIds
- 参数 名称 类型 必选 备注 默认值 clusterId string 是 集群实例ID packageIds string 是 包ID列表, 用分号隔开 installPath string 是 包安装路径
- 返回值说明 返回类型: json null
修改集群关联包 - 测试关键字 update package in cluster
- 接口访问URL PUT /cluster/@clusterId/package
- 参数 名称 类型 必选 备注 默认值 clusterId string 是 应用id packageId string 是 包id installPath string 是 安装路径 installPathNew string 否 修改后的安装路径,可选
- 返回值说明 返回类型: json null
- 请求示例 { "installPathNew": "data/test1", "isMaster": "true", "packageId": "3d81bc9e85ea9ffc5959303c0ed09780", "installPath": "/data/test" }
管理员修改用户信息 - 测试关键字 modify user by admin
- 接口访问URL PUT /admin/users/@name
- 参数 名称 类型 必选 备注 默认值 name string 是 用户名 email string 否 邮箱 phone string 否 手机 password string 否 密码
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
用户邀请注册 - 测试关键字 register by invite
- 接口访问URL POST /users/register
- 参数 名称 类型 必选 备注 默认值 name string 是 用户名 password string 是 密码 email string 是 邮箱 invite string 是 邀请码 phone string 否 电话
- 返回值说明 返回类型: json 注册后用户信息
- 返回码 返回码 备注 130300 数据库错误 133201 邀请码无效 133210 用户名或信息重复
- 请求示例 { "password": "dev@easyops", "name": "indexzhuo3", "invite": "SMRKTSKQY", "email": "[email protected] " }
- 返回示例 { "message": "Success", "code": 0, "data": { "name": "indexzhuo3", "email_verified": "0", "userId": "8", "phone": "18888888888", "role": "USER", "phone_verified": "0", "mtime": null, "org": "1040", "email": "[email protected] ", "ctime": "2016-02-19 13:22:11" }, "error": "\u6210\u529f" }
分页查询apikey - 测试关键字 list apikey
- 接口访问URL GET /apikey
- 参数 名称 类型 必选 备注 默认值 page int 否 页码 page_size int 否 页大小
- 返回值说明 返回类型: json apikey列表
- 返回码 - 返回示例 { "message": "Success", "code": 0, "data": { "total": 2, "list": [ { "access_key": "60ff85cf36510cd2ba91bd64", "ctime": "2017-01-10 17:34:57", "ts": 1490752672, "state": "valid", "user": "openapi", "org": 8888, "secret_key": "72261ec386cffc7597aa81530a606435e2ce26a181fca7a7749bf3ed70355812" }, { "access_key": "e7b6a060b55b42713332b93c", "ctime": "2017-03-29 10:11:38", "ts": 1490753498, "state": "valid", "user": "lightjiao11", "org": 8888, "secret_key": "f1ede17ef5078a9ef62fa0a113b43a710820257700ff67ae9b6a29eed891ec5a" } ], "page": 1, "page_size": 30 }, "error": "\u6210\u529f" }
创建apikey - 测试关键字 create apikey
- 接口访问URL POST /apikey
- 参数 名称 类型 必选 备注 默认值 username string 是 用户名
- 返回值说明 返回类型: json apikey信息
- 返回码 - 请求示例 { "username": "lightjiao11", }
- 返回示例 { "message": "Success", "code": 0, "data": { "access_key": "e7b6a060b55b42713332b93c", "ctime": "2017-03-29 10:11:38", "ts": 1490753498, "state": "valid", "user": "lightjiao11", "org": 8888, "secret_key": "f1ede17ef5078a9ef62fa0a113b43a710820257700ff67ae9b6a29eed891ec5a" }, "error": "\u6210\u529f" }
重置apikey - 测试关键字 reset apikey
- 接口访问URL POST /apikey/_reset
- 参数 名称 类型 必选 备注 默认值 username string 是 用户名
- 返回值说明 返回类型: json apikey信息
- 返回码 - 请求示例 { "username": "lightjiao11", }
- 返回示例 { "message": "Success", "code": 0, "data": { "access_key": "e7b6a060b55b42713332b93c", "ctime": "2017-03-29 10:11:38", "ts": 1490753498, "state": "valid", "user": "lightjiao11", "org": 8888, "secret_key": "f1ede17ef5078a9ef62fa0a113b43a710820257700ff67ae9b6a29eed891ec5a" }, "error": "\u6210\u529f" }
启用apikey 根据access_key启用apikey, 启用后apikey的state值为valid
- 测试关键字 enable apikey
- 接口访问URL PUT /apikey/@access_key/_enable
- 参数 名称 类型 必选 备注 默认值 access_key string 是 access_key
- 返回值说明 返回类型: json apikey信息
- 返回码 - 请求示例 PUT /apikey/e7b6a060b55b42713332b93c/_enable
- 返回示例 { "message": "Success", "code": 0, "data": { "access_key": "e7b6a060b55b42713332b93c", "ctime": "2017-03-29 10:11:38", "ts": 1490753498, "state": "valid", "user": "lightjiao11", "org": 8888, "secret_key": "f1ede17ef5078a9ef62fa0a113b43a710820257700ff67ae9b6a29eed891ec5a" }, "error": "\u6210\u529f" }
禁用apikey 根据access_key禁用apikey, 禁用后apikey的state值为invalid
- 测试关键字 disable apikey
- 接口访问URL PUT /apikey/@access_key/_disable
- 参数 名称 类型 必选 备注 默认值 access_key string 是 access_key
- 返回值说明 返回类型: json apikey信息
- 返回码 - 请求示例 PUT /apikey/e7b6a060b55b42713332b93c/_disable
- 返回示例 { "message": "Success", "code": 0, "data": { "access_key": "e7b6a060b55b42713332b93c", "ctime": "2017-03-29 10:11:38", "ts": 1490753498, "state": "invalid", "user": "lightjiao11", "org": 8888, "secret_key": "f1ede17ef5078a9ef62fa0a113b43a710820257700ff67ae9b6a29eed891ec5a" }, "error": "\u6210\u529f" }
删除apikey - 测试关键字 delete apikey
- 接口访问URL DELETE /apikey/@access_key
- 参数 名称 类型 必选 备注 默认值 access_key int 是 access_key
- 返回值说明 返回类型: json json
- 返回码 - 返回示例 { "message": "\u5220\u9664OpenAPI Key\u5931\u8d25", "code": 130308, "data": null, "error": "\u67e5\u8be2\u65e0\u7ed3\u679c" }
获取所有密钥对 - 测试关键字 get keypair page
- 接口访问URL GET /v1/key_pairs
- 参数 名称 类型 必选 备注 默认值 company string 否 云提供商 page int 否 页码 pageSize int 否 每页数量
- 返回值说明 返回类型: json KeyPair列表
- 返回示例 { "message": "Success", "code": 0, "data": { "total": 1, "list": [ { "name": "aws_easyops", "login_private_key": "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", "company": "Amazon Web Services", "mtime": null, "state": "valid", "secret": "aj/iQM6W33fx3QMZvmDPW6ESXYbAAjndw4iJaoCITFeKV5vpmfomCczMQ91no7cQ", "org": 8888, "key_id": "AKIAPDBJETHSWZKAZXPQ", "_id": "58b14c0959b8ce640b1e59c7", "ctime": "2017-02-25 17:19:05" } ], "page": 0, "pageSize": 200 }, "error": "\u6210\u529f" }
获取密钥对 参数中的id为Mongo数据库中的 _id
- 测试关键字 get keypair
- 接口访问URL GET /v1/key_pairs/@id
- 参数 名称 类型 必选 备注 默认值 id string 是 密钥对的 _id
- 返回值说明 返回类型: json 密钥对数据
- 返回码 - 返回示例 { "message": "Success", "code": 0, "data": { "name": "aws_easyops", "login_private_key": "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", "company": "Amazon Web Services", "mtime": null, "state": "valid", "secret": "aj/iQM6W33fx3QMZvmDPW6ESXYbAAjndw4iJaoCITFeKV5vpmfomCczMQ91no7cQ", "org": 8888, "key_id": "AKIAPDBJETHSWZKAZXPQ", "_id": "58b14c0959b8ce640b1e59c7", "ctime": "2017-02-25 17:19:05" }, "error": "\u6210\u529f" }
添加密钥对 添加密钥对的行为为覆盖添加, 即删除掉已经存在的密钥对重新添加, 以company为唯一
- 测试关键字 add keypair
- 接口访问URL POST /v1/key_pairs
- 参数 名称 类型 必选 备注 默认值 company string 是 公司 name string 是 键值对名称 key_id string 是 键值对ID secret string 是 键值对密码 login_private_key string 是 登录私钥
- 返回值说明 返回类型: json 创建成功的密钥对信息
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误 130313 重复键错误
修改密钥对 参数中的id为Mongo数据库中的 _id; 提供商不可修改
- 测试关键字 update key pair
- 接口访问URL PUT /v1/key_pairs/@id
- 参数 名称 类型 必选 备注 默认值 id string 是 密钥对的 _id name string 否 键值对名称 key_id string 否 键值对ID secret string 否 键值对密码 login_private_key string 否 登录私钥
- 返回值说明 返回类型: json 修改后的键值对信息
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
删除密钥对 参数中的id为Mongo数据库中的 _id
- 测试关键字 delete key pair
- 接口访问URL DELETE /v1/key_pairs/@id
- 参数 名称 类型 必选 备注 默认值 id string 是 密钥对的 _id
- 返回值说明 返回类型: json 删除的 _id
- 返回码 返回码 备注 130300 数据库错误 130601 权限错误
创建订阅规则 - 测试关键字 create subscription rule
- 接口访问URL POST /object/@object_id/subscription
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID type string 是 规则类型 instance/relation_query_strategy crontab string 是 定时任务策略 receive_user array 否 导出结果接收用户实例Id列表 receive_group array 否 导出结果接收用户组实例Id列表 relation_query_strategy_id string 否 关系查询策略Id,当type=relation_query_strategy时,需必填 query_url string 是 查询结果页URL
- 返回值说明 返回类型: json 订阅规则创建结果
- 返回码 - 请求示例 POST /object/APP/subscription { "type":"instance/relation_query_strategy", "crontab":"* * * * ", "receive_user":["5a77377","883a883838"], "receive_group":["5a5555e5","5a62663"], "relation_query_strategy_id":"4252535", "query_url":"https://www.google.com.hk" }
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": { "subscription_id": "590bdb58e53ae0061a0ce812", "object_id": "APP", "type":"instance/relation_query_strategy", "crontab":" * * * ", "receive_user":["5a77377","883a883838"], "receive_group":["5a5555e5","5a62663"], "relation_query_strategy_id":"4252535", "scheduler_id":"5ade9d2f59b8ce775ed8da3c", "query_url":"https://www.google.com.hk", "operator":"easyops", "ts":"22222222", }
修改订阅规则 - 测试关键字 modify subscription rule
- 接口访问URL PUT /object/@object_id/subscription/@subscription_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID subscription_id string 是 订阅规则Id crontab string 否 定时任务策略 receive_user array 否 导出结果接收用户实例Id列表 receive_group array 否 导出结果接收用户组实例Id列表
- 返回值说明 返回类型: json 订阅规则修改结果
- 返回码 返回码 备注 130300 数据库错误 134000 订阅策略失效
- 请求示例 PUT /object/APP/subscription/535356253 { "crontab":" * * * ", "receive_user":["5a77377","883a883838"], "receive_group":["5a5555e5","5a62663"], }
- 返回示例 { "message": "Success", "code": 0, "data": { "scheduler_id": "5af2cf6e7231367e93b5fa99", "object_id": "APP", "ts": 1525862481, "receive_group": [ "5a5555e5", "5a62663" ], "query_url": "https://www.google.com.hk", "relation_query_strategy_id": "123", "crontab": " * * * *", "operator": "easyops", "subscription_id": "5af2cf6d7c587", "_id": { "
删除订阅规则 - 测试关键字 delete subscription rule
- 接口访问URL DELETE /object/@object_id/subscription/@subscription_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID subscription_id string 是 订阅规则Id
- 返回值说明 返回类型: json 订阅规则删除结果
- 返回码 - 请求示例 DELETE /object/APP/subscription/535356253
- 返回示例 { "message": "Success", "code": 0, "data": null, "error": "\u6210\u529f" }
获取订阅规则 - 测试关键字 get subscription list
- 接口访问URL GET /object/@object_id/subscription/@type/list
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID type string 是 订阅规则type,值为instance或relation_query_strategy,当type=relation_query_strategy时,需有relation_query_strategy_id参数 relation_query_strategy_id string 否 关系查询策略Id
- 返回值说明 返回类型: json 订阅规则查询结果列表
- 返回码 - 请求示例 GET /object/APP/subscription/relation_query_strategy/list?relation_query_strategy_id=544444434
- 返回示例 { "message": "Success", "code": 0, "data": [ { "scheduler_id": "5ade9d2f59b8ce775ed8da3c", "object_id": "APP", "ts": "22222222", "receive_group": [ "5a5555e5", "5a62663" ], "query_url": "https://www.google.com.hk", "relation_query_strategy_id": "4252535", "crontab": "* * * * *", "operator": "easyops", "subscription_id": "590bdb58e53ae0061a0ce812", "type": "instance/relation_query_strategy", "receive_user": [ "5a77377", "883a883838" ] } ], "error": "\u6210\u529f" }
查询关系查询策略是否被订阅规则使用 - 测试关键字 check object relation query strategy in use
- 接口访问URL GET /object/@object_id/relation_query_strategy/@relation_query_strategy_id/_check_in_use
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID relation_query_strategy_id string 是 策略ID
- 返回值说明 返回类型: json json
- 返回示例 { "message": "Success", "code": 0, "data": { "in_use": true }, "error": "\u6210\u529f" }
发送邮件 - 测试关键字 send mail
- 接口访问URL POST /message/email
- 参数 名称 类型 必选 备注 默认值 sendTo string 是 目标地址 subject string 是 邮件标题 msg string 是 消息内容 cc string 否 抄送 sendFrom string 否 发送方地址 sendFromName string 否 发送方名称 contentType string 否 发送内容类型, 请参考网址https://en.wikipedia.org/wiki/Media_type , 默认为text/plain
- 返回值说明 返回类型: json null
- 返回码 用户登录 用户登录接口
- 测试关键字 login
- 接口访问URL POST /login
- 参数 名称 类型 必选 备注 默认值 uid string 是 登录id password string 是 登录密码
- 返回值说明 返回类型: json 用户信息
- 返回码 - 请求示例 { "password": "654321", "uid": "indexzhuo" }
- 返回示例 { "message": "Success", "code": 0, "data": { "org": 8888, "name": "indexzhuo" }, "error": "\u6210\u529f" }
发现基础拓扑节点信息 - 接口访问URL PUT /topology/base/@type/@node/_discover
- 参数 名称 类型 必选 备注 默认值 type string 是 基础拓扑类型 node string 是 基础拓扑点ID edge_list array 是 基础拓扑边信息
- 返回值说明 返回类型: json null
- 返回码 查询基础拓扑节点信息 - 接口访问URL GET /topology/base/@type/@node
- 参数 名称 类型 必选 备注 默认值 type string 是 基础拓扑类型 node string 是 基础拓扑点ID
- 返回值说明 返回类型: json 拓扑节点信息
- 返回码 删除基础拓扑节点信息 - 接口访问URL DELETE /topology/base/@type/@node
- 参数 名称 类型 必选 备注 默认值 type string 是 基础拓扑类型 node string 是 基础拓扑点ID
- 返回值说明 返回类型: json null
- 返回码 创建基础拓扑节点信息 - 接口访问URL POST /topology/base/@type/@node
- 参数 名称 类型 必选 备注 默认值 type string 是 基础拓扑类型 node string 是 基础拓扑点ID edge_list array 是 基础拓扑边信息
- 返回值说明 返回类型: json 拓扑点ID
- 返回码 更新基础拓扑节点信息 - 接口访问URL PUT /topology/base/@type/@node/@version
- 参数 名称 类型 必选 备注 默认值 type string 是 基础拓扑类型 node string 是 基础拓扑点ID version string 是 文档版本 edge_list array 否 基础拓扑边列表
- 返回值说明 返回类型: json 更新后节点信息
- 返回码 查询拓扑信息 - 接口访问URL GET /topology/custom/@id
- 参数 名称 类型 必选 备注 默认值 id string 是 文档_id
- 返回值说明 返回类型: json 拓扑信息
- 返回码 创建拓扑信息 - 接口访问URL POST /topology/custom
- 参数 名称 类型 必选 备注 默认值 name string 是 节点名称 nodes array 是 节点信息 links array 是 节点链接
- 返回值说明 返回类型: json 创建后的节点ID
- 返回码 更新拓扑信息 - 接口访问URL PUT /topology/custom/@id/@version
- 参数 名称 类型 必选 备注 默认值 id string 是 文档_id version string 是 文档版本 name string 是 节点名称 nodes array 是 节点信息 links array 是 节点链接
- 返回值说明 返回类型: json 更新后的节点信息
- 返回码 删除拓扑信息 - 接口访问URL DELETE /topology/custom/@id
- 参数 名称 类型 必选 备注 默认值 id string 是 文档_id
- 返回值说明 返回类型: json null
获取应用信息 - 测试关键字 get app
- 接口访问URL GET /app/@instanceId
- 参数 名称 类型 必选 备注 默认值 instanceId string 是 实例ID
- 返回值说明 返回类型: json 应用详情
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
创建应用 - 测试关键字 create app
- 接口访问URL POST /app
- 参数 名称 类型 必选 备注 默认值 name string 是 应用名 owner array 是 运维负责人实例id列表 developer array 否 开发负责人实例id列表 tester array 否 测试负责人实例id列表 businesses string 否 关联业务实例id memo string 否 备注信息
- 返回值说明 返回类型: json 应用实例id
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 请求示例 { "name": "博客应用", "owner": ["56dfea1bc8a96","56dfea253c80f"], "developer": ["56dfea1bc8a96","56dfea253c80f"], "tester": ["56dfea1bc8a96","56dfea253c80f"], "businesses": 56dfea1bc8aab, "memo": "WordPress博客", }
- 返回示例 { "message": "Success", "code": 0, "data": "5715e1aa4a014", "error": "\u6210\u529f" }
修改应用 - 测试关键字 update app
- 接口访问URL PUT /app/@instanceId
- 参数 名称 类型 必选 备注 默认值 instanceId string 是 应用id name string 否 应用名 owner array 否 运维负责人实例id列表 developer array 否 开发负责人实例id列表 tester array 否 测试负责人实例id列表 memo string 否 备注信息
- 返回值说明 返回类型: json 应用实例ID
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 请求示例 { "runUser": "root:users", "name": "\u535a\u5ba2\u5e94\u7528", "tester": [ "56dfea1bc8a96", "56dfea253c80f" ], "memo": [ "56dfea1bc8a96", "56dfea253c80f" ], "installPath": "/data/easyops/blog/", "owner": [ "56dfea1bc8a96", "56dfea253c80f" ], "developer": [ "56dfea1bc8a96", "56dfea253c80f" ] }
删除应用 - 测试关键字 delete app
- 接口访问URL DELETE /app/@instanceId
- 参数 名称 类型 必选 备注 默认值 instanceId string 是 应用id
- 返回值说明 返回类型: json 应用实例ID
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 返回示例 { "message": "Success", "code": 0, "data": "5715e1aa4a014", "error": "\u6210\u529f" }
应用关联程序包 - 测试关键字 add package list to app
- 接口访问URL POST /app/@appId/package
- 参数 名称 类型 必选 备注 默认值 appId string 是 应用id package_list struct 是 包列表
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 请求示例 [ { "isMaster": "true", "packageId": "3d81bc9e85ea9ffc5959303c0ed09780", "installPath": "/data/test" } ]
应用解除关联包 - 测试关键字 delete package from app
- 接口访问URL delete /app/@appId/package/@packageId
- 参数 名称 类型 必选 备注 默认值 appId string 是 应用id packageId string 是 包id installPath string 否 安装包路径
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
修改应用关联包 以packageId 和installPath 组合键标识唯一的程序包做修改
- 测试关键字 update package in app
- 接口访问URL PUT /app/@appId/package
- 参数 名称 类型 必选 备注 默认值 appId string 是 应用实例ID packageId string 是 包id installPath string 是 安装路径 installPathNew string 否 修改后的安装路径,可选 isMaster string 否 设置是否是主程序包,可选
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 请求示例 { "installPathNew": "data/test1", "isMaster": "true", "packageId": "3d81bc9e85ea9ffc5959303c0ed09780", "installPath": "/data/test" }
程序包排序 对应用的程序包做排序功能,传入的参数为排序好的该应用的所有程序包
- 测试关键字 update package list in app for sort
- 接口访问URL PUT /app/@appId/package_list/_sort
- 参数 名称 类型 必选 备注 默认值 appId string 是 应用ID package_list struct 是 包列表
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 请求示例 [ { "isMaster": "true", "packageId": "3d81bc9e85ea9ffc5959303c0ed09780", "installPath": "/data/test" } ]
创建文档 接口存在风险,会污染既定的文档数据; 参数中的 data字段只是为了自动化测试方便所添加的, 实际使用场景可以忽略
- 测试关键字 create document in collection
- 接口访问URL POST /system/storage/collection/@collectionName/document/@id
- 参数 名称 类型 必选 备注 默认值 collectionName string 是 集合名称 id string 否 文档_id doc_data string 否 文档数据内容
- 返回值说明 返回类型: json 创建成功的文档数据
- 返回码 修改文档 接口存在风险,会污染既定的文档数据 参数中的 data字段只是为了自动化测试方便所添加的, 实际使用场景可以忽略
- 测试关键字 update document in collection
- 接口访问URL PUT /system/storage/collection/@collectionName/document/@id
- 参数 名称 类型 必选 备注 默认值 collectionName string 是 集合名称 id string 是 文档_id doc_data string 否 文档数据内容
- 返回值说明 返回类型: json 修改成功的文档数据
- 返回码 查询文档 接口存在风险,会污染既定的文档数据
- 测试关键字 get one document in collection
- 接口访问URL GET /system/storage/collection/@collectionName/document/@id
- 参数 名称 类型 必选 备注 默认值 collectionName string 是 集合名称 id string 是 文档_id
- 返回值说明 返回类型: json 文档数据
- 返回码 查询所有文档 接口存在风险,会污染既定的文档数据
- 测试关键字 get all document in collection
- 接口访问URL GET /system/storage/collection/@collectionName/document/all
- 参数 名称 类型 必选 备注 默认值 collectionName string 是 集合名称 page int 否 页码 1 pageSize int 否 页大小 30
- 返回值说明 返回类型: json 所有文档数据
- 返回码 删除文档 接口存在风险,会污染既定的文档数据
- 测试关键字 delete document in collection
- 接口访问URL DELETE /system/storage/collection/@collectionName/document/@id
- 参数 名称 类型 必选 备注 默认值 collectionName string 是 集合名称 id string 是 文档_id
- 返回值说明 返回类型: json null
- 返回码 搜索文档 接口存在风险,会污染既定的文档数据
- 测试关键字 search document in collection
- 接口访问URL GET /system/storage/collection/@collectionName/document/search
- 参数 名称 类型 必选 备注 默认值 collectionName string 是 集合名称 page int 否 页码 1 pageSize int 否 页大小 30
- 返回值说明 返回类型: json 文档数据列表
- 返回码 通过用户 instanceId 或者用户组 instanceId发送邮件 - 测试关键字 send mail by instanceId
- 接口访问URL POST /v2/message/email
- 参数 名称 类型 必选 备注 默认值 send_to_user array 否 目标 user instanceId send_to_group array 否 目标用户群组 instanceId subject string 是 邮件标题 message string 是 消息内容 cc_to_user array 否 抄送 user instanceId cc_to_group array 否 抄送 group instanceId send_from_name string 否 发送方名称 contentType string 否 发送内容类型, 请参考网址https://en.wikipedia.org/wiki/Media_type , 默认为text/plain
- 返回值说明 返回类型: json 发送邮件结果
- 返回码 返回码 备注 130300 数据库错误 130106 邮件发送失败 130107 用户无邮箱信息 133004 邮箱无效 133011 用户不存在
- 请求示例 { "send_from_name": "easyops\u544a\u8b66\u901a\u9053", "message": "21:43\u53d1\u751f\u544a\u8b66, \u5e94\u7528\u5165\u6d41\u91cf\u544a\u8b66#\u544a\u8b66\u5bf9\u8c61: luna6 \uff0c\u544a\u8b66\u503c:357.0kbit \u9ad8\u4e8e\u9608\u503c: 80.0kbit, \u5f71\u54cd\u8303\u56f4: luna6", "send_to_group": [ "5a27d75b87abb" ], "send_to_user": [ "5a27608d65834" ], "subject": "\u3010\u544a\u8b66\u301121:43, \u5e94\u7528\u5165\u6d41\u91cf\u544a\u8b66" }
- 返回示例 { "code": 130106, "error": "失败", "message": "send email failed", "data": { [ { "instanceId": "5a27608d65834", "name": "lightjiao", "email": "[email protected] ", "send_result": 0 }, { "instanceId": "5a27608d65834", "name": "willniu", "email": "[email protected] ", "send_result": 130109 }, { "instanceId": "5a27608d65834", "name": "lightjiao", "email": "", "send_result": 130107 } ] } }
查询单个资源模型 - 测试关键字 get object
- 接口访问URL GET /object/@object_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID
- 返回值说明 返回类型: json 资源模型数据
- 返回码 返回码 备注 130300 数据库错误 133114 数据库无结果
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": { "_id": { "">oid": "590bdb58e53ae0061a0ce812" }, "objectId": "auto_test_object_id_will", "name": "auto_test_object_name_2", "category": "test", "attrList": [...], "memo": null, "view": [], "creator": "easyops", "delete": "true", "protected": false, "ctime": "2017-05-05 09:54:32", "org": 8888, "_ts": 1493949277, "_version": 5, "_wrong_fks": [ { "attr_id": "name", "ref_object_id": "HOST", "ref_object_exist": False } ], "relation_groups" : [ { "id" : "group_1", "name" : "关系分组1", "relations" " [ {"id" : "relation_1", "name" : "关系名称1"}, {"id" : "relation_2", "name" : "关系名称2"} ] } ] } }
分页查询资源模型 - 测试关键字 get object page
- 接口访问URL GET /object
- 参数 名称 类型 必选 备注 默认值 page int 否 页码 pagrSize int 否 页大小
- 返回值说明 返回类型: json 资源模型列表
创建资源模型 - 测试关键字 create object
- 接口访问URL POST /object
- 参数 名称 类型 必选 备注 默认值 objectId string 是 资源模型Id name string 否 资源模型名称 memo string 否 资源模型备注 category string 否 资源模型类别 view string 否 资源模型的显示 auto_detect string 否 定时任务Id icon string 否 资源模型图标
- 返回值说明 返回类型: json 创建成功的资源模型数据
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误 130313 数据重复
修改资源模型 - 测试关键字 modify object
- 接口访问URL PUT /object/@object_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID name string 否 资源模型名称 memo string 否 资源模型备注 category string 否 资源模型类别 view string 否 资源模型的显示 auto_detect string 否 定时任务Id icon string 否 资源模型图标
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误 130313 数据重复
删除资源模型 - 测试关键字 delete object
- 接口访问URL DELETE /object/@object_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
引用对象反向查询接口 - 测试关键字 search object ref
- 接口访问URL GET /object/_ref
- 参数 名称 类型 必选 备注 默认值 ref_object string 是 引用对象id ref_instance string 否 引用实例id
- 返回值说明 返回类型: json 引用了指定实例或对象的所有对象数据
- 返回码 添加资源模型属性 - 测试关键字 add attribute to object
- 接口访问URL POST /object/@object_id/attr
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID id string 是 属性ID name string 是 属性名称 value array 是 值类型声明 view array 否 外键的值在实例详情页面显示的字段 unique bool 否 是否唯一 required bool 否 是否必填 readonly bool 否 是否只读 tag array 否 标签 tips string 否 在实例输入框中的提示消息 description string 否 外键关系属性描述
- 返回值说明 返回类型: json null
- 返回码 - 请求示例 POST /object/APP/attr { "id" : "my_first_id", "name" : "我新建的一个ID", "value" : { "type" : "str", "regex" : "", "default" : "default value", "default_type" : "function" }, "unique" : "true", "required" : "true", "readonly" : "true", "tag" : ["核心属性", "用户自定义属性"], "description" : "这是一个属性描述" }
查询资源模型属性列表 - 测试关键字 get attribute list in object
- 接口访问URL GET /object/@object_id/attr
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID
- 返回值说明 返回类型: json 资源模型属性列表
- 返回码 获取资源模型属性 - 测试关键字 get attribute in object
- 接口访问URL GET /object/@object_id/attr/@attr_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID attr_id string 是 属性ID
- 返回值说明 返回类型: json 资源模型属性
删除资源模型属性 - 测试关键字 delete attribute in object
- 接口访问URL DELETE /object/@object_id/attr/@attr_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID attr_id string 是 属性ID
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130602 核心属性不允许删除 133212 属性不存在
修改资源模型属性 - 测试关键字 modify attribute in object
- 接口访问URL PUT /object/@object_id/attr/@attr_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID attr_id string 是 属性ID name string 否 属性名称 value array 否 值类型声明 view array 否 外键的值在实例详情页面显示的字段 unique bool 否 是否唯一 required bool 否 是否必填 readonly bool 否 是否只读 tag array 否 标签 tips string 否 在实例输入框中的提示消息 description string 否 外键关系属性描述
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130310 创建唯一索引失败 133212 属性不存在
- 请求示例 PUT /object/APP/attr/my_first_id { "name" : "我新建的一个ID", "value" : { "type" : "str", "regex" : "", "default" : "guid()", "default_type" : "function" }, "unique" : "true", "required" : "true", "readonly" : "true", "tag" : ["核心属性", "用户自定义属性"], "description" : "这是一个属性描述" }
查询剩余可自定义对象数量 - 测试关键字 get custom object limit remain
- 接口访问URL GET /object/_limit
- 返回值说明 返回类型: json 自定义对象数量限制信息
- 返回码 - 返回示例 { "message": "Success", "code": 0, "data": { "remain": null, "total": 33, "limit": null }, "error": "\u6210\u529f" }
查询图标和模型对应关系 - 接口访问URL GET /all_object_icon
- 返回值说明 返回类型: json 图标和id的对应关系数据
- 返回示例 { "message": "Success", "code": 0, "data": { "APP": "icon-1", "HOST": "" }, "error": "\u6210\u529f" }
新建实例手动审计日志记录 - 测试关键字 insert instance manual audit log
- 接口访问URL POST /object/@object_id/instance/_manual_audit
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID mark_memo string 是 标记备注 instance_id_url array 是 实例id对应URL列表 email_user_id array 否 通知用户Id列表 email_group_id array 否 通知用户组Id列表
- 返回值说明 返回类型: json json
- 请求示例 POST /object/APP/instance/_manual_audit { "mark_memo": "应用备注不明确", "instance_id_url": { "536363526": "http://192.168.0.67/object/APP/instance/536372727", "536363524": "http://192.168.0.67/object/APP/instance/536372724" }, "email_user_id": [ "3652263767", "36363553635" ], "email_group_id": [ "736363663", "365363663" ] }
- 返回示例 { "message": "Success", "code": 0, "data": null, "error": "\u6210\u529f" }
新建实例自动巡检审计日志记录 - 测试关键字 insert instance auto audit log
- 接口访问URL POST /audit/object/instance/_auto_audit
- 参数 名称 类型 必选 备注 默认值 instance_invalid_fields array 是 自动巡检实例错误信息 email_user_id array 否 通知用户Id列表 email_group_id array 否 通知用户组Id列表
- 返回值说明 返回类型: json json
- 请求示例 POST /audit/object/instance/_auto_audit { "instance_invalid_fields": { "APP": { "536363526": { "url": "http://192.168.0.67/object/APP/instance/536372727", "invalid_fields": { "name": "name null", "memo": "memo null" } }, "536363524": { "url": "http://192.168.0.67/object/APP/instance/536372727", "invalid_fields": { "name": "name null", "memo": "memo null" } } }, "HOST": { "333333": { "url": "http://192.168.0.67/object/APP/instance/536372727", "invalid_fields": { "name": "name null", "memo": "memo null" } } } }, "email_user_id": [ "3652263767", "36363553635" ], "email_group_id": [ "736363663", "365363663" ] }
- 返回示例 { "message": "Success", "code": 0, "data": null, "error": "\u6210\u529f" }
用户组ID列表查询 - 接口访问URL GET /groups/id
- 参数 名称 类型 必选 备注 默认值 user_id string 否 用户id, 传此参数返回用户所在的所有用户组, 默认返回所有用户组
- 返回值说明 返回类型: json 用户组id列表
- 返回码 - 请求示例 GET http://cmdb.easyops-only.com/groups/id?user_id=lightjiao
- 返回示例 { "message": "Success", "code": 0, "data": [ ":59228ffb4ccdb", ":5943345194b49" ], "error": "\u6210\u529f" }
用户组ID名称映射列表查询 - 接口访问URL GET /groups/id_map_name
- 参数 名称 类型 必选 备注 默认值 user_id string 否 用户id, 传此参数返回用户所在的所有用户组, 默认返回所有用户组
- 返回值说明 返回类型: json 用户组id名称映射列表
- 返回码 - 请求示例 GET http://cmdb.easyops-only.com/groups/id_map_name?user_id=lightjiao
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": [ ":59228ffb4ccdb": "运维组", ":5943345194b49": "CMDB" ] }
全文搜索接口 指定单个资源模型做全文搜索
- 测试关键字 fulltext search of objectId
- 接口访问URL GET /fulltext/@objectId/_search
- 参数 名称 类型 必选 备注 默认值 objectId string 是 对象ID keyword string 是 搜索关键字 page string 否 页码 pageSize string 否 页大小
- 返回值说明 返回类型: json 搜索结果及统计结果
- 返回码 - 请求示例 GET /fulltext/APP/_search?count=true
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": { "total": 1, "page": 1, "pageSize": 30, "list": [#实例列表#], "count": { "APP": 1 } } }
全文搜索接口 真·全文搜索
- 测试关键字 fulltext search
- 接口访问URL GET /fulltext/_search
- 参数 名称 类型 必选 备注 默认值 keyword string 是 搜索关键字 page string 否 页码 pageSize string 否 页大小
- 返回值说明 返回类型: json 搜索结果及统计结果
- 返回码 - 请求示例 GET /fulltext/_search?count=true
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": { "total": 4, "page": 1, "pageSize": 30, "list": [#实例列表#], "count": { "BUSINESS": 3, "APP": 1 } } }
单个实例查询接口 - 测试关键字 get instance
- 接口访问URL GET /object/@object_id/instance/@instance_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID instance_id string 是 实例ID
- 返回值说明 返回类型: json 单个实例数据
- 返回码 返回码 备注 130600 权限错误 133116 数据不存在 130300 数据库错误
- 返回示例 { "message": "Success", "code": 0, "data": { "ctime": "2016-12-26 15:35:15", "creator": "steve15", "instanceId": "5860c8333c0f0", "_ts": 1482737715, "_version": 1, "businesses": { "instanceId": "56e92c9c30164", "parentId": null, "name": "TEST", "businessId": "87dae4d207972ad0d586e1f2e01d63c6", "level": null }, "org": 8888, "name": "indexTest" }, "error": "\u6210\u529f" }
分页查询实例 - 测试关键字 get instance page
- 接口访问URL GET /object/@object_id/instance
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID page int 否 页码 1 page_size int 否 页大小 30
- 返回值说明 返回类型: json 分页实例数据
- 返回码 返回码 备注 130600 权限错误 130300 数据库错误
- 返回示例 { "message": "Success", "code": 0, "data": { "total": 10, "list": [ { "ctime": "2016-12-26 15:35:15", "creator": "steve15", "instanceId": "5860c8333c0f0", "_ts": 1482737715, "_version": 1, "businesses": { "instanceId": "56e92c9c30164", "parentId": null, "name": "TEST", "businessId": "87dae4d207972ad0d586e1f2e01d63c6", "level": null }, "org": 8888, "name": "indexTest" }, {}, {} ], "page": 1, "page_size": 30 }, "error": "\u6210\u529f" }
分页查询归档实例 - 测试关键字 get archive instance page
- 接口访问URL GET /object/@object_id/instance/_archive
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID page int 否 页码, 默认1 page_size int 否 页大小, 默认30
- 返回值说明 返回类型: json 分页归档实例数据
- 返回码 返回码 备注 130600 权限错误 130300 数据库错误
- 返回示例 { "message": "Success", "code": 0, "data": { "total": 10, "list": [ { "ctime": "2016-12-26 15:35:15", "creator": "steve15", "instanceId": "5860c8333c0f0", "_ts": 1482737715, "_version": 1, "businesses": { "instanceId": "56e92c9c30164", "parentId": null, "name": "TEST", "businessId": "87dae4d207972ad0d586e1f2e01d63c6", "level": null }, "org": 8888, "name": "indexTest" }, {}, {} ], "page": 1, "page_size": 30 }, "error": "\u6210\u529f" }
归档实例 - 测试关键字 archive instance
- 接口访问URL POST /object/@object_id/instance/@instance_id/_archive
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID instance_id string 是 实例ID
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130116 实例不存在 133119 实例归档失败 130600 权限错误
- 返回示例 { "message": "xxx", "code": 0, "data": null, "error": "xxx" }
激活实例 - 测试关键字 active instance
- 接口访问URL POST /object/@object_id/instance/@instance_id/_active
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID instance_id string 是 实例ID
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130116 实例不存在 133120 实例激活失败 130600 权限错误
- 返回示例 { "message": "xxx", "code": 0, "data": null, "error": "xxx" }
实例搜索接口 实例数据高级查询接口, query字段的内容对应的是MongoDB的find语法
- 测试关键字 search instances
- 接口访问URL POST /object/@object_id/instance/_search
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID query array 否 查询条件 page int 否 页码, 默认1 1 page_size int 否 页大小, 默认30 30 fields array 否 过滤字段, 留空代表返回所有字段 sort array 否 按字段排序, 留空代表不排序 permission array 否 按照权限过滤
- 返回值说明 返回类型: json 被搜索实例数据
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 请求示例 { "sort": { "instanceId": 1 }, "permission": [ "operate", "update" ], "fields": { "instanceId": true, "ip": true, "_id": false, "name": true }, "page_size": 100, "query": { "ip": { "regex": "light" } }, "page": 1 }
- 返回示例 { "message": "Success", "code": 0, "data": { "total": 1, "list": [ { "instanceId": "56e7cca0b1b80", "ip": "192.168.100.162" } ], "page": 1, "page_size": 30 }, "error": "\u6210\u529f" }
引用实例反向查询接口 - 测试关键字 search instance ref
- 接口访问URL GET /object/@object_id/instance/_ref
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID ref_object string 是 引用对象id ref_instance string 是 引用实例id page int 否 页码, 默认1 1 page_size int 否 页大小, 默认30 30
- 返回值说明 返回类型: json 引用了指定实例的所有实例数据
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 返回示例 { "message": "Success", "code": 0, "data": { "total": 10, "list": [ { "ctime": "2016-12-26 15:35:15", "creator": "steve15", "instanceId": "5860c8333c0f0", "_ts": 1482737715, "_version": 1, "businesses": { "instanceId": "56e92c9c30164", "parentId": null, "name": "TEST", "businessId": "87dae4d207972ad0d586e1f2e01d63c6", "level": null }, "org": 8888, "name": "indexTest" }, {}, {} ], "page": 1, "page_size": 30 }, "error": "\u6210\u529f" }
查询单个实例约束接口 - 测试关键字 get instance constraints
- 接口访问URL GET /object/@object_id/instance/@instance_id/_constraints
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID instance_id string 是 实例ID
- 返回值说明 返回类型: json 约束的对象数组
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 返回示例 { "message": "Success", "code": 0, "data": [ { "object_name": "\u96c6\u7fa4\u7ba1\u7406", "total": 4, "object_id": "CLUSTER" } ], "error": "\u6210\u529f" }
业务创建接口 业务创建使用的是通用实例创建接口但是参数比较特殊,所以单独一个doc声明
- 测试关键字 create business
- 接口访问URL POST /object/BUSINESS/instance
- 参数 名称 类型 必选 备注 默认值 name string 是 业务名称 owner array 是 负责人(Fks)
- 返回值说明 返回类型: json 新创建的业务数据
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误 130313 数据重复
主机创建接口 主机创建使用的是通用实例创建接口但是参数比较特殊,所以单独一个doc声明
- 测试关键字 create host
- 接口访问URL POST /object/HOST/instance
- 参数 名称 类型 必选 备注 默认值 hostname string 是 主机名称 ip string 是 主机IP (要符合IP正则) status string 是 运营状态 (枚举: 运营中; 故障中; 未上线; 下线隔离中; 开发机; 测试机; 维修中; 报废)
- 返回值说明 返回类型: json 新创建的主机数据
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误 130313 数据重复
单个实例创建接口 参数对应具体的资源模型
- 测试关键字 create instance
- 接口访问URL POST /object/@object_id/instance
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID name string 是 实例名称
- 返回值说明 返回类型: json 新创建的实例数据
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误 130313 数据重复
- 请求示例 { "_manager": [], "name": "indexTest", "_manager_group": [], "enum": null, "businesses": { "instanceId": "56e92c9c30164" }, "time": null, "owner": [ { "instanceId": "57b434115412e" }, { "instanceId": "56dfea1bc8a96" } ], "_visitor_group": [], "_visitor": [] }
- 返回示例 { "message": "Success", "code": 0, "data": { "_manager": [], "ctime": "2016-12-26 15:35:15", "_manager_group": [], "creator": "steve15", "instanceId": "5860c8333c0f0", "_ts": 1482737715, "_version": 1, "businesses": { "instanceId": "56e92c9c30164", "parentId": null, "name": "TEST", "businessId": "87dae4d207972ad0d586e1f2e01d63c6", "level": null }, "_visitor_group": [], "owner": [ { "instanceId": "57b434115412e", "user_tel": "18503050129", "name": "indexzhuo", "user_email": "[email protected] " }, { "instanceId": "56dfea1bc8a96", "user_tel": null, "name": "linuschen", "user_email": "[email protected] " } ], "org": 8888, "_visitor": [], "name": "indexTest" }, "error": "\u6210\u529f" }
单个实例修改接口 参数对应具体的资源模型
- 测试关键字 modify instance
- 接口访问URL PUT /object/@object_id/instance/@instance_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID instance_id string 是 实例ID name string 否 实例名称
- 返回值说明 返回类型: json 修改后的实例数据
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误 130313 数据重复
- 请求示例 { "_visitor_group": [], "_visitor": [], "businesses": { "instanceId": "56e92c9c30164" }, "_manager": [], "_manager_group": [] }
- 返回示例 { "message": "Success", "code": 0, "data": { "_manager": [], "ctime": "2016-12-26 15:35:15", "_manager_group": [], "creator": "steve15", "instanceId": "5860c8333c0f0", "_ts": 1482737715, "_version": 1, "businesses": { "instanceId": "56e92c9c30164", "parentId": null, "name": "TEST", "businessId": "87dae4d207972ad0d586e1f2e01d63c6", "level": null }, "_visitor_group": [], "org": 8888, "_visitor": [], "name": "indexTest" }, "error": "\u6210\u529f" }
单个实例删除接口 - 测试关键字 delete instance
- 接口访问URL DELETE /object/@object_id/instance/@instance_id
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID instance_id string 是 实例ID
- 返回值说明 返回类型: json null; 如果由于实例约束原因导致删除失败, 返回约束该实例的对象id
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误 133117 外键关联错误
获取实例变更日志 - 测试关键字 get instance log
- 接口访问URL GET /object/@object_id/instance/@instance_id/_logs
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID instance_id string 是 实例ID page int 否 页码, 默认1 1 page_size int 否 页大小, 默认30 30
- 返回值说明 返回类型: json 实例变更历史
- 返回码 - 请求示例 GET /object/APP/instance/588071b97e9da/_logs { "page": 1, "page_size": 1000, "month": "201705" }
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "data": [ { "instanceId": "588071b97e9da", "_object_id": "lightTest", "difference": [ { "attr": "name", "op": "update", "from": "rose_1", "to": "rose_2" }, { "attr": "modifier", "op": "add", "to": "lights" } ], "databaseOperations": "update" "user": "lights" }, { "instanceId": "588071b97e9da", "_object_id": "lightTest", "user": "lights", "databaseOperations": "insert" } ] }
数据导入接口 - 测试关键字 import instances
- 接口访问URL POST /object/@object_id/instance/_import
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID keys array 是 导入的key datas array 是 实例数组
- 返回值说明 返回类型: json 数据导入结果
- 返回码 - 请求示例 { "keys" : ['name'], "datas" : [ {"name" : "jack", "socre" : 100, "randString" : "adhasjkdfghasjkdfhas"}, {"name" : "rose", "socre" : 90, "randString" : "adhasjkdfghasjkdfhas"} ] }
- 返回示例 { "code" : 133121, "error" : "实例导入失败", "message" : null, "data" : [ "failed_count" : 4, "insert_count" : 0, "update_count" : 10, "data" : [ { "code" : 130313, "error" : "重复键错误", "data" : [ {"name" : "jack", "socre" : 100, "randString" : "adhasjkdfghasjkdfhas"} ] }, { "code" : 130300, "error" : "默认数据库错误", "data" : [ {"name" : "rose", "socre" : 90, "randString" : "adhasjkdfghasjkdfhas"} ] } ] ] }
批量编辑接口 - 测试关键字 modify instances
- 接口访问URL PUT /object/@object_id/instance/_batch_modify
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID instances struct 是 实例列表
- 返回值说明 返回类型: json null
- 返回码 返回码 备注 130300 数据库错误 130600 权限错误
- 请求示例 [ {"instanceId" : "balabalabalaba1", "modify_field" : "new value"}, {"instanceId" : "balabalabalaba2", "modify_field" : "new value"}, ]
获取实例默认值 根据模型定义获取实例默认值提供给前端填充表单用
- 测试关键字 get instance default value template
- 接口访问URL GET /object/@object_id/instance/_default_value_template
- 参数 名称 类型 必选 备注 默认值 object_id string 是 资源模型ID
- 返回值说明 返回类型: json null
- 返回示例 { "message": "Success", "code": 0, "data": { "default_os": "linux", "uuid": "cc49c1e317ee95362a5c6fd31bbcc2e1" }, "error": "\u6210\u529f" }
处理实例修改后动作 实例修改后, 刷新相关联的冗余数据等操作
- 测试关键字 process instance modify
- 接口访问URL POST /notification/instance_modify_log
- 参数 名称 类型 必选 备注 默认值 data array 否 实例数据
- 返回值说明 返回类型: json null
- 返回码 实时同步全文搜索数据 - 测试关键字 process instance fulltext index
- 接口访问URL POST /notification/instance_fulltext_index
- 参数 名称 类型 必选 备注 默认值 data array 否 实例数据 topic string 是 数据变更行为
- 返回值说明 返回类型: json null
- 返回码 刷新冗余数据 - 测试关键字 process instance refresh task
- 接口访问URL POST /notification/instance_refresh_task
- 参数 名称 类型 必选 备注 默认值 data array 否 实例数据
- 返回值说明 返回类型: json null
- 返回码 查询业务列表 @deprecated, 接口较老,已弃用 高级查询请使用接口POST /object/@object_id/instance/_search
- 接口访问URL GET /business/search
- 参数 名称 类型 必选 备注 默认值 name string 否 业务名称 businessId string 否 业务ID parentId string 否 父ID order string 否 排序字段
- 返回值说明 返回类型: json array 业务列表
查询业务关联链路 deprecated parentID不存在
- 测试关键字 get business link
- 接口访问URL GET /business/search-link
- 参数 名称 类型 必选 备注 默认值 parentId string 是 业务id
- 返回值说明 返回类型: json 关联链路列表
根据一级业务id遍历查询子业务下的所有应用 我现在根据一级业务id获取所有子业务的应用列表,得遍历整棵"一级业务树",效率可能不高... 由于我们现在限制了层数,我可以最多只遍历三层,但是一旦把业务层级限制放开,就复杂些了,现在就做得通用些?
- 测试关键字 get app by businessid
- 接口访问URL GET /business/appList/@businessId
- 参数 名称 类型 必选 备注 默认值 businessId string 是 业务ID
- 返回值说明 返回类型: json 应用列表
查询某个业务的信息 deprecated parentID不存在
- 测试关键字 get business info
- 接口访问URL GET /business/@businessId
- 参数 名称 类型 必选 备注 默认值 businessId string 是 业务ID
- 返回值说明 返回类型: json 业务信息
查询子业务信息 - 测试关键字 get businesses children
- 接口访问URL GET /business/children/@businessId
- 参数 名称 类型 必选 备注 默认值 businessId string 是 业务ID
- 返回值说明 返回类型: json 业务信息
查询业务信息 根据key value 查询业务信息
- 测试关键字 get business by key value
- 接口访问URL GET /v2/business/@key/@val
- 参数 名称 类型 必选 备注 默认值 key string 是 键 val string 是 值
- 返回值说明 返回类型: json 应用信息
获取用户配置信息namespace - 接口访问URL GET /user/profile/@namespace
- 返回值说明 返回类型: json 返回用户配置信息namespace
- 返回码 返回码 备注 130300 数据库错误 130308 查询无结果
获取用户配置信息值 - 接口访问URL GET /user/profile/@namespace/@key
- 返回值说明 返回类型: json 返回用户配置信息值
- 返回码 返回码 备注 130300 数据库错误 130308 查询无结果
修改用户配置信息值 - 接口访问URL PUT /user/profile/@namespace/@key
- 参数 名称 类型 必选 备注 默认值 namespace string 是 用户配置命名空间 key string 是 用户配置项 value mix 是 用户配置数据
- 返回码 返回码 备注 130300 数据库错误 130305 数据库更新错误
获取资源模型下某一属性的值 - 测试关键字 get attribute value in object
- 接口访问URL GET /object/instance/attr/@objectId/@attrId
- 参数 名称 类型 必选 备注 默认值 objectId string 是 资源模型ID attrId string 是 属性ID sort int 否 排序 page int 否 页码 1 pagrSize int 否 页大小 30
- 返回值说明 返回类型: json 某一属性的所有值
- 返回示例 { "message": "Success", "code": 0, "data": { "total": 70, "list": [ "\u751f\u4ea7\u96c6\u7fa41", "\u6d4b\u8bd5\u96c6\u7fa41", "\u9884\u53d1\u5e03\u96c6\u7fa4", "\u9ec4\u4ec1\u7684\u96c6\u7fa4", "\u7070\u5ea6\u96c6\u7fa4" ], "page": 1, "pageSize": 30 }, "error": "\u6210\u529f" }
更新冗余数据 @deprecated 实例数据中不包含objectId、instanceId或者org被视为非法数据直接消费
- 接口访问URL POST /object/instance/message
- 参数 名称 类型 必选 备注 默认值 data array 否 实例数据,
- 返回值说明 返回类型: json null
多实例查询 url中包含查询对象的ID,body中包含需要查询的实例ID
- 测试关键字 get instance list by instanceids for export
- 接口访问URL POST /object/@objectId/instances/_export
- 参数 名称 类型 必选 备注 默认值 objectId string 是 查询的对象ID instanceIds array 否 实例Id列表 page int 否 页码 1 pagrSize int 否 页大小 30
- 返回值说明 返回类型: json 实例列表
- 返回码 - 请求示例 { "instanceIds":['123', '456'] }
- 返回示例 { "code": 0, "error": "成功", "message": "Success", "list": [ {'instanceField_1': 'value_1', instanceField_2: 'value_2'}, {'instanceField_1': 'value_3', instanceField_2: 'value_4'} ] }
个人信息查询 - 测试关键字 get my profile
- 接口访问URL GET /profile
- 返回值说明 返回类型: json 个人信息
- 返回码 - 返回示例 { "message": "Success", "code": 0, "data": { "modifier": "admin", "user_tel": null, "name": "lights", "creator": "admin", "instanceId": "5875f71840da5", "org": 8888, "user_type": null, "phone": null, "state": "valid", "user_memo": null, "mtime": "2016-03-28 12:42:02", "user_active": "\u6fc0\u6d3b", "_id": {}, "email": "[email protected] ", "user_email": "[email protected] ", "ctime": "2016-03-09 17:17:15" }, "error": "\u6210\u529f" }
查询个人apikey - 测试关键字 get my apikey
- 接口访问URL GET /profile/apikey
- 返回值说明 返回类型: json apikey
- 返回码 - 返回示例 { "message": "Success", "code": 0, "data": { "access_key": "e7b6a060b55b42713332b93c", "ctime": "2017-03-29 10:11:38", "ts": 1490753498, "state": "valid", "user": "lightjiao11", "org": 8888, "secret_key": "f1ede17ef5078a9ef62fa0a113b43a710820257700ff67ae9b6a29eed891ec5a" }, "error": "\u6210\u529f" }
修改个人密码 - 测试关键字 modify my password
- 接口访问URL PUT /profile/password
- 参数 名称 类型 必选 备注 默认值 password string 是 旧密码 new_password string 是 新密码
- 返回值说明 返回类型: json null
- 返回码 - 请求示例 { "new_password": "654321", "password": "123456" }
- 返回示例 { "message": "Success", "code": 0, "data": null, "error": "\u6210\u529f" }
用户忘记密码 用户忘记密码接口
- 测试关键字 forgot password
- 接口访问URL POST /password/forgot
- 参数 名称 类型 必选 备注 默认值 email string 是 邮件地址 url string 是 重置密码地址
- 返回值说明 返回类型: json 重置密码信息
- 返回码 用户重置密码 暂时不做自动化测试,因为自动化测试无法获取到重置密码的验证码
- 接口访问URL POST /password/reset
- 参数 名称 类型 必选 备注 默认值 username string 是 用户名 ts int 是 时间戳 password string 是 新密码 key string 是 重置密码key
- 返回值说明 返回类型: json 重置密码key
- 返回码 查询应用 @deprecated, 接口较老,已弃用 高级查询请使用接口POST /object/@object_id/instance/_search
- 测试关键字 search app
- 接口访问URL GET /application/search
- 参数 名称 类型 必选 备注 默认值 name string 否 应用名称 appId string 否 应用ID businessId string 否 业务ID order string 否 排序字段 fields string 否 选择字段 ignore string 否 忽略字段 page int 否 分页 pageSize int 否 分页大小
- 返回值说明 返回类型: json 应用列表
查询应用列表 @deprecated, 接口较老,已弃用 高级查询请使用接口POST /object/@object_id/instance/_search
- 测试关键字 search app list
- 接口访问URL GET /application/search-all
- 参数 名称 类型 必选 备注 默认值 name string 否 应用名称 appId string 否 应用ID appIds string 否 应用ID, 用分号隔开 businessId string 否 业务ID order string 否 排序字段
- 返回值说明 返回类型: json 应用列表
获取应用下的设备以及集群信息数量 自动化测试的keyword不使用自动生成而是自定义编写
- 接口访问URL GET /applications/extra
- 参数 名称 类型 必选 备注 默认值 appIds array 是 应用id列表
- 返回值说明 返回类型: json 获取的信息列表array
- 返回码 - 请求示例 GET /applications/extra?appIds[0]=56dff11497f66&appIds[1]=56e0dbec4da6f
- 返回示例 { "message": "Success", "code": 0, "data": { "56e0dbec4da6f": { "device": 0, "cluster": 0 }, "56dff11497f66": { "device": 38, "cluster": 0 } }, "error": "\u6210\u529f" }
批量查询应用信息 根据指定字段以及字段值查询应用 @deprecated, 接口较老,不建议使用 高级查询请使用接口POST /object/@object_id/instance/_search
- 测试关键字 get app by key value
- 接口访问URL GET /v2/app/@key/@val
- 参数 名称 类型 必选 备注 默认值 key string 是 键 val string 是 值
- 返回值说明 返回类型: json 应用信息
- 返回码 批量获取应用列表 @deprecated, 接口较老,不建议使用 高级查询请使用接口POST /object/@object_id/instance/_search
- 测试关键字 get app list by instanceids
- 接口访问URL GET /apps/@instanceIds
- 参数 名称 类型 必选 备注 默认值 instanceIds string 否 应用id列表,逗号分割,id为空时,获取所有应用列表 page int 否 当前页码 1 pageSize int 否 每页大小 30
- 返回值说明 返回类型: json 应用列表
- 返回码 - 返回示例 { "message": null, "code": 0, "data": { "total": 78, "list": [ { "runUser": null, "name": "\u5e94\u7528\u529f\u80fd", "businessId": null, "installPath": null, "instanceId": "56e7cd0fe76cf", "mtime": "2016-04-18 21:43:38", "memo": null, "tester": null, "org": 8888, "ctime": "2016-03-15 16:51:27", "businesses": null, "packageId": null, "appId": "f12e441dbba9d7acd36212ab4906eaca", "owner": [ { "instanceId": "56dfea1c74405", "name": "davidcui" } ], "clusters": [ { "name": "\u9ed8\u8ba4\u96c6\u7fa4", "deviceList": [ { "status": "\u8fd0\u8425\u4e2d", "instanceId": "56e674a85fe98", "ip": "192.168.26.22", "hostname": "192.168.26.22", "deviceId": "122", "provider": "1", "location": "1" } ], "clusterId": "e876a01a75196e35a1f8416f405d9719", "instanceId": "56e7cd1047479", "packageId": null, "type": 2 } ], "modifier": "indexzhuo", "creator": "davidcui", "developer": null } ] }, "error": "\u6210\u529f" }
搜索应用列表 @deprecated, 接口较老,不建议使用 高级查询请使用接口POST /object/@object_id/instance/_search
- 测试关键字 search apps by key value
- 接口访问URL GET /apps/@key/@val
- 参数 名称 类型 必选 备注 默认值 key string 是 搜索的应用属性 val string 是 搜索的应用属性值 page int 否 当前页码 pageSize int 否 每页大小
- 返回值说明 返回类型: json 应用列表
- 返回码
你可能感兴趣的:(无标题文章)
扫地机类清洁产品之直流无刷电机控制
悟空胆好小
清洁服务机器人 单片机 人工智能
扫地机类清洁产品之直流无刷电机控制1.1前言扫地机产品有很多的电机控制,滚刷电机1个,边刷电机1-2个,清水泵电机,风机一个,部分中高端产品支持抹布功能,也就是存在抹布盘电机,还有追觅科沃斯石头等边刷抬升电机,滚刷抬升电机等的,这些电机有直流有刷电机,直接无刷电机,步进电机,电磁阀,挪动泵等不同类型。电机的原理,驱动控制方式也不行。接下来一段时间的几个文章会作个专题分析分享。直流有刷电机会自动持续
向内而求
陈陈_19b4
10月27日,阴。阅读书目:《次第花开》。作者:希阿荣博堪布,是当今藏传佛家宁玛派最伟大的上师法王,如意宝晋美彭措仁波切颇具影响力的弟子之一。多年以来,赴海内外各地弘扬佛法,以正式授课、现场开示、发表文章等多种方法指导佛学弟子修行佛法。代表作《寂静之道》、《生命这出戏》、《透过佛法看世界》自出版以来一直是佛教类书籍中的畅销书。图片发自App金句:1.佛陀说,一切痛苦的根源在于我们长期以来对自身及外
那个抄袭的大张伟
猫小努
最近一直在追《即刻电音》这个综艺,除了觉得出场节目的音乐制作人有意思之外,也觉得有两个导师挺有趣的(另外一个就忽略了吧)。孙艺兴在上一篇文章里面已经说过了,那么这篇就说说我们的大老师,大张伟吧。其实在节目刚开始大张伟出来的时候,我以为他是属于导师里面来活跃气氛负责搞笑的,毕竟孙艺兴属于卖萌卖傻卖老实的,尚雯婕一般负责装逼耍狠的,而大张伟一贯以来上综艺的形象基本上都是蹦蹦跳跳带动气氛的。谁知道,两期
【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数
广龙宇
一起学Rust # Rust设计模式 rust 设计模式 开发语言
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、使用借用类型作为参数二、格式化拼接字符串三、使用构造函数总结前言Rust不是传统的面向对象编程语言,它的所有特性,使其独一无二。因此,学习特定于Rust的设计模式是必要的。本系列文章为作者学习《Rust设计模式》的学习笔记以及自己的见解。因此,本系列文章的结构也与此书的结构相同(后续可能会调成结构),基本上分为三个部分
Python中os.environ基本介绍及使用方法
鹤冲天Pro
# Python python 服务器 开发语言
文章目录python中os.environos.environ简介os.environ进行环境变量的增删改查python中os.environ的使用详解1.简介2.key字段详解2.1常见key字段3.os.environ.get()用法4.环境变量的增删改查和判断是否存在4.1新增环境变量4.2更新环境变量4.3获取环境变量4.4删除环境变量4.5判断环境变量是否存在python中os.envi
基于社交网络算法优化的二维最大熵图像分割
智能算法研学社(Jack旭)
智能优化算法应用 图像分割 算法 php 开发语言
智能优化算法应用:基于社交网络优化的二维最大熵图像阈值分割-附代码文章目录智能优化算法应用:基于社交网络优化的二维最大熵图像阈值分割-附代码1.前言2.二维最大熵阈值分割原理3.基于社交网络优化的多阈值分割4.算法结果:5.参考文献:6.Matlab代码摘要:本文介绍基于最大熵的图像分割,并且应用社交网络算法进行阈值寻优。1.前言阅读此文章前,请阅读《图像分割:直方图区域划分及信息统计介绍》htt
DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理
STU学生网页设计
网页设计 期末网页作业 html静态网页 html5期末大作业 网页设计 web大作业
️精彩专栏推荐作者主页:【进入主页—获取更多源码】web前端期末大作业:【HTML5网页期末作业(1000套)】程序员有趣的告白方式:【HTML七夕情人节表白网页制作(110套)】文章目录二、网站介绍三、网站效果▶️1.视频演示2.图片演示四、网站代码HTML结构代码CSS样式代码五、更多源码二、网站介绍网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程
探索OpenAI和LangChain的适配器集成:轻松切换模型提供商
nseejrukjhad
langchain easyui 前端 python
#探索OpenAI和LangChain的适配器集成:轻松切换模型提供商##引言在人工智能和自然语言处理的世界中,OpenAI的模型提供了强大的能力。然而,随着技术的发展,许多人开始探索其他模型以满足特定需求。LangChain作为一个强大的工具,集成了多种模型提供商,通过提供适配器,简化了不同模型之间的转换。本篇文章将介绍如何使用LangChain的适配器与OpenAI集成,以便轻松切换模型提供商
想明白这个问题,你才能写下去
文自拾
春节放假的时候,又有一天梦见她,第二天她冒着漫天大雪,傻傻地跑来见我。她说,见见傻傻的我,天很冷,心很暖。她回去后,我写了一篇文章,题目叫——从此梦中只有你。我们没在一起的很长一段时间里,她都在我的心底,一次次出现在我的梦里。我对她说,在一起之前,是胆小且闷骚,在一起之后,我变得不要脸了。不要脸的——去爱你。那文章没写完,火车上,给她看了。我有点小失望,花了好几个小时写,她分分钟就看完,很希望她逐
HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动
二挡起步
web前端期末大作业 web设计网页规划与设计 html css javascript dreamweaver 前端
Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作HTML期末大学生网页设计作业HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScript:做与用户的交互行为文章目录前端学习路线
每日算法&面试题,大厂特训二十八天——第二十天(树)
肥学
⚡算法题⚡面试题每日精进 java 算法 数据结构
目录标题导读算法特训二十八天面试题点击直接资料领取导读肥友们为了更好的去帮助新同学适应算法和面试题,最近我们开始进行专项突击一步一步来。上一期我们完成了动态规划二十一天现在我们进行下一项对各类算法进行二十八天的一个小总结。还在等什么快来一起肥学进行二十八天挑战吧!!特别介绍小白练手专栏,适合刚入手的新人欢迎订阅编程小白进阶python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章
libyuv之linux编译
jaronho
Linux linux 运维 服务器
文章目录一、下载源码二、编译源码三、注意事项1、银河麒麟系统(aarch64)(1)解决armv8-a+dotprod+i8mm指令集支持问题(2)解决armv9-a+sve2指令集支持问题一、下载源码到GitHub网站下载https://github.com/lemenkov/libyuv源码,或者用直接用git克隆到本地,如:gitclonehttps://github.com/lemenko
冬天短期的暴利小生意有哪些?那些小生意适合新手做?
一起高省
短期生意不失为创业的一个商机,不过短期生意的商机是转瞬即逝的,而且这类生意也很难作为长期的生意去做,那冬天短期暴利小生意查看更多关于短期暴利小生意的文章有哪些呢?给大家先推荐一个2023年风口项目吧,真很不错的项目,全程零投资,当做副业来做真的很稳定,不管你什么阶层的人,或多或少都网购吧?你们知道网购是可以拿提成,拿返利,拿分佣的吗?你们知道很多优惠券群里面,天天群主和管理发一些商品吗?他们其实在
Python 实现图片裁剪(附代码) | Python工具
剑客阿良_ALiang
前言本文提供将图片按照自定义尺寸进行裁剪的工具方法,一如既往的实用主义。环境依赖ffmpeg环境安装,可以参考我的另一篇文章:windowsffmpeg安装部署_阿良的博客-CSDN博客本文主要使用到的不是ffmpeg,而是ffprobe也在上面这篇文章中的zip包中。ffmpy安装:pipinstallffmpy-ihttps://pypi.douban.com/simple代码不废话了,上代码
【华为OD技术面试真题 - 技术面】- python八股文真题题库(4)
算法大师
华为od 面试 python
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选**1.Python中的`with`**用途和功能自动资源管理示例:文件操作上下文管理协议示例代码工作流程解析优点2.\_\_new\_\_和**\_\_init\_\_**区别__new____init__区别总结3.**切片(Slicing)操作**基本切片语法
【华为OD技术面试真题 - 技术面】-测试八股文真题题库(1)
算法大师
华为od 面试 python 算法 前端
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.黑盒测试和白盒测试的区别2.假设我们公司现在开发一个类似于微信的软件1.0版本,现在要你测试这个功能:打开聊天窗口,输入文本,限制字数在200字以内。问你怎么提取测试点。功能测试性能测试安全性测试可用性测试跨平台兼容性测试网络环境测试3.接口测试的工具你了解哪些
Python爬虫解析工具之xpath使用详解
eqa11
python 爬虫 开发语言
文章目录Python爬虫解析工具之xpath使用详解一、引言二、环境准备1、插件安装2、依赖库安装三、xpath语法详解1、路径表达式2、通配符3、谓语4、常用函数四、xpath在Python代码中的使用1、文档树的创建2、使用xpath表达式3、获取元素内容和属性五、总结Python爬虫解析工具之xpath使用详解一、引言在Python爬虫开发中,数据提取是一个至关重要的环节。xpath作为一门
【无标题】达瓦达瓦
JhonKI
考研
博客主页:https://blog.csdn.net/2301_779549673欢迎点赞收藏⭐留言如有错误敬请指正!本文由JohnKi原创,首发于CSDN未来很长,值得我们全力奔赴更美好的生活✨文章目录前言111️111❤️111111111111111总结111前言111骗骗流量券,嘿嘿111111111111111111111111111️111❤️111111111111111总结11
上图为是否色发
JhonKI
考研
博客主页:https://blog.csdn.net/2301_779549673欢迎点赞收藏⭐留言如有错误敬请指正!本文由JohnKi原创,首发于CSDN未来很长,值得我们全力奔赴更美好的生活✨文章目录前言111️111❤️111111111111111总结111前言111骗骗流量券,嘿嘿111111111111111111111111111️111❤️111111111111111总结11
【Git】常见命令(仅笔记)
好想有猫猫
Git Linux学习笔记 git 笔记 elasticsearch linux c++
文章目录创建/初始化本地仓库添加本地仓库配置项提交文件查看仓库状态回退仓库查看日志分支删除文件暂存工作区代码远程仓库使用`.gitigore`文件让git不追踪一些文件标签创建/初始化本地仓库gitinit添加本地仓库配置项gitconfig-l#以列表形式显示配置项gitconfiguser.name"ljh"#配置user.namegitconfiguser.email"
[email protected]
【华为OD技术面试真题 - 技术面】- python八股文真题题库(1)
算法大师
华为od 面试 python
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.数据预处理流程数据预处理的主要步骤工具和库2.介绍线性回归、逻辑回归模型线性回归(LinearRegression)模型形式:关键点:逻辑回归(LogisticRegression)模型形式:关键点:参数估计与评估:3.python浅拷贝及深拷贝浅拷贝(Shal
143234234123432
JhonKI
考研
博客主页:https://blog.csdn.net/2301_779549673欢迎点赞收藏⭐留言如有错误敬请指正!本文由JohnKi原创,首发于CSDN未来很长,值得我们全力奔赴更美好的生活✨文章目录前言111️111❤️111111111111111总结111前言111骗骗流量券,嘿嘿111111111111111111111111111️111❤️111111111111111总结11
道阻且长,行则将至
sweet橘子
本文参与书香澜梦主题征文“行”文章原创首发,文责自负。我们每一个人都应该有属于自己的愿望或者是理想,人一但有了理想也就算是有了方向,它就会像灯塔一样指引我们前进的方向,哪怕是再远大的理想,如果坚持,那么我相信它就一定有收获。屈原是我最喜欢的一个浪漫主义的诗人,他曾今说过:“路漫漫其修远兮,吾将上下而求索。”人生的道路很长,但是为了实现自己的理想抱负我愿意付出我毕生的精力,只专注这一件事,因为“道阻
4招写出高价值文章
zhiliner
文章写得泛泛是因为思考得不够深,思考得越深文章会越有价值。拿到一个主题一定要去深入挖掘事件背后的东西,比如人物困境以及趋势性的东西。写作过程中有几个深度思考的方法一、解剖,让旧素材焕发新意作为一个写作者,我们能够做的最大贡献,就是给出自己看世界的角度。解剖其实就是把这个话题相关的信息都列出来,详细的列出来,看清楚它的内部。我们看到一个老话题或者一段旧素材的时候,不要只看这个素材或者话题本身,一定要
【六】阿伟开始搭建Kafka学习环境
能源恒观
中间件 学习 kafka spring
阿伟开始搭建Kafka学习环境概述上一篇文章阿伟学习了Kafka的核心概念,并且把市面上流行的消息中间件特性进行了梳理和对比,方便大家在学习过程中进行对比学习,最后梳理了一些Kafka使用中经常遇到的Kafka难题以及解决思路,经过上一篇的学习我相信大家对Kafka有了初步的认识,本篇将继续学习Kafka。一、安装和配置学习一项技术首先要搭建一套服务,而Kafka的运行主要需要部署jdk、zook
ExpRe[25] bash外的其它shell:zsh和fish
tritone
ExpRe bash linux ubuntu shell
文章目录zsh基础配置实用特性插件`autojump`语法高亮自动补全fish优点缺点时效性本篇撰写时间为2021.12.15,由于计算机技术日新月异,博客中所有内容都有时效和版本限制,具体做法不一定总行得通,链接可能改动失效,各种软件的用法可能有修改。但是其中透露的思想往往是值得学习的。本篇前置:ExpRe[10]Ubuntu[2]准备神秘软件、备份恢复软件https://www.cnblogs
openssl+keepalived安装部署
_小亦_
项目部署 keepalived openssl
文章目录OpenSSL安装下载地址编译安装修改系统配置版本Keepalived安装下载地址安装遇到问题安装完成配置文件keepalived运行检查运行状态查看系统日志修改服务service重新加载systemd检查配置文件语法错误OpenSSL安装下载地址考虑到后面设备可能没法连接到外网,所以采用安装包的方式进行部署,下载地址:https://www.openssl.org/source/old/
关于Mysql 中 Row size too large (> 8126) 错误的解决和理解
秋刀prince
mysql mysql 数据库
提示:啰嗦一嘴,数据库的任何操作和验证前,一定要记得先备份!!!不会有错;文章目录问题发现一、问题导致的可能原因1、页大小2、行格式2.1compact格式2.2Redundant格式2.3Dynamic格式2.4Compressed格式3、BLOB和TEXT列二、解决办法1、修改页大小(不推荐)2、修改行格式3、修改数据类型为BLOB和TEXT列4、其他优化方式(可以参考使用)4.1合理设置数据
一颗小桃树
李蓉乐平市湾头中小学
当“凹”同“洼”的时侯,才读(wa,平声),他不叫贾平洼(贾,原名贾平娃),非要写作贾平凹。为了表示对他的尊重,对文学的尊重,对文化人的尊重。如果不是帮闺蜜的儿子修改作文,我也不会发现贾平凹叫贾平娃。以下是摘选他的文章《一棵小桃树》:可我的小桃树儿,一颗“仙桃”的种子,却开得太白了,太淡了,那瓣片儿单薄得似纸做的,没有肉的感觉,没有粉的感觉,像患了重病的少女,苍白白的脸,又偏苦涩涩地笑着。雨还在下
【从浅识到熟知Linux】Linux发展史
Jammingpro
从浅学到熟知Linux linux 运维 服务器
归属专栏:从浅学到熟知Linux个人主页:Jammingpro每日努力一点点,技术变化看得见文章前言:本篇文章记录Linux发展的历史,因在介绍Linux过程中涉及的其他操作系统及人物,本文对相关内容也有所介绍。文章目录Unix发展史Linux发展史开源Linux官网企业应用情况发行版本在学习Linux前,我们可能都会问Linux从哪里来?它是如何发展的。但在介绍Linux之前,需要先介绍一下Un
C/C++Win32编程基础详解视频下载
择善Zach
编程 C++ Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
Guava Cache使用笔记
bylijinnan
java guava cache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
按对象属性排序
换个号韩国红果果
JavaScript 对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
在springmvc中解决FastJson循环引用的问题
asialee
循环引用 fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
ArrayAdapter和SimpleAdapter技术总结
百合不是茶
android SimpleAdapter ArrayAdapter 高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
九封信
bijian1013
人生 励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHP Install phpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipse spring Hibernate mysql 项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
编程之美-电话号码对应英语单词
bylijinnan
java 算法 编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构 算法 工作 活动 J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
初二下学期难记忆单词
dcj3sjt126com
english word
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected] " //设置邮箱
---------------查看环境配置
git config --li
qemu-kvm 网络 nat模式 (四)
haoningabc
kvm qemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
枚举类型详解
一路欢笑一路走
enum 枚举详解 enumset enumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipse jsp卡死 js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多