背景
基础服务子系统组件间循环依赖解耦,需解决如下循环依赖问题:
| 去除的依赖 | 存在的循环依赖 |
|---|---|
| fructrl自依赖 | ““fructrl””, ““fructrl”” |
| frudata → firmware_mgmt | ““frudata””, ““firmware_mgmt””, ““frudata”” |
| bmc_network → ipmi_core | ““ipmi_core””, ““bmc_network””, ““ipmi_core”” |
| ipmi_core → sensor | ipmi_core不依赖sensor组件了,需要删除ipmi_core中对sensor的引用 |
关联ISSUE
暂无
整体方案
1.fructl有自依赖,但并未调用该方法,直接删除自依赖就行。ipmi_core依赖了sensor,但并未调用sensor的方法,删除对应依赖以及测试用例中对sensor组件方法的调用。
2.frudata对firmware_mgmt的依赖就是为了获取bmc_version,frudata可通过系统文件获取bmc_version,以此去掉对firmware_mgmt组件的依赖。
3. bmc_network对ipmi_core的依赖就是为了获取厂商ID(CustomManufacturerId),厂商ID可以作为全局变量,增加到全局变量中。如此 bmc_network可通过全局变量获取CustomManufacturerId,不需要依赖firmware_mgmt组件
评审点
1.新增资源协作接口bmc.kepler.Global.Managers.IpmiCore,在该接口下新增全局属性表示厂商ID
详细描述
评审点1:新增资源协作接口bmc.kepler.Global.Systems.IpmiCore,在该接口下新增全局属性表示厂商ID
资源path:/bmc/kepler/Global
接口描述:用于承载厂商ID全局属性
新增属性
| 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 易变属性 | 更新者 | 使用场景 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CustomManufacturerId | s | false | true | 厂商ID,默认为0x0007db | Read: ReadOnly Write: BasicSetting |
软件刷新 | 保留内存 | false | ipmi_core | 用于表示当前厂商ID |
是否准备好AI预审
是