AMI OpenRedfish 开发记录

简介

开源仓库地址

https://github.com/ami-megarac/MORF-REST-Server

image-20250106024101658

语言

lua

增加命令

增加命令对应url,在redfish-xxxxx-URI.lua内,用于匹配对应redfish命令URI

增加对应entity, method, hande 在对应redfish-xxxx-entity, method, hander.lua

entity: 猜测用于说明对应层级和调用关系,未尝试不增加会造成的异常

method: 用于设置redfish命令权限,例如只支持GET或GET, POST均支持

hander: 用于对应实际lua代码操作接口,具体使用问题可在文件头部require中查询, 推荐直接使用已经编写好的handler

在action-xxx.cmdr内增加一条带对应命令中所有Redfish参数的的redis数据库初始化

SET XXXX Redifsh:v1:Managers:1:LogServices:Actions:SOLDump:Name "SOLDump"

redfish操作接口修改

修改文件在redfish-xxxx-hander.lua requre寻找

只需要修改对应的XXXXHander接口对应的POST/GET/SET/PUT等函数,函数名为XXXXHander:GET

开头直接获取取得的URI,URI对应关系(lua table 下表对应C语言中数组,表现形式类似json,下表从1开始)

-- 以 Redifsh:v1:Managers:1:LogServices:Actions:Oem:HK:CollectAllLog 为例
url[1] = "Managers"
url[2] = "1"
url[3] = "LogServices"
url[4] = "Actions"
url[5] = "Oem"
url[6] = "HK"
url[7] = "CollectAllLog"

可直接匹配字符串验证,成功后修改代码逻辑

日志打印

对应lua文件头部增加

log = require("trubo.log")

增加打印

log.warnging("Print Test!")

查看打印

  1. ssh 进入bmc小系统
  2. 重启redfsih-server
/etc/init.d/redfish-server restart
  1. 输入对应命令查看

Redis数据库使用

  1. ssh 进入bmc小系统
  2. redis-cli -s /run/var/redis/redis.sock进入redis命令行
  3. 使用KEYs、DEL等命令修改查询

验证

场内开发使用curl验证,常见命令格式可见 /home/deep/note/dratf.txt