redfish 接口openUBMC的SDK已经提供了完备的Redfish协议管理能力并提供了强大的映射配置器简化北向接口的适配工作量。具体关于接口映射配置的介绍请参考《接口映射配置》映射配置增加 redfish 是一个独立的组件使用时先获取当前Redfish相关接口的映射配置仓cd /home/workspace git clone https://gitcode.com/openUBMC/rackmount.git打开rackmount文件夹后我们可以发现在interface_config/redfish/mapping_config下每一个文件对应着一个Redfish的路径。我们希望扩展一个Redfish接口路径为/redfish/v1/OpenUBMC首先在interface_config/redfish/mapping_config下创建文件OpenUBMC.json并粘贴以下代码{ Resources: [ { Uri: /redfish/v1/OpenUBMC, Interfaces: [ { Type: GET, RspBody: { odata.id: /redfish/v1/OpenUBMC, odata.type: #OpenUBMC.OpenUBMC, Id: OpenUBMC, Name: OpenUBMC, WelcomeMessage: ${ProcessingFlow[1]/Destination/WelcomeMessage} }, ProcessingFlow: [ { Type: Property, Path: /bmc/demo/MyMDSModel/1, Interface: bmc.demo.OpenUBMC.Community, Destination: { WelcomeMessage: WelcomeMessage } } ] } ] } ] }这里我们通过接口映射配置不仅将Redfish的uri资源进行了具体的定义并将Redfish的uri资源与openUBMC资源协作接口关联了起来开发者无需再编写Redfish的接口代码逻辑。组件构建 由于修改了rackmount仓库因此我们需要对rackmount仓库进行重新构建。为了和之前版本进行区分我们需要将rackmount/mds/service.json中的version字段进行更新bingo build --stagestable构建错误如果直接进行构建会发现出现以下错误rackmount/1.110.151openubmc/stable: ERROR: Package b351ec081a9b090aa4bbeeaf6d9f94e2f84ec30b build failed rackmount/1.110.151openubmc/stable: WARN: Build folder /root/.conan2/p/b/rackmcdea33fc3084c/b/.build/Debug Formatted output saved to /tmp/tmpcrg23dju.graph.json ERROR: rackmount/1.110.151openubmc/stable: Error in build() method, line 66 MapperCheck.check() JSONDecodeError: Expecting value: line 28 column 29 (char 1158) ERROR: 执行命令 conan create --name rackmount --version 1.110.151 . -pr:h profile.luajit.ini -pr:b profile.dt.ini -s:h build_typeDebug --user openubmc --channel stable -o */*:enable_luajitTrue --buildrackmount/* --buildmissing -f json --out-file/tmp/tmpcrg23dju.graph.json -tf 错误, 日志: /root/.bmcgo_log/bingo.log ERROR: Command [conan, create, --name, rackmount, --version, 1.110.151, ., -pr:h, profile.luajit.ini, -pr:b, profile.dt.ini, -s:h, build_typeDebug, --user, openubmc, --channel, stable, -o, */*:enable_luajitTrue, --buildrackmount/*, --buildmissing, -f, json, --out-file/tmp/tmpcrg23dju.graph.json, -tf] returned non-zero exit status 1. ERROR: 请查看日志信息原因Redfish 接口必须在 PrivilegeMap 里声明权限。构建时MapperCheck.check_privilege_map()一旦 PrivilegeMap 检查返回失败就会写死打印 NULL。检查逻辑是每个 Redfish GET 资源都必须在 PrivilegeMap 里声明权限。发现 OpenUBMC 没有配置后check_get_uri() 直接 return 停掉后面那些本来有 GET 的资源(Account、Chassis、Systems 等)都没登记进父资源表。接着检查 POST Action 时找不到父资源就刷出一长串「无法获取根资源」。我们在interface_config/redfish/mapping_config/OpenUBMC.json新增了URI/redfish/v1/OpenUBMC odata.type#OpenUBMC.OpenUBMC → 检查器用的类型名是 OpenUBMC PrivilegeMap.json 的 Mappings 里没有 Entity: OpenUBMC。但是在interface_config/redfish/mapping_config/AccountService/PrivilegeMap/PrivilegeMap.json的 Mappings 里没有 Entity:OpenUBMC。解决方案在interface_config/redfish/mapping_config/AccountService/PrivilegeMap/PrivilegeMap.json的 Mappings 里补一项和只读 GET 资源一样即可例如{ Entity: OpenUBMC, OperationMap: { GET: [ { Privilege: [Login] } ] } }这样就可以成功构建了。Created package revision 73509a8fdc12d10252fc7dafbf7eee53 Package b351ec081a9b090aa4bbeeaf6d9f94e2f84ec30b created Full package reference: rackmount/1.110.151openubmc/stable#b79e0304ae4852ab37a0bd8a6e093ba8:b351ec081a9b090aa4bbeeaf6d9f94e2f84ec30b#73509a8fdc12d10252fc7dafbf7eee53 Package folder /root/.conan2/p/b/rackmaa0b5f316b3f2/p Formatted output saved to /tmp/tmpfofshiv3.graph.json sr 文件检查开始 没有找到[sr]后缀的文件 sr 文件检查结束 构建成功不要去注释 check_privilege_map()那只是个人出包的临时绕过不是修法。整包构建 组件添加在manifest/build/product/BMC/openUBMC/manifest.yml文件dependencies:下面添加我们刚构建的组件dependencies: - conan: rackmount/1.110.151openubmc/stable整包构建cd /home/workspace/manifest bingo build构建完成后便可在manifest/output中查看构建包。整包测试 无硬件环境验证组件集成如果您当前没有真实的BMC硬件可以通过检查整包构建产物的方式验证新组件已被正确集成到产品包中。整包构建过程中会先在temp构建工作区生成集成后的rootfs目录(tmp_root)它就是hpm包内rootfs镜像的直接来源其中的文件会原样打包进升级包。因此只需检查该目录# 查看新增加的OpenUBMC.json ls temp/build_openUBMC_debug_dev/tmp_root/opt/bmc/apps/redfish/interface_config/mapping_config/OpenUBMC.json不会出现成opt/bmc/apps/rackmount这种独立目录。my_app是 Kepler 应用打包路径就是opt/bmc/apps/my_app所以你能在apps/下看到同名文件夹。rackmount是北向映射器package()会把内容拆进现有接口组件里opt/bmc/apps/redfish/ opt/bmc/apps/web_backend/ opt/bmc/apps/cli/ opt/bmc/apps/snmp/文档元数据在usr/share/doc/openubmc/rackmount/
企业数字化 ERP 产品动态
相关推荐
开源PhotoSuite:复刻Photoshop PSD兼容 PhotoSuite 是由开发者 eolix 在 GitHub 上开源的一款桌面图像编辑器,其核心目标是 1:1 复刻经典版 Adobe Photoshop(约2020年版本)的使用体验,并实现与 Photoshop 原生格式 PSD/PSB 的完全兼容。
PhotoSuite 的核心理念是 "… · 2026/9/26 19:31:33
从一枚手机镜头到毕业论文:光学人的 AI 工具链怎么选 如果你在理学 / 物理学 / 光学方向学习,大概率会遇到一类很典型的毕业任务:基于 Zemax OpticStudio 的手机广角物镜优化设计。
题目看起来不长,但事情不少:要确定焦距、视场角、F 数、传感器尺寸,要选初始结构&#x… · 2026/9/26 19:31:33
手写文本识别Transformer实战:抗抖动、中文混排与部署优化 简介:本资源是一套基于Transformer架构的手写文本识别系统实现方案,面向深度学习初学者与计算机视觉方向进阶开发者,解决传统OCR中连笔、倾斜及无分割手写文本识别准确率低的问题。项目提供端到端建模能力,融合CNN特征提取与二维相… · 2026/9/26 19:31:33
给同事做AI数字分身:从技术搭建到伦理反思的完整实验 1. 从“给同事做数字分身”这个念头说起第一次冒出“给同事建AI克隆”这个想法,是在一个再普通不过的周三下午。当时团队里三个人同时请假,剩下的活全压在我一个人身上,需求文档、代码评审、客户答疑、周报汇总,全堆在一起。我盯着… · 2026/9/26 20:04:33
本地AI办公助手:文档分片与L0硬规则调度实战解析 先说个背景。我一直在搞一个基于 Node.js 的本地 AI 办公助手,模型用的是 Ollama 拉下来的开源模型,跑在公司内网一台闲置工作站上。做到中途我发现自己掉进了一个很尴尬的坑:模型侧其实没怎么折腾就通了,真正让我连续加了好几个夜… · 2026/9/26 20:04:27
卷积神经网络详解(CNN) 卷积神经网络是一种稀疏连接的神经网络,虽然由于稀疏连接较全连接神经网络失去了一些拟合能力,但以此换来的对训练成本的降低却是极高的。在CNN发展史上一些经典模型有LeNet-5、AlexNet、VGG、ResNet等。1、conv2dimport torch
import torch.nn as nn
to… · 2026/9/26 20:04:14
cpp算法题目整理——线性枚举篇2 三元组中心问题
题目描述:
在数列 a1,a2,⋯,ana1,a2,⋯,an 中,如果对于下标 i,j,ki 满足 0<i<j<k<n1 且 ai<aj<ak,则称 ai,aj,ak 为一组递增三元组,aj为递增三元组的中心。
给定一个数列,… · 2026/9/26 20:04:08
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46