History log of /openbmc/bmcweb/scripts/update_schemas.py (Results 1 – 25 of 80)
Revision Date Author Comments
# 9b46bc0b 21-Jan-2025 Myung Bae <myungbae@us.ibm.com>

Update to 2024.4

Update schema to the latest release 2024.4.

See below for more info on this release:
https://www.dmtf.org/standards/redfish

Tested:
- Redfish Service Validator passes

Change-Id:

Update to 2024.4

Update schema to the latest release 2024.4.

See below for more info on this release:
https://www.dmtf.org/standards/redfish

Tested:
- Redfish Service Validator passes

Change-Id: I1845d6afa04ee418ba3ab0bd0bc8ce59886e4376
Signed-off-by: Myung Bae <myungbae@us.ibm.com>

show more ...


# dd5c81e9 17-Sep-2024 Gunnar Mills <gmills@us.ibm.com>

Update to 2024.3

1 line change in update_schemas.py and rerun it.

See below for more info on this release:
https://www.dmtf.org/content/redfish-release-20243-now-available

Tested: Inspection only.

Update to 2024.3

1 line change in update_schemas.py and rerun it.

See below for more info on this release:
https://www.dmtf.org/content/redfish-release-20243-now-available

Tested: Inspection only.

Change-Id: I856b9777fd386f828724bd7a521dcd5c8c3270cf
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# 28cfceb2 22-Aug-2024 Gunnar Mills <gmills@us.ibm.com>

Update to 2024.2

Redfish changed the directory structure again. Don't see that ZipFile
has a "cd" so insert the version in the path when checking or building
the path.

You can see this directory st

Update to 2024.2

Redfish changed the directory structure again. Don't see that ZipFile
has a "cd" so insert the version in the path when checking or building
the path.

You can see this directory structure change by downloading 2024.2 vs
2024.1. Also by printing the ZipFile Info.

<ZipInfo filename='DSP8010_2024.2/info.json' compress_type=deflate
filemode='-rw-r--r--' file_size=54 compress_size=42>

This is how we used to do it. [1]

[1]: https://github.com/openbmc/bmcweb/commit/60c922dfacd5d1aeec8789e03edc91b47f4a6661

Make the changes for the script, bump the version, and run the script.

See below for more info on this release:
https://www.dmtf.org/content/redfish-release-20242-now-available

Tested: Validator is happy.

Change-Id: I87674d5b9ff19b39d3cdf2fb046543e21a6ebc5b
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# a529a6aa 29-May-2024 Ed Tanous <ed@tanous.net>

Make schemas selectable

Which schemas are installed should be selectable in both a meson config,
and trivially by forks. This commit gets us closer to that idea.

It does it in several ways, first,

Make schemas selectable

Which schemas are installed should be selectable in both a meson config,
and trivially by forks. This commit gets us closer to that idea.

It does it in several ways, first, the code for generating
JsonSchemaFile resources has been changed to be generated at runtime,
based on files on disk. This is slightly slower, but allows installing
schemas from anywhere, and matches the CSDL handling.

Next, the schema folders are separated into two sets
csdl -> This includes the complete schema pack from dmtf
installed -> this includes only the schemas the bmc includes

Similar folders exist for json-schema and json-schema-installed.

This allows any additional schemas to be a single symlink addition.
Note, this also checks in all of the dmtf json schemas, not just the
versions we use. This allows us to update the schema pack without
needing to break our versions we ship.

Because the static files are now selectable, all files need to be in a
folder. This forces the css and image for the redfish built-in gui to
be moved.

Tested:
/redfish/v1/JsonSchemas returns the correct result
/redfish/v1/JsonSchemas/UpdateService returns a JsonSchemaFile instance
/redfish/v1/JsonSchemas/UpdateService/UpdateService<version>json returns
the JsonSchemaFile contents.

Redfish service validator passes.

Change-Id: Ie96b2e4b623788dc2ec94eb40fcfd80325f0d826
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


