我在自定义的组件中添加了个ipmi命令,在其回调中,去pcall Sensor组件中新增的一个方法
local err, repoResult = self.bus:pcall("bmc.kepler.sensor", "/bmc/kepler/Systems/ThresholdSensorMgmts/1",
"bmc.kepler.Systems.ThresholdSensorMgmt", "CustomSetSensorThreshold", "a{ss}ay",
context.new(), byte_array)
这个地方无论使用ipmi回调的ctx还是用context.new() 还是传0 都会有错误返回类似下面的,推测ctx参数的格式不对或者权限问题
sensor组件新增的方法 部分代码 如下:
self:ImplThresholdSensorMgmtThresholdSensorMgmtCustomSetSensorThreshold(function(obj, ctx, ...)
log:info("---- ctx start ----")
for k, v in pairs(ctx) do
local v_type = type(v)
if v_type == "table" then
log:info("Key: %s, Value: <table>", k)
elseif v_type == "function" then
log:info("Key: %s, Value: <function>", k)
else
log:info("Key: %s, Value: %s (%s)", k, tostring(v), v_type)
end
end
log:info("---- ctx end ----")
现在就是不知道 这个ctx到底该怎么传才能正确呢?
我通过web接口 调 自定义方法 会返回下面这些 字段或者属性
1970-01-05 03:04:07.575258 byo_czcbmc INFO: byo_czcbmc_app.lua(587): Key: Auth, Value: 1 (string)
1970-01-05 03:04:07.577183 byo_czcbmc INFO: byo_czcbmc_app.lua(587): Key: ClientAddr, Value: 192.168.150.228 (string)
1970-01-05 03:04:07.577708 byo_czcbmc INFO: byo_czcbmc_app.lua(587): Key: Privilege, Value: 511 (string)
1970-01-05 03:04:07.579361 byo_czcbmc INFO: byo_czcbmc_app.lua(587): Key: Interface, Value: WEB (string)
1970-01-05 03:04:07.579938 byo_czcbmc INFO: byo_czcbmc_app.lua(587): Key: UserName, Value: Administrator (string)
1970-01-05 03:04:07.581334 byo_czcbmc INFO: byo_czcbmc_app.lua(590): ---- ctx end ----
现在的问题我自定义组件中 通过ipmi命令 去出发 pcall到sensor中这个自定义方法的时候 这个参数怎么传 怎么定义?



