当前社区版本的network_adapter和mdb_interface存在同名属性;

[问题描述]
使用bingo gen对netword_adapter进行代码生成. 提示RuntimeError: 在model.json文件NetworkAdapter类的bmc.kepler.Inventory.Hardware接口中发现重名资源树属性Model.

通过更新network_adapter和mdb_interface代码, 编译mdb_interface代码, 编译network_adapter, 发现问题依旧.
[定位]
代码结点:
network_adapter

commit 622ca21d62940e6a1afc95ef65f2876ecfabf94f (HEAD -> main)
Merge: f7f07f2 fcbc214
Author: openUBMC-robot <chaotomzhu@gmail.com>
Date:   Tue May 20 21:49:26 2025 +0800

    merge main into main
    
    NCSI边带管理能力新增aen, mac相关功能

通过

python -m pdb /home/workspace/network_adapter/temp/lua_codegen/script/merge_model.py -i /home/workspace/network_adapter/mds/model.json -o /home/workspace/network_adapter/temp/lua_codegen/temp/network_adapter/_model.json -d /home/workspace/network_adapter/temp/lua_codegen/../../temp/opt/bmc/apps/mdb_interface/ -c /home/workspace/network_adapter/temp/lua_codegen/script/../temp/check_cmd.json

调试, 打印class_data数据
print_class_data.json.txt (25.0 KB)

可知, 当前报错点在于
class_name 为NetworkAdapter的类存在2个interface,
"bmc.kepler.Inventory.Hardware"下的属性Model, 和 "bmc.kepler.Systems.NetworkAdapter"下的属性Model, 被认为是同名属性.

然而实际上这是2个interface. 但是bmc旧版本的sr配置, interface下的属性和类的私有属性是同级的, 故而, merge_model.py要求其不能同名的逻辑是正确的.
因此, 是interface的随意添加导致的冲突.

查看代码,
发现 "bmc.kepler.Inventory.Hardware"下的属性Model,是5-15上库的代码导致的

然而, 逻辑上, "bmc.kepler.Inventory.Hardware"和"bmc.kepler.Systems.NetworkAdapter"是2个接口, mdb_interface是没法识别他们被一个类NetworkAdapter引用, 导致冲突的.

因此, 似乎上面"要求其不能同名的逻辑", 在设计上或者代码审核上似乎没有考虑好,class引用了不同的interface的情况

[日志]:

执行日志如下
run.log.txt (18.9 KB)

......
......
python3 /home/workspace/network_adapter/temp/lua_codegen/script/merge_model.py -i /home/workspace/network_adapter/mds/model.json -o /home/workspace/network_adapter/temp/lua_codegen/temp/network_adapter/_model.json -d /home/workspace/network_adapter/temp/lua_codegen/../../temp/opt/bmc/apps/mdb_interface/ -c /home/workspace/network_adapter/temp/lua_codegen/script/../temp/check_cmd.json
Traceback (most recent call last):
  File "/home/workspace/network_adapter/temp/lua_codegen/script/merge_model.py", line 293, in <module>
    main(sys.argv[1:])
  File "/home/workspace/network_adapter/temp/lua_codegen/script/merge_model.py", line 289, in main
    generate(m_input, output, mdb_path, cmd_file)
  File "/home/workspace/network_adapter/temp/lua_codegen/script/merge_model.py", line 253, in generate
    merge_model(load_dict, mdb_path)
  File "/home/workspace/network_adapter/temp/lua_codegen/script/merge_model.py", line 205, in merge_model
    check_property_name_conflict(origin_model)
  File "/home/workspace/network_adapter/temp/lua_codegen/script/merge_model.py", line 195, in check_property_name_conflict
    check_class_property_name_conflict(class_name, class_data)
  File "/home/workspace/network_adapter/temp/lua_codegen/script/merge_model.py", line 188, in check_class_property_name_conflict
    raise RuntimeError(f"在model.json文件{class_name}类的{interface}接口中发现重名资源树属性{prop_name}")
RuntimeError: 在model.json文件NetworkAdapter类的bmc.kepler.Inventory.Hardware接口中发现重名资源树属性Model
make[3]: *** [Makefile:131: /home/workspace/network_adapter/temp/lua_codegen/temp/network_adapter/_model.json] Error 1
make[3]: Leaving directory '/home/workspace/network_adapter/temp/lua_codegen/templates/apps'
make[2]: *** [Makefile:12: apps] Error 2
make[2]: Leaving directory '/home/workspace/network_adapter/temp/lua_codegen/templates'
make[1]: *** [Makefile:68: gen] Error 2
make[1]: Leaving directory '/home/workspace/network_adapter/temp/lua_codegen'
make: *** [Makefile:25: gen] Error 2
ERROR: Traceback (most recent call last):
  File "/usr/local/lib/python3.12/dist-packages/bmcgo/cli/cli.py", line 355, in run
    return method(command_args)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/dist-packages/bmcgo/cli/cli.py", line 159, in gen
    gen.run()
  File "/usr/local/lib/python3.12/dist-packages/bmcgo/component/gen.py", line 110, in run
    self.generate_lua_run(parser, base_version)
  File "/usr/local/lib/python3.12/dist-packages/bmcgo/component/gen.py", line 122, in generate_lua_run
    codegen.gen(args)
  File "/usr/local/lib/python3.12/dist-packages/bmcgo/codegen/lua/codegen.py", line 164, in gen
    self.generate_code_run(args)
  File "/usr/local/lib/python3.12/dist-packages/bmcgo/codegen/lua/codegen.py", line 145, in generate_code_run
    subprocess.run(cmd, env=dict(os.environ, LUA_FORMAT=lua_format, LUA_CODEGEN_VERSION=str(self.version),
  File "/usr/lib/python3.12/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/usr/bin/make', '-j12', 'PROJECT_NAME=network_adapter', 'TPL_DIR=/home/workspace/network_adapter/temp/lua_codegen', 'VERSION=8', 'gen']' returned non-zero exit status 2.

ERROR: Command '['/usr/bin/make', '-j12', 'PROJECT_NAME=network_adapter', 'TPL_DIR=/home/workspace/network_adapter/temp/lua_codegen', 'VERSION=8', 'gen']' returned non-zero exit status 2.
ERROR: 请查看日志信息

回复已收到问题,正在确定原因。

最新代码已解决