标签:怎么 Resource 版本 Redfish Schema type schema
What version of Redfish does your product support?
你是否曾經被問過這個問題,但是卻很疑惑怎麼回答。
DMTF 将Redfish 协议(protocol)的定义与数据模型(schema)分开,同时允许独立修改schema中定义的每个资源,所以完整描述一条Redfish需要列出每个Schema中支持的每个property,以及protocol version和supported feature。
REDFISH | DMTFhttps://www.dmtf.org/standards/redfish从DMTF的官网可以看到两份文件,一份是定义Protocol( DSP0266 Redfish Specification),另外一份是定义Schema(DSP0268 Redfish Schema Supplement, 搭配 DSP8010 Redfish Schema Bundle)
Protocol Version
DSP0266 Redfish Specification 主要内容是规范了Redfish需要符合哪些协议(例如OpenAPI, OData),Security 等,透过Redfish 指令(redfish/v1)可以得到Redfish Version
curl -k -u root:0penBmc -H "Content-Type: application/octet-stream" -X GET https://$bmcip/redfish/v1 --silent | jq -r ".RedfishVersion"
1.9.0
这边放一点点目录,有兴趣的可以去看看spec的内容,觉得写得蛮好的
Schema Version
Redfish使用 RESTful 接口执行操作,并使用 JSON 和 OData 格式处理数据负载。那开发Client端软体的工程师就需要知道Redifsh有可能会回传的资料格式长怎样,会有那些Data,这样才能进一步处理资料,所以我们常会听到Scheam这个词,Schema的中文翻译是"纲要、架构"之类的,描述一个Resource回传的数据架构,包含它有可能/必须有哪些property,和相对应的type和attribute
例如Property的Attributes是
- read-only: 只支援GET method
- required: 必须存在,不可为空
每个Resource 都有各自的schema,也有各自版本,它们都是伴随DSP0268/DSP8020 released的,每次release也只会更新需要更新的schema
Resource 的 Schema 版本可以从 @odata.type 获得
@odata.type 格式:#<ResourceType>.<Version>.<TermName>
其中 <Version> 是 v<MajorVersion>_<MinorVersion>_<ErrataVersion>
例如 "@odata.type": "#ComputerSystem.v1_8_0.ComputerSystem" ,可以得到ComputerSystem的版本是v1.8.0,透过查表得到他是在2019.2的时候被released的
这边可以顺便补充一点,DSP8010 中提供的json schema / csdl 是可以向下相容的,所以你的Resource 没有更到最新的没关系,但是如果Resource 的version 比DSP0268/DSP8010 的版本还要新的话,这样就会有问题
例如执行Redfish Service Validator来验证Redfish的时候,如果你的AcountService已经到v1.11的版本了,但你的Schema 还停留在2021.03,就会出现cannot find namespace之类的error log
总结
如果要描述一个Redfish 的版本,必须包含
- Protocol 版本 (RedfishVersion: v1.xx)
- Schema版本 (2022.01)
- 每个支援的Resource 版本 (AccoutService v1.10, ManagerService v2.xx...)
标签:怎么,Resource,版本,Redfish,Schema,type,schema 来源: https://blog.csdn.net/yeiris/article/details/122759365
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。