# redfish-java-client **Repository Path**: molox/redfish-java-client ## Basic Information - **Project Name**: redfish-java-client - **Description**: 构建一个通用的redfish client SDK,此构架的模型来源于openstack4j,方便调用redfish各模块接口,也避免反复纠结不同品牌服务器定义URL不同以及同一品牌服务器不同型号导致的差异。 在网上找了很久都没有一个关于redfish的Java的SDK,就按照自己想法通过借鉴OpenStack4j项目构建了此项目。 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2022-12-08 - **Last Updated**: 2022-12-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Redfish Java SDK ## 介绍 Redfish 规范的第一个版本于2015年8月由分布式管理任务组( Distributed Management Task Force,DMTF )发布,是一个开放的行业标准规范,为可扩展平台硬件提供简单,现代和安全的管理功能。它是一个超媒体API,所以它能够通过一个一致的接口来表示各种实现。它有管理数据中心资源、处理事件、长期任务和发现的机制。基于Redfish统一的管理接口规范普及之后,未来能够有效减少不同服务器硬件管理接口带来的大量适配和开发和测试工作。目前,RedFish标准由DMTF组织的SPMF论坛维护。 Redfish是一种基于HTTPs服务的管理标准,利用RESTful接口实现设备管理。每个HTTPs操作都以UTF-8编码的JSON格式(JSON是一种key-value对的数据格式)提交或返回一个资源或结果,就像Web应用程序向浏览器返回HTML一样。该技术具有降低开发复杂性,易于实施、易于使用而且提供了可扩展性优势,为设计灵活性预留了空间。 ## 软件架构 构建一个通用的redfish client SDK 构建一个通用的redfish client SDK,此构架的模型来源于openstack4j,方便调用redfish各模块接口,也避免反复纠结不同品牌服务器定义URL不同以及同一品牌服务器不同型号导致的差异。 在网上找了很久都没有一个关于redfish的Java的SDK,就按照自己想法通过借鉴OpenStack4j项目构建了此项目。 ## 使用说明 ``` OSFactory.enableHttpLoggingFilter(true); RedfishClient.OSClientV1 redfish = OSFactory.builderV1() .endpoint("https://10.10.22.32") .withConfig(Config.newConfig().withSSLVerificationDisabled()) .credentials("redfish", "xxxxx", null) .authenticate(); ``` ## 参与贡献 1. Fork git clone -b feature https://gitee.com/tomhat/redfish-java-client.git 2. 提交代码 3. 新建 Pull Request ## 提供功能 ### SessionService 资源操作 > 1. 查询会话服务信息 > 2. 获取认证信息 > 3. 查询指定会话资源 > 4. 删除指定会话资源 ### Systems 资源操作 > 1. 查询系统资源集合 > 2. 查询系统资源实例 > 3. 查询 CPU 集合资源信息服务 >> * 3.1 查询 CPU 集合资源信息 >> * 3.2 查询 CPU 资源实例 >> * 3.3 查询 CPU 资源实例列表 > 4. 查询 内存 集合资源信息服务 >> * 4.1 查询内存集合资源信息 >> * 4.2 查询内存集合资源实例 >> * 4.3 查询内存集合资源实例列表 > 5. 查询存储集合资源信息服务 >> * 5.1 查询存储集合资源信息 >> * 5.2 查询指定存储控制器信息 >> * 5.3 逻辑盘集合资源 >>> * 5.3.1 查询指定逻辑盘资源信息 >>> * 5.3.2 查询指定逻辑盘资源信息 >>> * 5.3.3 查询逻辑盘资源信息列表 >>> * 5.3.4 创建逻辑盘资源 >>> * 5.3.5 删除指定逻辑盘资源 >>> * 5.3.6 初始化指定逻辑盘资源 > 6. 服务器开关机操作 > 7. BIOS资源信息服务 >> * 7.1 查询BIOS资源信息 >> * 7.2 修改 BIOS 密码 >> * 7.3 修改 BIOS 资源信息 > ~~8. 以太网接口集合资源信息服务~~ >> ~~8.1 主机以太网集合资源的信息~~ >> ~~8.2 主机以太网资源信息集合~~ > 9. 网络接口集合资源服务 >> * 9.1 当前网络接口集合资源信息 >> * 9.2 指定网络接口资源信息 >> * 9.3 网络接口资源信息集合 >> * 9.4 网络端口集合资源服务 (Chassis中 7. 网络适配器集合资源信息服务) > 10. 日志服务集合资源信息服务 >> * 10.1 查询日志服务集合资源信息 >> * 10.2 查询指定日志服务资源信息 >> * 10.3 查询指定日志服务资源列表 >> * 10.4 清空日志信息 >> * 10.5 查询日志集合资源服务 >>> * 10.5.1 查询日志集合资源信息 >>> * 10.5.2 查询日志资源信息 >>> * 10.5.3 分页查询日志资源信息 >>> * 10.5.4 查询全部日志资源信息集合 ### Chassis 资源操作 > 1. 查询机箱资源集合 > 2. 查询机箱资源实例 > 3. 查询服务器系统内的机箱集合资源信息 > 4. 修改机箱定位指示灯状态 > 5. 查询指定服务器机箱的温度和风扇传感器信息服务 >> * 5.1 查询指定服务器机箱的温度和风扇传感器信息 > 6. 查询指定服务器机箱的电压、功率和电源信息服务 >> * 6.1 查询指定服务器机箱的电压、功率和电源信息 >> * 6.2 修改指定服务器机箱的电源功耗信息 > 7. 查询网络适配器集合资源信息服务 >> * 7.1 查询网卡集合资源信息 >> * 7.2 查询指定网络适配器集合资源信息 >> * 7.3 查询网络适配器集合资源信息 > 8. 查询服务器指定驱动器的信息服务 >> * 8.1 查询硬盘集合资源信息 >> * 8.2 查询指定服务器硬盘集合资源信息 >> * 8.3 修改服务器指定驱动器的属性 >> * 8.4 查询服务器硬盘集合资源信息 > 9. 查询服务器指定PCIe设备资源信息服务 >> * 9.1 查询PCIe设备集合资源信息 >> * 9.2 查询指定服务器PCIe设备资源信息 >> * 9.3 查询服务器PCIe设备集合资源信息 ### Manager 资源操作 > 1. 查询所有管理资源集合信息 > 2. 查询特定的管理资源信息 > 3. 强制重启iBMC > 4. 切换iBMC镜像 > 5. 服务器受控上电 > 6. 修改管理资源信息 > 7. 恢复出厂设置 > 8. 导入配置文件 > 9. 导出配置文件 > 10. 查询BMC服务信息详情 >> * 10.1 查询BMC服务详情信息 >> * 10.2 修改BMC服务信息 > 11. 查询BMC网口集合资源信息 >> * 11.1 查询网口集合资源信息 >> * 11.2 查询指定网口资源信息 >> * 11.3 查询网口资源详情信息 >> * 11.4 设置BMC网口实例的信息 > 12. 查询虚拟设备集合资源信息 >> * 12.1 根据ID查询虚拟媒体信息 >> * 12.2 服务器弹出卸载虚拟媒体 >> * 12.3 服务器挂载虚拟设备 >> * 12.4 查询虚拟设备集合资源信息 >> * 12.5 查询虚拟设备集合资源信息详情信息 > 13. 查询日志服务信息 >> * 13.1 查询日志服务集合信息 >> * 13.2 查询日志服务集合信息详情 >> * 13.3 服务器根据EntriesId查询日志 >> * 13.4 服务器设置日志存储策略 >> * 13.5 清除指定日志信息资源 >> * 13.6 查询指定的日志类型 >> * 13.7 下载服务器的日志资源信息 > 14. 查询安全服务集合资源信息 >> * 14.1 查询安全服务集合资源信息 >> * 14.2 查询安全服务详情信息 >> * 14.3 生成SSL证书资源信息 >> * 14.4 上传SSL证书 > 15. 查询SNMP服务信息 >> * 15.1 查询SMT服务详情信息 >> * 15.2 修改服务器SNMP服务信息 >> * 15.3 发送SNMP 测试事件 > 16. 服务器查询SMTP服务信息 >> * 16.1 查询SMTP服务详情信息 >> * 16.2 修改服务器SMTP服务信息 >> * 16.3 发送SMTP 测试事件 > 17. 查询KVM服务信息集合 >> * 17.1 查询KVM服务信息 >> * 17.2 修改KVM服务信息 >> * 17.3 导出KVM文件 >> * 17.4 打开H5KVM >> * 17.5 设置KVMKey > 18. 查询NTP服务信息集合 >> * 18.1 查询NTP资源详情信息 >> * 18.2 修改 NTP 资源属性 > 19. 查询Syslog资源信息 >> * 19.1 发送Syslog测试事件 >> * 19.2 配置Syslog服务信息 >> * 19.3 查询服务器Syslog资源信息 > 20. 查询LLDP信息 >> * 20.1 查询LLDP信息 >> * 20.2 修改LLDP信息 > 21. 查询诊断服务 >> * 21.1 查询诊断服务 >> * 21.2 触发Kvm故障截屏 >> * 21.3 删除 kvm 故障截屏 >> * 21.4 下载kvm故障截屏 >> * 21.5 黑盒日志收集 >> * 21.6 黑盒日志导出 >> * 21.7 查询黑盒日志收集状态 ### AccountService 资源的操作 > 1. 查询用户服务信息 > 2. 获取用户集合资源信息 > 3. 获取服务器指定用户信息 > 4. 获取服务器用户信息列表 > 5. 创建用户 > 6. 删除用户 > 7. 更新用户 > 8. 查询用户组集合信息 > 9. 查询用户组信息 > 10. 查询用户组信息列表 > 11. 创建用户组信息 > 12. 更新用户组信息 > 13. 删除用户组信息 ### UpdateService 资源的操作 > 1. 查询升级服务资源信息 > 2. 查询服务器当前升级服务资源信息 > 3. 查询服务器当前可升级固件的集合信息 > 4. 查询服务器当前指定可升级固件的信息 > 5. 文件上传 > 6. 升级固件 > 7. 查询服务器当前升级固件任务的状态信息 ### EventService 资源的操作 > 1. 查询服务器当前事件服务资源 > 2. 创建服务器事件订阅资源 > 3. 查询服务器事件订阅集合资源 > 4. 删除服务器事件订阅资源 > 5. 查询事件订阅 > 6. 修改服务器事件订阅资源 > 7. 修改服务器当前事件服务资源 > 8. 模拟事件订阅测试事件 ### TaskService 资源的操作 > 1. 查询服务器当前任务集合资源的信息 > 2. 查询服务器当前任务服务资源信息