PilotGo-plugin-syscare API参考手册:完整接口文档和使用示例
【免费下载链接】PilotGo-plugin-syscareIntroduce SysCare to PilotGo platform.项目地址: https://gitcode.com/openeuler/PilotGo-plugin-syscare
前往项目官网免费下载:https://ar.openeuler.org/ar/
PilotGo-plugin-syscare是openEuler社区中一个强大的系统热补丁管理插件,它为PilotGo平台提供了完整的SysCare热补丁管理功能。本文将为您提供完整的API参考手册和使用示例,帮助您快速掌握如何通过API管理热补丁和主机代理。
📋 核心功能介绍
PilotGo-plugin-syscare插件主要提供以下核心功能:
- 主机管理API:管理热补丁制作环境的主机
- 热补丁管理API:创建、查询、删除热补丁任务
- 文件服务API:下载热补丁文件
- 环境检测API:检测主机是否具备热补丁制作环境
🚀 快速开始
基础URL
所有API接口均以/plugin/syscare为前缀,完整的API地址格式为:
http://your-server:port/plugin/syscare/{接口路径}响应格式
所有API接口都遵循统一的响应格式:
{ "code": 200, "data": {...}, "msg": "操作成功" }📊 主机管理API
获取主机列表
接口路径:GET /plugin/syscare/agentList
功能说明: 获取所有已注册的主机信息,支持分页和搜索功能。
请求参数: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | paged | string | 否 | 是否分页,值为"false"时返回所有数据 | | page | integer | 否 | 页码(当paged为true时有效) | | size | integer | 否 | 每页大小(当paged为true时有效) | | search | string | 否 | 搜索关键词 |
响应示例:
{ "code": 200, "data": { "list": [ { "id": 1, "ip": "192.168.1.100", "status": "online", "last_heartbeat": "2024-04-02 14:30:00" } ], "total": 10 }, "msg": "查询到主机列表" }添加主机
接口路径:POST /plugin/syscare/addAgent
功能说明: 向系统中添加新的主机代理。
请求体:
{ "ip": "192.168.1.101" }响应示例:
{ "code": 200, "data": { "id": 2, "ip": "192.168.1.101", "status": "pending" }, "msg": "添加主机成功" }删除主机
接口路径:DELETE /plugin/syscare/{ip}
功能说明: 从系统中删除指定的主机。
路径参数:
ip: 要删除的主机IP地址
响应示例:
{ "code": 200, "data": null, "msg": "删除主机成功" }检测热补丁制作环境
接口路径:GET /plugin/syscare/buildEnv
功能说明: 检测指定主机是否具备热补丁制作环境。
查询参数: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | ip | string | 是 | 主机IP地址 |
响应示例:
{ "code": 200, "data": { "kernel_version": "5.10.0", "debug_info_installed": true, "build_tools_available": true, "environment_status": "ready" }, "msg": "获取到热补丁环境" }🔧 热补丁管理API
创建热补丁任务
接口路径:POST /plugin/syscare/addWarm
功能说明: 创建新的热补丁制作任务,支持上传补丁文件。
请求格式:multipart/form-data
表单参数: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | ip | string | 是 | 目标主机IP地址 | | buildKernel | string | 是 | 构建内核版本 | | buildDebugInfo | string | 是 | 调试信息配置 | | patchType | string | 是 | 补丁类型 | | version | string | 是 | 系统版本 | | patchDescription | string | 是 | 补丁描述 | | patchVersion | string | 是 | 补丁版本 | | patchRelease | string | 是 | 补丁发布版本 | | upload | file | 是 | 补丁文件(支持多个) |
响应示例:
{ "code": 200, "data": null, "msg": "成功创建热补丁任务" }查询热补丁列表
接口路径:GET /plugin/syscare/lists
功能说明: 查询所有热补丁任务列表,支持分页和搜索。
查询参数: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | search | string | 否 | 搜索关键词 | | page | integer | 否 | 页码 | | size | integer | 否 | 每页大小 |
响应示例:
{ "code": 200, "data": { "list": [ { "id": 1, "patch_name": "security-fix-001", "patch_version": "1.0.0", "target_ip": "192.168.1.100", "status": "completed", "created_at": "2024-04-02 10:00:00", "completed_at": "2024-04-02 10:30:00" } ], "total": 5 }, "msg": "查询成功" }删除热补丁
接口路径:GET /plugin/syscare/delete
功能说明: 删除指定的热补丁任务。
查询参数: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | integer | 是 | 热补丁任务ID |
响应示例:
{ "code": 200, "data": null, "msg": "删除成功" }📁 文件服务API
下载文件
接口路径:GET /plugin/syscare/download/{filename}
功能说明: 下载指定的热补丁文件。
路径参数:
filename: 要下载的文件名
响应: 返回文件流
📝 脚本执行结果API
提交脚本执行结果
接口路径:POST /plugin/syscare/scriptResult
功能说明: 接收并处理脚本执行结果。
请求体:
{ "task_id": "12345", "agent_ip": "192.168.1.100", "script_name": "patch_build.sh", "exit_code": 0, "output": "Build completed successfully", "execution_time": 120 }🔗 前端API封装
主机管理接口封装
前端在web/src/api/host.ts中提供了以下API封装:
// 获取所有机器 export function getAllHost(data?: Object) // 获取制作热补丁环境 export function getBuildEnv(data: {ip: string}) // 新增机器 export function addHost(data: {ip: string}) // 删除机器 export function delHost(ip: string) // 上传RPM文件 export function uploadRpm(data: any)热补丁管理接口封装
前端在web/src/api/patch.ts中提供了以下API封装:
// 获取所有补丁 export function getAllPatch(data: Object) // 新增补丁 export function addPatch(data: any) // 编辑补丁 export function updatePatch(data: object) // 删除补丁 export function delPatch(data: {id: number})🛠️ 后端控制器实现
主机控制器
后端主机管理控制器位于app/server/controller/agent.go,主要实现以下功能:
GetAgentsHandler: 处理主机列表查询AddAgentHandler: 处理主机添加DeleteAgentHandler: 处理主机删除AgentBuildEnv: 处理热补丁环境检测
热补丁控制器
后端热补丁控制器位于app/server/controller/warm.go,主要实现以下功能:
AddWarmList: 处理热补丁创建QueryWarmLists: 处理热补丁列表查询DeleteWarmList: 处理热补丁删除
文件服务控制器
文件下载功能在app/server/controller/fileservice.go中实现:
Download: 处理文件下载请求
脚本结果控制器
脚本执行结果处理在app/server/controller/runresult.go中实现:
ScriptResult: 处理脚本执行结果上报
📋 错误处理
常见错误码
| 错误码 | 说明 | 可能原因 |
|---|---|---|
| 400 | 请求参数错误 | 缺少必填参数或参数格式不正确 |
| 404 | 资源不存在 | 请求的主机或补丁不存在 |
| 500 | 服务器内部错误 | 后端处理异常 |
错误响应示例
{ "code": 400, "data": null, "msg": "缺少必填参数: ip" }🔍 最佳实践
1. 完整的热补丁创建流程
# 1. 添加主机 POST /plugin/syscare/addAgent {"ip": "192.168.1.100"} # 2. 检查环境 GET /plugin/syscare/buildEnv?ip=192.168.1.100 # 3. 创建热补丁任务 POST /plugin/syscare/addWarm # 使用multipart/form-data上传补丁文件和相关参数 # 4. 查询任务状态 GET /plugin/syscare/lists2. 批量主机管理示例
// 批量添加主机 const hosts = ["192.168.1.101", "192.168.1.102", "192.168.1.103"]; for (const ip of hosts) { await addHost({ ip }); }3. 安全建议
- 使用HTTPS协议传输敏感数据
- 实施IP白名单访问控制
- 定期清理过期的热补丁文件
- 监控API调用频率和异常行为
📚 相关资源
配置文件位置
- 服务器配置:
app/server/config_server.yaml.templete - 客户端配置:
app/agent/config_agent.yaml.templete
路由定义
所有API路由定义在app/server/router/router.go文件中,您可以在此查看完整的API路径映射。
数据模型
- 主机模型:
app/server/dao/agent.go - 热补丁模型:
app/server/dao/warm.go
🎯 总结
PilotGo-plugin-syscare提供了完整的API接口集,涵盖了从主机管理到热补丁制作的全流程。通过本文提供的API参考手册,您可以快速上手使用这些接口来管理您的热补丁系统。
记住,合理使用API接口可以大大提高系统管理效率,建议结合前端界面和自动化脚本实现更高效的热补丁管理工作流。
本文档基于PilotGo-plugin-syscare最新版本编写,API接口可能会随着版本更新而有所变化,请以实际代码为准。
【免费下载链接】PilotGo-plugin-syscareIntroduce SysCare to PilotGo platform.项目地址: https://gitcode.com/openeuler/PilotGo-plugin-syscare
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考