PilotGo-plugin-syscare API参考手册:完整接口文档和使用示例
2026/7/11 22:04:09 网站建设 项目流程

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/lists

2. 批量主机管理示例

// 批量添加主机 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询