summaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2024-12-10Make message registries use 2 digit versionsEd Tanous1-2/+7
Redfish specification, section 9.5.11.2 says: The MessageId property value shall be in the format: <MessageRegistryPrefix>.<MajorVersion>.<MinorVersion>.<MessageKey> bmcweb in certain places has incorrectly used the 3 digit version instead of the 2 digit version. This commit fixes that by modifying the parse_registries script to generate 3 separate struct entries to represent the registry version, and parse them where appropriate. MessageRegistryFileCollection uses the 3 digit version. No behavior changes. Message/event log entries use the 2 digit version. This will cause a MessageId change from: Base.1.19.0.InternalError to Base.1.19.InternalError This is a breaking change, so a new option to allow the old behavior is provided. Tested: Redfish Service validator passes. Heartbeat events on EventService show 2 digit versions. Change-Id: I4165e994f73e200f13bed8ea76cb58bee2b69faa Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-12-06Remove check_base_registryEd Tanous1-70/+0
We now generate our registries, this script is no longer useful. Change-Id: I8e0e18e5c9d2683738e67fb318d663ae960f808d Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-11-23Update base registry keys to 1.19Ed Tanous1-11/+15
This has been incorrect for a while now. Update the version string so it's generated automatically. Tested: Redfish service validator passes Redfish protocol validator passes Change-Id: I7abaf5c523c82a61331e5d696b498a35c2cf3788 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-11-23Make all ints size_tEd Tanous1-56/+42
We should be consistent when we declare index types. Nlohmann uses an underlying uint64_t as the integer type, so use that for all index types. Size_t is directly creatable from it in both 32 and 64 bit modes. Tested: On last patch in series. Change-Id: Id1da0e7be2e2046bdbd732247d208b6e9e8c008c Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-11-23Order by order in DMTF registryEd Tanous1-101/+2
The DMTF registry has a defined order. Previously these were randomly ordered dependent on the hash function used when they were generated years ago. Functionally the only change here is to parse_registries.py, to remove the sorting, then to regenerate the files. Tested: On last patch in series. Change-Id: I7432c26ec4a1b18acf63ece85500df370f4758d3 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-11-23Generate error messages sourceEd Tanous1-28/+354
This file has gotten desynced from the standard, and maintaining it is a pain. refactor the parse_registries.py script to generate this file and update all wrong instances to the correct types. To the extent possible, the generated code tries to be replaced with 1:1 identical structures to make review simpler. Tested: On last patch in series. Change-Id: Ic203a93fd26e0487475ce82c62beb6a22612368a Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-11-23Remove InvalidUpload response codeEd Tanous1-7/+1
Invalid response is something from the openbmc registry, so it's not a valid thing to return as a response code. For this patch, remove the generated error message, and replace the one place it's used with internalError. Tested: On last patch in series. Change-Id: I8215935f00923c72fd7763645c06d0b6af73c01d Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-11-23Generate error messages for RedfishEd Tanous1-1/+249
error_messages.hpp and error_messages.cpp were at one time generated. That script has been lost to the sands of time, and since then there's been lots of places where we've been inconsistent, or updated our base registry without updating the generated code. This causes wording, syntax, and other errors. This commit updates the script to simply generate this header with the intent of generating it from here on out and avoid issues. As written, goes to great lengths to generate exactly the same code, and make only changes to the doxygen comments, and add the missing types. This is done to allow for easy diffing that nothing important has changed. Testing on last patch in series. Change-Id: Ic1da1c02519098bdb53656d94a458b78c67d25bb Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-10-01Bump base registry to 1.19.0Jishnu CM1-1/+1
Adds GenerateSecretKeyRequired registry to the Base for MFA Change-Id: Ia690639b4bebbbd265b223bd626b0eb814103f99 Signed-off-by: Jishnu CM <jishnunambiarcm@duck.com>
2024-09-17Update to 2024.3Gunnar Mills1-1/+1
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>
2024-08-23Update to 2024.2Gunnar Mills1-8/+7
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>
2024-08-08scripts: csdl-to-json-converter: README.md: Fix MD034 warningsGeorge Liu1-2/+2
The following warnings are generated by using markdownlint analysis: ``` MD034/no-bare-urls Bare URL used [Context: "https://github.com/openbmc/doc...";] ``` Refer to markdown-lint [1] to fix MD034 [1]: https://github.com/updownpress/markdown-lint/blob/master/rules/034-no-bare-urls.md Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: I85dea378a1f08293b2ef071c949fd184dcc7c015
2024-08-06scripts: csdl-to-json-converter: README.md: Fix MD040 warningsGeorge Liu1-1/+1
The following warnings are generated by using markdownlint analysis: ``` MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] ``` Refer to markdown-lint [1] to fix MD040 [1]: https://github.com/updownpress/markdown-lint/blob/master/rules/040-fenced-code-language.md Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: I183c4e220b7fdcec9c235a04dcdd9b4f065863e8
2024-07-25Fix Task Monitor URIEd Tanous1-0/+6
Fixes #272 The TaskMonitor urls we create aren't correct per Redfish. Per DSP0266 section 12.2, our TaskMonitor URIs should take the form /redfish/v1/TaskService/TaskMonitors/<id> Note that even though this appears to be a collection, it is not, and does not "exist" in the Redfish schema, hence why it is called out explicitly. Tested: Started dump collection task with POST ``` /redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData ``` GET /redfish/v1/Tasks/0 Returned TaskMonitor = /redfish/v1/Tasks/TaskMonitors/0 GET /redfish/v1/Tasks/TaskMonitors/0 returned 200 Change-Id: I9fb1d62090f7787d7649c077b748b51ac3202f8a Signed-off-by: Ed Tanous <ed@tanous.net>
2024-07-24Document Json OEM schema creationEd Tanous2-0/+28
This commit documents how to create json schemas for OEM parameters. It adds a config file for running the Redfish-Tools Tested: Documentation only. Change-Id: I84493b58bf81320259f41856eb932d4b4e9e82f8 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-07-12Make schemas selectableEd Tanous2-84/+26
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>
2024-06-18Bump base registry to 1.18.1Gunnar Mills1-1/+1
72169 points out a mistake in 1.16 which is fixed in 1.18. Let's pull 1.18.1 in. 1.18.1 is the latest. Changed 1 line in parse_registries.py and reran it. Tested: None. In the past bumping these hasn't caused problems. Change-Id: I79b135b8366d9b423f789c34802b1c0366d4e8a5 Signed-off-by: Gunnar Mills <gmills@us.ibm.com> Signed-off-by: Ed Tanous <ed@tanous.net>
2024-06-18Pull in 2024.1 schemasGunnar Mills1-1/+1
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>
2024-05-31Add verificationEd Tanous1-1/+2
Static analysis flags that we're not checking certs here. Make it optional, and default to verification. Tested: No backend available. Commands parse on command line, and fail in redfish. Change-Id: I7558c55b5f1e1695844b986b5587561d1391f245 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-05-28Generate metadata at runtimeEd Tanous1-63/+0
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>
2024-05-28Move existing schemas into foldersEd Tanous3-193/+51
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>
2024-04-18Initialize schemas array with explicit sizeMyung Bae1-1/+5
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>
2024-04-16Update Privilege Registry from 1.3.0 to 1.5.0Gunnar Mills1-1/+1
Change 1 line in scripts/parse_registries.py and rerun the script. Long term OpenBMC/bmcweb need more direction here on the Privilege Registry, but for now continue with the current direction of using the Privilege Registry and taking it from the DMTF. There is new entries in 1.4/1.5 that are needed for future development. Tested: It builds. Change-Id: I4337dc44e794c58f00f7307ea0508b84f14e8c8f Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2024-04-11Pull in all registriesGunnar Mills1-22/+40
Before Redfish put all messages in Base, but as the Messages became more specific Redfish started creating new registries. Redfish might have went a little registry happy. HeartbeatEvent just has 1 message and all these new ones registries each just have a handful of messages. Add the remaining 15 registries: composition, environmental, ethernetfabric, fabric, heartbeat_event, job_event, license, logservice, networkdevice, platform, power, sensor_event, storage_device, telemetry, update. Some of these are wanted for both current development and future development but it is hard to decide which ones so just added them all. power, fabric, telemetry, update are all things we support today. Having a UpdateInProgress or UpdateSuccessful makes a lot of sense and this enables that. Put these alphabetically. Use a new for loop to do this. Make changes to scripts/parse_registries.py and run the tool. No difference in size. Before: 66928640 Apr 10 13:32 obmc-phosphor-image-p10bmc-20240410183051.ext4.mmc.tar After: 66928640 Apr 10 13:18 obmc-phosphor-image-p10bmc-20240410181439.ext4.mmc.tar Tested: bmcweb builds. "./scripts/parse_registries.py --registries license,update" works. Change-Id: I43b4d041531cf338e9e7e621714ca7d95f6b01a5 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2024-04-11Fix generate auth certsEd Tanous1-88/+196
bmcs might not have the correct time, so allow certificates for 100 years starting from epoch. As is, the script makes the certificate valid for now + 10 years. After changes make the script valid from epoch (1970) to 100 years later (2070). This makes the script run to completion against a qemu instance of the bmc. Additional changes include detecting if a CA key is already present, to not rewrite it. This allows installing a CA certificate on test machines once, and using it to authenticate forever. Additionally, add "alternative names" support, for pointing to a bmc at localhost, or on the default qemu port, which allows these things to work by default in those scenarios. Lastly, change the directory to use a path relative to the script path, instead of relative to current path when generating certificates. This ensures that certs are always generated in the same place, which helps when a CA is reused. Tested: Script runs to completion without errors. Change-Id: Ia5c31041dd5cb193b897bf1f7bae3cd9767656d0 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-05redfish-schema: add ProtocolPatrick Williams1-0/+1
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
2024-02-01Bump Redfish schemas to 2023.3Gunnar Mills1-1/+1
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>
2024-01-29Reformat scriptsEd Tanous1-3/+3
Change-Id: Ie8fb9f9733e75b887b14516cfa12f662aa5d3a82 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-01-09Fix spelling mistakesEd Tanous2-2/+2
These were found with: codespell -w $(git ls-files | grep "\.[hc]\(pp\)\?$") At some point in the future, we might want to get this enabled in CI. Change-Id: Iccb57b2adfd06a2e177e99db2923fe4e8e329118 Signed-off-by: Ed Tanous <ed@tanous.net>
2023-10-23Update schemas to 2023.2Ed Tanous1-1/+1
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>
2023-10-11Fix update_schemas.py to add Oem JsonSchemasMyung Bae1-80/+61
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>
2023-09-21Generate OpenBMC registryEd Tanous1-1/+22
We haven't been very good about maintaining this file, so lets generate it like we do everything else. This commit takes the existing, manually built openbmc_message_registry.hpp and copies the generated json from a working system, then hooks it into the parse_registries script to generate the hpp file. This results in a couple changes, and somewhat proves how bad our ability to manage this file manually is.. Tested: Looking for input on if this is the right direction. Change-Id: I5dc03021d194f0674e4a8f41421096b211462a0a Signed-off-by: Ed Tanous <edtanous@google.com>
2023-07-25scripts: Script to autogenerate TLS certsAlex Schendel1-0/+289
This script autogenerates: 1. Self-signed CA certificate/key pair 2. Server certificate/key pair 3. Client certificate/key pair 4. PKCS12 archive to store client certificate/key pair These files are all generated and then stored in a local ./certs directory. Following this, they are added to the BMC over Redfish. Then, the script attempts to use the client certificate/key pair to access a Redfish url with permissions while not providing username or password. If this succeeds, then it generates the PKCS12 archive file and directs the user to import it into a browser if they wish to test webui or would prefer to do any testing in browser rather than over curl or similar data tranfer tools for HTTP. Tested: Monitored output to ensure that each step succeeded and once the PKCS12 archive file was generated, imported it into a browser and accessed a redfish url with permissions while not being redirected to the login route. Change-Id: Ie8a393feb472281d1865e52bddbdb58edbf5b071 Signed-off-by: Alex Schendel <alex.schendel@intel.com>
2023-07-20Replace logging with std::formatEd Tanous1-0/+100
std::format is a much more modern logging solution, and gives us a lot more flexibility, and better compile times when doing logging. Unfortunately, given its level of compile time checks, it needs to be a method, instead of the stream style logging we had before. This requires a pretty substantial change. Fortunately, this change can be largely automated, via the script included in this commit under scripts/replace_logs.py. This is to aid people in moving their patchsets over to the new form in the short period where old patches will be based on the old logging. The intention is that this script eventually goes away. The old style logging (stream based) looked like. BMCWEB_LOG_DEBUG << "Foo " << foo; The new equivalent of the above would be: BMCWEB_LOG_DEBUG("Foo {}", foo); In the course of doing this, this also cleans up several ignored linter errors, including macro usage, and array to pointer deconstruction. Note, This patchset does remove the timestamp from the log message. In practice, this was duplicated between journald and bmcweb, and there's no need for both to exist. One design decision of note is the addition of logPtr. Because the compiler can't disambiguate between const char* and const MyThing*, it's necessary to add an explicit cast to void*. This is identical to how fmt handled it. Tested: compiled with logging meson_option enabled, and launched bmcweb Saw the usual logging, similar to what was present before: ``` [Error include/webassets.hpp:60] Unable to find or open /usr/share/www/ static file hosting disabled [Debug include/persistent_data.hpp:133] Restored Session Timeout: 1800 [Debug redfish-core/include/event_service_manager.hpp:671] Old eventService config not exist [Info src/webserver_main.cpp:59] Starting webserver on port 18080 [Error redfish-core/include/event_service_manager.hpp:1301] inotify_add_watch failed for redfish log file. [Info src/webserver_main.cpp:137] Start Hostname Monitor Service... ``` Signed-off-by: Ed Tanous <ed@tanous.net> Change-Id: I86a46aa2454be7fe80df608cb7e5573ca4029ec8
2023-06-08Remove usage of deprecated VLanNetworkInterfaceJiaqing Zhao1-2/+0
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>
2023-06-01Update base registriesEd Tanous1-2/+2
Update Base registry to 1.16.0, and Resource Event registry to 1.3.0 Patch was generated automatically. Tested: Code builds. Signed-off-by: Ed Tanous <edtanous@google.com> Change-Id: Ie9c15a657459cf7ec7fa5b4bf89460049fbce554
2023-05-22Update schema packs to 2023.1Ed Tanous1-1/+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
2023-03-21Add component integrity schemasEd Tanous1-0/+2
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
2023-03-18Implement AggregationSourceCarson Labrado1-0/+1
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
2023-03-14Implement AggregationSourceCollectionCarson Labrado1-0/+1
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
2023-02-28Implement AggregationServiceEd Tanous1-0/+1
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
2023-02-24Add Ports schemaGeorge Liu1-0/+2
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
2023-02-14Fix bad namespacesEd Tanous1-2/+2
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
2023-02-13Fix casing on OpenBMCEd Tanous1-1/+1
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
2023-02-13Fix schema validator failure regressionEd Tanous1-1/+1
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
2023-02-08Fix OemAccountService schemaEd Tanous1-4/+4
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
2023-02-06Fix CI; Run blackGunnar Mills1-4/+4
Seeing CI fails: ``` Running beautysh Running black reformatted scripts/websocket_test.py ``` ``` diff --git a/scripts/websocket_test.py b/scripts/websocket_test.py index 21c7f160..fce9cd7e 100755 --- a/scripts/websocket_test.py +++ b/scripts/websocket_test.py @@ -45,10 +45,10 @@ async def hello(): authbytes = "{}:{}".format(args.username, args.password).encode("ascii") auth = "Basic {}".format(base64.b64encode(authbytes).decode("ascii")) headers = {"Authorization": auth} - async with websockets.connect( - uri, ssl=ssl_context, extra_headers=headers - ) if args.ssl else websockets.connect( - uri, extra_headers=headers + async with ( + websockets.connect(uri, ssl=ssl_context, extra_headers=headers) + if args.ssl + else websockets.connect(uri, extra_headers=headers) ) as websocket: request = json.dumps( { Format: FAILED ``` Change-Id: I8020716f2f9b9f1745d817728d3fe1eccd0bf778 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2023-02-02Update schema pack to 2022.3Ed Tanous1-1/+1
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
2023-01-19Remove OemSession from metadataEd Tanous1-9/+0
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
2023-01-12Add FabricAdapter schemaLakshmi Yadlapati1-0/+2
Will be used in commit https://gerrit.openbmc.org/c/openbmc/bmcweb/+/41216 From the Redfish schema "A FabricAdapter represents the physical fabric adapter capable of connecting to an interconnect fabric. Examples include but are not limited to Ethernet, NVMe over Fabrics, Gen-Z, and SAS fabric adapters." Tested: built bmcweb successfully and validator passes Change-Id: I9f8fb3bfc5b68a86b078b1261445437bdd5c550a Signed-off-by: Lakshmi Yadlapati <lakshmiy@us.ibm.com>