当前位置: 首页 > news >正文

网站做投票建设局工程网站

网站做投票,建设局工程网站,深圳物流公司网站,微信表情开放平台官网登录1.说明 本节是厘清openbmc的界面层web或者redfish到底层数据获取与展示。 不可或缺的是先阅读官方关于redfish的设计文档: 1.https://github.com/openbmc/docs/blob/master/designs/redfish-authorization.md2.https://github.com/openbmc/docs/blob/master/designs/redfish…

1.说明

本节是厘清openbmc的界面层web或者redfish到底层数据获取与展示。

不可或缺的是先阅读官方关于redfish的设计文档:

  • 1.https://github.com/openbmc/docs/blob/master/designs/redfish-authorization.md
  • 2.https://github.com/openbmc/docs/blob/master/designs/redfish-postcodes.md
  • 3.https://github.com/openbmc/docs/blob/master/development/web-ui.md

需要注意的是,官方的文档一定要细读与分析背后的设计。

2.代码简单流程分析

2.1 大致总体流程

代码包包含webredfish,均在bmcweb中,可以使用如下命令抽取代码:

# devtool modify bmcweb

调用关系如下:

(bmcweb/src/webserver_main.cpp)
int main(int /*argc*/, char** /*argv*/) noexcept(false)
---> run()  (bmcweb/src/webserver_run.cpp)---> server.add_interface("/xyz/openbmc_project/bmcweb","xyz.openbmc_project.bmcweb");---> if constexpr (BMCWEB_REDFISH)---> redfish::RedfishService redfish(app);---> redfish::EventServiceManager::getInstance(&*io);---> crow::login_routes::requestRoutes(app);---> app.run();---> systemBus->request_name("xyz.openbmc_project.bmcweb");---> io->run();

redfish()定义在文件bmcweb/redfish-core/src/redfish.cpp中,关系如下:

RedfishService::RedfishService(App& app)
---> requestRoutesMetadata(app);
---> requestRoutesOdata(app);
---> requestAccountServiceRoutes(app);
---> requestRoutesRoles(app);
---> ...
---> requestRoutesManager(app);
---> ...
---> requestRoutesSystemsLogServicesPostCode(app);
---> ...
---> requestRoutesRedfish(app);

因此,如果需要添加自己的redfish功能,可以在这里添加顶层函数功能。

拿一个函数调用:requestRoutesManager(app)举例:

(bmcweb/redfish-core/lib/managers.hpp)
inline void requestRoutesManager(App& app)
---> BMCWEB_ROUTE(app, "/redfish/v1/Managers/<str>/")...

调用返回数据。

2.2 webredfish结合

openbmcwebredfish怎么结合去服务用户呢?

web理解就是前端展现给用户的网页,redfish其实是与web进行沟通,所以openbmc设计理念是redfish(bmcweb)作为后台与web(web-vue)作为前端搭配起来使用的。

顺便提一下,openbmc是使用nghttp2作为web server的。

举一个简单例子,在前端js中获取数据:

async getChassisCollection() {
--->  ...
---> .get('/redfish/v1/Chassis')
2.3 针对官方文档,简单分析一个例子

这一部分针对官方文档的内容,看一下例子。

官方文档如下:

  • https://github.com/openbmc/docs/blob/master/designs/redfish-postcodes.md

该文档说的bios postcode的事情,可以找到代码位置:

bmcweb/redfish-core/lib/systems_logservices_postcodes.hpp
bmcweb/redfish-core/src/redfish.cpp

在文件bmcweb/redfish-core/src/redfish.cpp中调用函数requestRoutesSystemsLogServicesPostCode(),在文件bmcweb/redfish-core/lib/systems_logservices_postcodes.hpp中定义了函数:requestRoutesSystemsLogServicesPostCode():

inline void requestRoutesSystemsLogServicesPostCode(App& app)
---> BMCWEB_ROUTE(app, "/redfish/v1/Systems/<str>/LogServices/PostCodes/")...
---> BMCWEB_ROUTE(app,"/redfish/v1/Systems/<str>/LogServices/PostCodes/Actions/LogService.ClearLog/")
---> BMCWEB_ROUTE(app,"/redfish/v1/Systems/<str>/LogServices/PostCodes/Entries/")
---> BMCWEB_ROUTE(app, "/redfish/v1/Systems/<str>/LogServices/PostCodes/Entries/<str>/")
---> BMCWEB_ROUTE(app,"/redfish/v1/Systems/<str>/LogServices/PostCodes/Entries/<str>/attachment/")

比较关心的是对于设置操作如何处理。可以看到,调用的是函数handleSystemsLogServicesPostCodesPost():

inline void handleSystemsLogServicesPostCodesPost()
---> crow::connections::systemBus->async_method_call(..,"xyz.openbmc_project.State.Boot.PostCode0",
"/xyz/openbmc_project/State/Boot/PostCode0",
"xyz.openbmc_project.Collection.DeleteAll", 
"DeleteAll");

因此,采取的就是一种函数调用的办法去处理的。

2.4 web获取后台数据的例子

这一节借一个web例子,可以看到web和后台是怎么交互的。

例如,在web下可以看到如下内容:

在这里插入图片描述
因此,明显看到后台以(redfish)json数据呈现给webweb解析即可。

http://www.yayakq.cn/news/571732/

相关文章:

  • 请问如何做网站网站 数据报表如何做
  • 永嘉专业网站建设团队微商城网站策划
  • 重庆江北网站建设公司wordpress分页 标题
  • 广州网站建设支付没有网站可以做seo吗
  • linux 网站备份wordpress主题the 7
  • 做公司简介网站手机网站搭建多少钱
  • 舒城县住房和城乡建设局网站番禺网站建设
  • 哪家公司建站比较好如何做网站迁移
  • 新闻类网站备案 100万网站建设全部流程包括备案
  • 网站中页面链接怎么做一个专门做标题的网站
  • 做网站需要一些什么东西广告投放行业
  • 宝安第一网站企业网站建设用标语
  • 营销型网站建设细节云服务器建设简易网站
  • 天津优化网站wordpress导出数据
  • 怎么建设查询网站php想学做电商怎么入手
  • 免费网站制作软件的app一般的网站开发语言用什么
  • windos 下做网站工具emlog怎么转换到WordPress
  • 镇江网站建设一般多少钱新媒体
  • 免费建网站样板手机版汽车 营销 网站建设
  • 外贸网站推广 sitgodaddy 上传wordpress
  • 做网站的公司怎么赚钱吗网站建设接外包流程
  • j2ee网站开发wordpress的安装界面
  • 建站工作室网站源码wordpress 首页修改
  • 网站后台打开很慢个人可以做网站导航的网站吗
  • 网站建设哪里学深圳福田站
  • 网站小图标网站文章编辑
  • 购物网站的策划网页制作素材印象数码怎么弄出来
  • 想建一个免费的网站百度手游排行榜
  • 怎么使用腾讯云做网站四川建设厅官方网站四库一平台
  • 网站改版设计方案做企业网站公司