# f2a8e57e 18-Jun-2024 Gunnar Mills <gmills@us.ibm.com>

Pull in 2024.1 schemas

Redfish released 2024.1 in May.
https://www.dmtf.org/content/redfish-release-20241-now-available

"The bundle includes 29 schema updates and additional developer
resources." T

Pull in 2024.1 schemas

Redfish released 2024.1 in May.
https://www.dmtf.org/content/redfish-release-20241-now-available

"The bundle includes 29 schema updates and additional developer
resources." There was a request on the discord server to pull this in.

Changed 1 line scripts/update_schemas.py and reran the tool.

Tested: None. Inspection only. Picking up new schemas hasn't caused
problems in the past.

Change-Id: I44f08ab56ad2f97b757b48003ac97a2f914bd8ea
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# 090ab8e1 18-May-2024 Ed Tanous <ed@tanous.net>

Generate metadata at runtime

In the initial implementation of metadata indexing the bmc knew at
compile time what schemas it could potentially publish. bmcweb took the
approach of adding all schema

Generate metadata at runtime

In the initial implementation of metadata indexing the bmc knew at
compile time what schemas it could potentially publish. bmcweb took the
approach of adding all schemas of all versions to the $metadata
resource. Since that was made, two major changes have happened.
First, Redfish has added significantly more versions of each schema, as
well as significantly more schemas to the point where the metadata index
is now 213KB. While this file compresses fairly well, the size is
obvious from the large amount of time that redfish service validator
takes to parse the schemas, compared to actually acquiring BMC redfish
resources.
Second, aggregation was added, where an aggregated Redfish service might
implement any number of schemas, including OEM ones.

In an effort to fix this, this patch takes the compile-time algorithm in
update_schemas.py, and moves it into bmcweb itself, parsing the files on
disk as needed on demand. This has some immediate benefits; First, is
that now schemas can be potentially installed from anywhere, not only
from within the bmcweb build, and they will be resolved at runtime.

Second, patches that want to add support for a given schema need to only
symlink the schema into the correct folder, without needing to rerun
update_schemas.py. This saves time in review.

Finally, this opens to door to reducing the schema versions present in
the metadata to the unique set of only what this bmcweb instance, and
its aggregated BMCs expose.

Tested: Redfish service validator passes. Need A/B checking to verify
the file is byte for byte the same.
GET /redfish/v1/$metadata returns what looks like sane results, with a
correct content-type.
Unit tests require the use of TemporaryFileHandle, so that class is
moved into a more general folder, outside of test/http.

Change-Id: I326159099c6b6c4056023b2e173c5f074ed88ce1
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


# 720c9898 11-May-2024 Ed Tanous <ed@tanous.net>

Move existing schemas into folders

Reorganize the existing schemas into folders under redfish core.

The existing schema system has some problems:
1. It's hard to add new schemas
2. We have to rerun

Move existing schemas into folders

Reorganize the existing schemas into folders under redfish core.

The existing schema system has some problems:
1. It's hard to add new schemas
2. We have to rerun the script any time we want to change what schemas
we use.
3. Adding schemas optionally takes effort

In an effort to combat this, this patchset moves all the existing
schemas into folders that represent their namespace names

dmtf/csdl represents the CSDL that dmtf publishes
oem/openbmc represents the CSDL that OpenBMC publishes

In theory, this means that in the future we can relax OEM_SCHEMAS.md,
and allow folks to possibly implement their own schemas in a way that
doesn't have to effect all other systems.

This also has the advantage of not requiring changes to
update_schemas.py when we want to add, remove, or modify what version of
a schema we use. "current" schemas are just symlinks, so they can be
updated using git, and not necessarily have merge conflicts with one
another.

Tested: Redfish service validator passes.

Change-Id: I6d4a130bba4cb874ef00a06ed579cc67f53dc7ae
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


# 3e737424 17-Apr-2024 Myung Bae <myungbae@us.ibm.com>

