PilotGo-plugin-syscare API参考手册:完整接口文档和使用示例

PilotGo-plugin-syscare API参考手册:完整接口文档和使用示例 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?ip192.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),仅供参考