添加了一个Accessor,如何在代码中获取Accessor的value?
1、搞个属性配在csr里,属性关联accessor,代码里获取属性;
2、mdb.get_object看下这个函数的调用

在csr中添加了属性并关联到Accessor了,但还是没太懂怎么获取,mdb.get_objec中的path和intf应该怎么填呢?加了这个属性之后,在资源树上并不能看到这个属性属于哪个服务,也不知道路径是啥
csr配置对象与属性后,还需要在组件的model.json配置对象与属性,并设置属性为"usage":[“CSR”],这样才可以通过CSR配置的来源更新属性
加入了path和interfaces后编译会报错,显示找不到SlotID.json文件,但是这个文件不是自动生成的吗?
Traceback (most recent call last):
File “/home/workspace/sensor/temp/lua_codegen/script/merge_model.py”, line 293, in
main(sys.argv[1:])
File “/home/workspace/sensor/temp/lua_codegen/script/merge_model.py”, line 289, in main
generate(m_input, output, mdb_path, cmd_file)
File “/home/workspace/sensor/temp/lua_codegen/script/merge_model.py”, line 253, in generate
merge_model(load_dict, mdb_path)
File “/home/workspace/sensor/temp/lua_codegen/script/merge_model.py”, line 202, in merge_model
mdb_obj = utils.get_path(class_name, mdb_path, class_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/workspace/sensor/temp/lua_codegen/script/mds_util.py”, line 39, in get_path
with os.fdopen(os.open(real_path, os.O_RDONLY, stat.S_IRUSR), “r”) as obj_file:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: ‘/home/workspace/sensor/temp/lua_codegen/../../temp/opt/bmc/apps/mdb_interface//path/mdb//bmc/kepler/Systems//SlotID////SlotID.json’
make[3]: *** [Makefile:131: /home/workspace/sensor/temp/lua_codegen/temp/sensor/_model.json] Error 1
make[3]: Leaving directory ‘/home/workspace/sensor/temp/lua_codegen/templates/apps’
make[2]: *** [Makefile:12: apps] Error 2
make[2]: Leaving directory ‘/home/workspace/sensor/temp/lua_codegen/templates’
make[1]: *** [Makefile:68: gen] Error 2
make[1]: Leaving directory ‘/home/workspace/sensor/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=sensor’, ‘TPL_DIR=/home/workspace/sensor/temp/lua_codegen’, ‘VERSION=8’, ‘gen’]’ returned non-zero exit status 2.
ERROR: Command ‘[’/usr/bin/make’, ‘-j12’, ‘PROJECT_NAME=sensor’, ‘TPL_DIR=/home/workspace/sensor/temp/lua_codegen’, ‘VERSION=8’, ‘gen’]’ returned non-zero exit status 2.
ERROR: 请查看日志信息
代码生成可以参考这篇文档
你这里报错是因为你修改了资源协作接口,资源协作接口的定义是在mdb_interface里声明的,因此需要现在mdb_interface里面修改后,组件mds才能正确生成代码。
还有种方法是不上树,改成私有属性,在properties下面添加slotid,这样子就不依赖mdb_interface了,但同样的,这个值只能本APP使用,无法对外呈现。
这么做的原因还是为了规范化管理组件对外的属性和接口