Initialize schemas array with explicit size

Currently `update_schemas.py` generates a schema list definition like

redfish-core/include/schemas.hpp:
```
constexpr std::array schemas {
"A

Initialize schemas array with explicit size

Currently `update_schemas.py` generates a schema list definition like

redfish-core/include/schemas.hpp:
```
constexpr std::array schemas {
"AccountService",
"ActionInfo",
...
"OpenBMCAccountService",
};
```

However, if the number of schemas is more than the clang's default
max size, CI may fail.
The default is `-fbracket-depth=256`.

```
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/functional:65:
[1m/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/array:288:52: [0m [0;1;31mfatal error:
instantiating fold expression with 276 arguments exceeded expression nesting limit of 256
288 | -> array<enable_if_t<(is_same_v<_Tp, _Up> && ...), _Tp>, [0m
| [0;1;32m ~~~~~~~~~~~~~~~~~~~~~~~~^~~~
[0m [1m../redfish-core/include/schemas.hpp:17:26: [0m [0;1;30mnote:
while substituting deduced template arguments into function template '<deduction guide for array>' [with _Tp =
const char *, _Up = <const char *, const char *, const char *, const char *, const char *,
...
const char *>] [0m
17 | constexpr std::array schemas { [0m
| [0;1;32m ^
[0m1 error generated.

```

To avoid the failure, we can set the size explicitly like
```
constexpr std::array<std::string_view,277> schemas {
"AccountService",
...
```

Tested:
1) Remove `include_list` so that all possible schemas are to be used
2) Run with the fixed `scripts/update_schemas.py`
3) Compiles successfully

Change-Id: Ib68db9fd3be1b6dbe0c4b5cc0e9a4324966d759e
Signed-off-by: Myung Bae <myungbae@us.ibm.com>

show more ...


# 1c79f93e 26-Feb-2024 Patrick Williams <patrick@stwcx.xyz>

redfish-schema: add Protocol

The Drive schema indirectly references Protocol, but it is missing
from the schema list. Modify `update_schemas.py` to include it and
run, checking in the results.

Sig

redfish-schema: add Protocol

The Drive schema indirectly references Protocol, but it is missing
from the schema list. Modify `update_schemas.py` to include it and
run, checking in the results.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ic3adad00924d450d3b7062c94ec04fc26e4cc9b9

show more ...


# 2ae81db9 31-Jan-2024 Gunnar Mills <gmills@us.ibm.com>

Bump Redfish schemas to 2023.3

Redfish released 2023.3 1/25/2024.
https://www.dmtf.org/content/redfish-release-20233-now-available

It is several new schemas and added properties to a pile of schema

Bump Redfish schemas to 2023.3

Redfish released 2023.3 1/25/2024.
https://www.dmtf.org/content/redfish-release-20233-now-available

It is several new schemas and added properties to a pile of schemas.
One use case is: ComputerSystem v1.22.0
Added EfficiencyFavorPower and EfficiencyFavorPerformance to PowerMode
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/69122

This is a one line change to scripts/update_schemas.py and then ran the
script.

Tested: See the new schema versions (e.g. System 1.22.0).
No new Validator errors on p10bmc.

Change-Id: I5c10d78e891da71fd14187f63aa6ac682cf15598
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# e9cc1bc9 21-Sep-2023 Ed Tanous <edtanous@google.com>

Update schemas to 2023.2

To quote from The Redfish release [1]

2022.3 Redfish Schema Bundle – This .zip file contains the current
versions of all Redfish schemas. The bundle includes 40 schema upda

Update schemas to 2023.2

To quote from The Redfish release [1]

2022.3 Redfish Schema Bundle – This .zip file contains the current
versions of all Redfish schemas. The bundle includes 40 schema updates
and developer resources.
Added Compute Express Link (CXL) support (NEW)
Extensions to Fabric, PCIeDevice, Processor, Memory, ComputerSystem,
and Chassis schemas Defined by DMTF alliance partner Compute Express
Link (CXL) Consortium
Extensions to Fabric, PCIeDevice, Processor, Memory, ComputerSystem,
and Chassis schemas New CXLLogicalDevice schema
Added MultiFactorAuth to AccountService to configure a service for
multi-factor authentication
HTTP Basic authentication is not available for accounts configured
for multi-factor authentication
For client certificate authentication, the client provides their
identity certificate during TLS handshaking
For RSA SecurID, Google Authenticator, and Microsoft Authenticator,
clients provide a new Token property in the session creation request
Added Heater and HeaterMetrics resources

[1] https://www.dmtf.org/content/redfish-release-20223-now-available

Change-Id: Iefe80866bfb83e65ab98b2cf4ee2eacce5238c5b
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


# 480662d4 04-Oct-2023 Myung Bae <myungbae@us.ibm.com>

Fix update_schemas.py to add Oem JsonSchemas

GET on redfish/v1/JsonSchema does not show OEM schemas but shows only
DMTF redfish schemas.

It is because Oem schemas are not included into `schemas.hpp

Fix update_schemas.py to add Oem JsonSchemas

GET on redfish/v1/JsonSchema does not show OEM schemas but shows only
DMTF redfish schemas.

It is because Oem schemas are not included into `schemas.hpp`.

In addition, the explicit OEM JsonSchema gives the content of the file
rather than the valid Json output.

Tested:

- Query JsonSchemas

```
curl -k -H "X-Auth-Token: $token" -X GET "https://$bmc/redfish/v1/JsonSchemas"

curl -k -H "X-Auth-Token: $token" -X GET "https://$bmc/redfish/v1/JsonSchemas/<OemSchema>"
e.g.
curl -k -H "X-Auth-Token: $token" -X GET "https://$bmc/redfish/v1/JsonSchemas/OemManager"
```

- Redfish Service Validator passed

Change-Id: I0fc9c3d4a48fb9c6ddec9591af12fd2c849331e3
Signed-off-by: Myung Bae <myungbae@us.ibm.com>

show more ...


# 9cfcad2d 22-Feb-2023 Jiaqing Zhao <jiaqing.zhao@intel.com>

Remove usage of deprecated VLanNetworkInterface

In Redfish Schema (DSP2046) 2022.3 introduces EthernetInterface 1.9.0
that allows creating VLAN interface by POST EthernetInterface [1]
instead of usi

Remove usage of deprecated VLanNetworkInterface

In Redfish Schema (DSP2046) 2022.3 introduces EthernetInterface 1.9.0
that allows creating VLAN interface by POST EthernetInterface [1]
instead of using the deprecated VLanNetworkInterface. This patch
removes all current usage of VLanNetworkInterface.

This patchest (topic:redfish-ethernet-1.9) introduces breaking API
changes to current VLAN management features. All deprecated VLAN APIs
are removed, VLAN interfaces will be managed in the same way as the
EthernetInterface Resource, except they can be created or deleted.
Since webui-vue has not implemented anything related to VLAN yet, it
is not impacted.

Solves the issue mentioned in 188cb6294105 ("ethernet: Bump
EthernetInterface schema 1.4.1 -> 1.6.0")

[1] https://redfishforum.com/thread/619

Tested:
Redfish validator passed on a board with VLAN interface. No VLAN
interface is exposed in Redfish.

Change-Id: I9b243a5bb0f07642aa60bc13a622e862f62ee871
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>

show more ...


# f263e09c 22-May-2023 Ed Tanous <edtanous@google.com>

Update schema packs to 2023.1

Redfish just released 2023.1, pull it in and update the packs.

This commit was generated automatically using update_schemas.py

Signed-off-by: Ed Tanous <edtanous@goog

Update schema packs to 2023.1

Redfish just released 2023.1, pull it in and update the packs.

This commit was generated automatically using update_schemas.py

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I8faad8392af88aa7fc3a4fd73c8e0ec3bede56e5

show more ...


# 23203b4b 16-Mar-2023 Ed Tanous <edtanous@google.com>

Add component integrity schemas

Update the schema pack to include ComponentIntegrity resources.
ComponentIntegrity is used for representing roots of trust, and
conveying attestation parameters forwa

Add component integrity schemas

Update the schema pack to include ComponentIntegrity resources.
ComponentIntegrity is used for representing roots of trust, and
conveying attestation parameters forward.

Tested: Automated change

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I1c62ddeeb9151bfe2852199a9ebb12a6636e6262

show more ...


# 8b2521a5 17-Feb-2023 Carson Labrado <clabrado@google.com>

Implement AggregationSource

Adds an AggregationSource resource for each satellite config present on
dbus.

Adds the AggregationSource schema which we had previously ignored.

Tested:
Querying an Agg

Implement AggregationSource

Adds an AggregationSource resource for each satellite config present on
dbus.

Adds the AggregationSource schema which we had previously ignored.

Tested:
Querying an AggregationSource returned the expected information.

curl localhost/redfish/v1/AggregationService/AggregationSources/5B247A
{
"@odata.id": "/redfish/v1/AggregationService/AggregationSources/5B247A",
"@odata.type": "#AggregationSource.v1_3_1.AggregationSource",
"HostName": "http://122.111.11.1:80",
"Id": "5B247A",
"Name": "Aggregation source",
"Password": null,
}

Service Validator passed. The Service Validator also passed after
removing the satellite config from the system such that
/redfish/v1/AggregationService/AggregationSources returns an empty
Members array.

Signed-off-by: Carson Labrado <clabrado@google.com>
Change-Id: I88b5fbc15f27cddd330ec22a25427fd8b18cf766

show more ...


# 5315c1b1 17-Feb-2023 Carson Labrado <clabrado@google.com>

Implement AggregationSourceCollection

This is an intermediate step in setting up aggregation sources. A
future patch will add aggregation sources based on the existence of
satellite configs. For no

Implement AggregationSourceCollection

This is an intermediate step in setting up aggregation sources. A
future patch will add aggregation sources based on the existence of
satellite configs. For now the collection will always return as 0
members.

Adds the AggregationSourceCollection schema which we previously
ignored.

Tested:
Service Validator passes

Signed-off-by: Carson Labrado <clabrado@google.com>
Change-Id: I65c9231289bf0a9b6392696d55bc3feb0023c694

show more ...


# 6c068982 07-Feb-2023 Ed Tanous <edtanous@google.com>

Implement AggregationService

AggregationService is used to inform a client that some of the results
might be aggregated, and to allow setting up aggregation sources.
Today, this resource only contai

Implement AggregationService

AggregationService is used to inform a client that some of the results
might be aggregated, and to allow setting up aggregation sources.
Today, this resource only contains the basic fields, as well as
"Enabled", which informs the client of the fact that the service is
aggregation enabled.

AggregationService was one of the schemas we ignored, so this adds it to
the supported list.

Tested: Redfish service validator passes.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ifb16a86ff81e387f01016a83f9e69240c8928614

show more ...


# 7da1c588 21-Feb-2023 George Liu <liuxiwei@inspur.com>

Add Ports schema

Based on DSP8010_2022.3 and adds the Ports schema.
The port is a child of the FabricAdapters schema, and the
PortCollection schema will collect all Ports information, each Port
cont

Add Ports schema

Based on DSP8010_2022.3 and adds the Ports schema.
The port is a child of the FabricAdapters schema, and the
PortCollection schema will collect all Ports information, each Port
contains Location, LocationIndicatorActive, etc., and these functions
will be implemented in the next patch.

Tested: built bmcweb successfully and validator passes.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I9adfa852c3b9c5deaace0c958e477a67d49f4939

show more ...


# 5c5804dd 13-Feb-2023 Ed Tanous <edtanous@google.com>

Fix bad namespaces

This was missed by me; At the same time as we were resolving the
redfish-service-validator failure[1], I was trying to fix this. So in
the result I saw:

ERROR - Validation has

Fix bad namespaces

This was missed by me; At the same time as we were resolving the
redfish-service-validator failure[1], I was trying to fix this. So in
the result I saw:

ERROR - Validation has failed: 2 problems found

Which I thought was the existing false-positive, but turns out was
hiding the namespace issue.

Mea Culpa.

[1]: https://github.com/DMTF/Redfish-Service-Validator/issues/533

Tested: Redfish service validator actually passes.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I51de9d508539756394ead1bca437ca37b61f5e40

show more ...


# 5d3a59d3 13-Feb-2023 Ed Tanous <edtanous@google.com>

Fix casing on OpenBMC

f041387d5912db27e0317805e5c341c9c472887a didn't quite fix the issue due
to testing problems, which luckily CI caught. This actually fixes it.

Tested: redfish service validato

Fix casing on OpenBMC

f041387d5912db27e0317805e5c341c9c472887a didn't quite fix the issue due
to testing problems, which luckily CI caught. This actually fixes it.

Tested: redfish service validator passes.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ieac721477b3e78165559f857c0683d0520b7fcc2

show more ...


# f041387d 13-Feb-2023 Ed Tanous <edtanous@google.com>

Fix schema validator failure regression

Fixes regression introduced at 5b5574ace856c7f787528ab8f5e5352a90f2a6cb

Because of the order in which a few patches were merged, the static
$metadata file ne

Fix schema validator failure regression

Fixes regression introduced at 5b5574ace856c7f787528ab8f5e5352a90f2a6cb

Because of the order in which a few patches were merged, the static
$metadata file never got updated. There are other patchsets still in
review to completely remove the file, which is why the validator passed
on previous commits.

Tested: Metadata now resolves

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I402eb0bb83220f13293e9e7c86f34a257c2f981e

show more ...


# 5b5574ac 26-Sep-2022 Ed Tanous <edtanous@google.com>

Fix OemAccountService schema

This schema as-written broke a bunch of Redfish specification rules for
schemas, naming and other things. This commit starts to fix them.

It can be used as a starting

Fix OemAccountService schema

This schema as-written broke a bunch of Redfish specification rules for
schemas, naming and other things. This commit starts to fix them.

It can be used as a starting point for fixing the existing schemas.
This working through testing.

Tested: OpenBMCAccountService_v1.xml now passes the redfish odata schema
validator.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Id991794344b8b7d36af3c44bba7214bf025deec8

show more ...


# a8d8f9d8 26-Jan-2023 Ed Tanous <edtanous@google.com>

Update schema pack to 2022.3

Update scripts/update_schemas.py to point at 2022.3 and run.

Schema pack 2022.3 is the latest Redfish release, released 01/23/2023.
It contains several new schemas and

Update schema pack to 2022.3

Update scripts/update_schemas.py to point at 2022.3 and run.

Schema pack 2022.3 is the latest Redfish release, released 01/23/2023.
It contains several new schemas and support for Multi-factor
Authentication and CXL support along other things.

Update done by automation.

Tested: Redfish service validator passes.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I55a64d7cda26572e7b75135acc324cb44d316fe6

show more ...


# 7b395d7c 19-Jan-2023 Ed Tanous <edtanous@google.com>

Remove OemSession from metadata

In d678d4fc59f131cf9820c1783f86a4a6ede32995 I forgot to remove
OemSession from the metadata, and it now returns invalid. This was
missed in testsing, because this wa

Remove OemSession from metadata

In d678d4fc59f131cf9820c1783f86a4a6ede32995 I forgot to remove
OemSession from the metadata, and it now returns invalid. This was
missed in testsing, because this was originally stacked with patches
that remove the $metadata hardcoding entirely, so with that patch, this
error wasn't present.

Tested: CI can catch this just fine. Regression fix.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I56ad68846174d42004565dd3bc75f3008720d58a

show more ...


1234