接口定制支持web_backend么

rackmount仓库里web_backend某个uri,我在定制仓库里想替换ProcessingFlow

Remove原processingflow,modify了新的processingflow,上板调试发现并不生效,是我漏了什么步骤么

支持的。

详细信息参考官方文档定制指南

我现在需要修改web_backend一条uri的processingflow(只需要改processingflow的path和interface),选择了指南里的属性定制

这是原uri信息:

测试实际不生效。属性定制不可以用remove后再modify的方式来修改原processingflow么

背景:客户需要操作员能进行一键收集文件,web_backend里的收集文件配置使用的是kepler下的收集文件接口,几个月前评审新增了一个带有互联网厂商interface的收集文件接口。

【已评审】新增互联网定制一键收集资源协作路径 - Interface SIG / Interface评审 - openUBMC 论坛

现在在定制仓库里实现了这个接口的后端功能。需要修改web_backend进来以后调用定制的interface。

现状:根据定制指南,有两种修改方案,一种是接口层级定制,在定制仓库里粘贴了复制自rackmount的原json文件,并在仓库里改了收集文件uri调用的interface,修改后测试实际生效,符合预期。但是后续rackmount里这个文件如果有更新,定制仓库感知不到,不好维护。

另一种是属性层级定制,根据指南,需要remove原有processingflow再modify,修改后如上图。测试结果是,操作员没办法调用收集日志功能,判断没有modify成功或者remove失败

【已评审】新增互联网定制一键收集资源协作路径 - Interface SIG / Interface评审 - openUBMC 论坛

这个评审帖子中资源树接口的权限是SecurityMgmt, 操作员是没有这个权限的。

我在定制仓库里改了权限

  1. /UI/Rest/Dump接口来说, 使用接口层级定制和属性层级定制区别不大,因为你是整个替换processflow, 整个接口是个异步任务,核心就是processflow
  2. 属性层级定制修改没问题。 查看下app.log里是否有异常打印。

1.实现的影响有区别,接口级别的问题我上面说了

2.没有打印

接口层级定制 不是复制这个json文件。

实现如下
新增一个Log/Logservice.json, 里面放入/UI/Rest/Dump的定制实现。 在config.json中进行接口级定制配置,其中{customer}放入真实的定制名

{
    "Uri.Actions": {
        "Remove": [
            {
                "Target": "mapping_config/Overview.json",
                "Uri": "/UI/Rest/Dump",
                "Method": [
                    "Post"
                ]
            }
        ],
        "Copy": [
            {
                "Source": "Log/Logservice.json",
                "Target": "mapping_config/{customer}/Logservice.json"
            }
        ]
    }

你下面的copy是想把新建的文件用来覆盖原文件?那和我复制整个文件有什么区别么,没懂

  1. remove 里 只是删除了mapping_config/Overview.json里的 /UI/Rest/Dump接口。
  2. Logservice.json 是一个新的文件,不存在覆盖原始rackmount仓的任何文件。
  3. 这种方式原始仓库的 mapping_config/Overview.json 其他接口不受影响。

明白了,北向是根据uri索引的,和文件没有关系,这样看是可以达到我要的效果的,我试一下,谢谢

推荐使用下 BMC Studio 的Qemu仿真功能,不依赖真机环境。

这样target路径为环境上不存在的目录写法不行

写成这样就可以了。。。= =

你的思路完全可行,copy的target路径如果是不存在的目录,不会自动创建的对吧?

好奇怪,我看JD仓库redfish下config.json里大量copy到不存在目录的target文件

被误导了