Message registries continuation
James Feist
james.feist at linux.intel.com
Wed Jun 17 06:39:18 AEST 2020
On 6/16/2020 12:47 PM, Matt Spinler wrote:
> Hi James,
>
> Picking up the discussion again from
> https://lists.ozlabs.org/pipermail/openbmc/2020-February/020620.html
> about reading in message registries...
>
> When this was left off, I believe we were leaning toward being able to
> copy message registry JSON files
> into some target directory on the BMC during the build where bmcweb
> would load them on startup
> and leave them in their JSON objects, and they would be pulled from
> there when LogService requests
> were made.
>
> This was to be able to support multiple languages, and in general just
> to support other registries besides
> the existing OpenBMC one that is hardcoded in a header file. (We're
> going to have an IBM registry we
> use together with our D-Bus logs based LogService.)
There's 3 registries, fwiw:
https://github.com/openbmc/bmcweb/tree/master/redfish-core/include/registries
>
> An open issue we still had was if these registries had to be validated,
> or if that was left to whoever
> made them. A stake in the ground could be that we leave the OpenBMC
> registry as it is in a header
> file, which negates validation, or put it in JSON too and validate just
> that one during the build.
> Or if there are any other ideas here...
Entity-manager uses valijson, in that way you could validate them
against a schema: https://github.com/tristanpenman/valijson. It plays
nicely with nlohmann-json. Although if these are compiled in json files,
I'm not sure it's a large issue. We could just create a compile-time
script to validate.
>
> As far as the directory used, I think that /usr/share/bmcweb/ would be
> appropriate, or maybe
> /usr/share/bmcweb/registries/ if either of those are OK with you.
I think the directory is a good idea so it can load any json file from
that directory. Maybe /usr/share/bmcweb/registries/<language> even to
make it easier to switch between languages?
>
> Also, it may be overkill to need to read in the same registry for every
> language, as there could
> be dozens and realistically they will never all be used on a single
> system, but if the desire is only
> to load them at startup before the current language is known I don't
> really see a way around it.
I think this would require a default language and a bmcweb reload if the
language changed? Its probably ok to change languages after startup, as
long as the default language is loaded immediately to lower the chances
of run-time issues. As changing languages is probably a very infrequent
operation.
>
> Thanks!
> Matt
More information about the openbmc
mailing list