#
8338891a
|
| 29-Jun-2021 |
John Edward Broadbent <jebr@google.com> |
Refactor callback to free function: Service root
This change will allow for unit testing of the free function. There are no changes to logic in the service root response. This is a demo change, if i
Refactor callback to free function: Service root
This change will allow for unit testing of the free function. There are no changes to logic in the service root response. This is a demo change, if it looks good similar changes can be made to all the redfish responses.
Also adds missing include (persistent_data.hpp).
Tested: ran curl against qemu machine, looked good. $ curl -vvvv --insecure "https://192.168.7.2:18080/redfish/v1"
Signed-off-by: John Edward Broadbent <jebr@google.com> Change-Id: Ie056c64e841a2708d3189a55036385b8c905a7f4
show more ...
|
#
ed398213
|
| 09-Jun-2021 |
Ed Tanous <edtanous@google.com> |
Automate PrivilegeRegistry to code
This commit attempts to automate the creation of our privileges structures from the redfish privilege registry. It accomplishes this by updating parse_registries.
Automate PrivilegeRegistry to code
This commit attempts to automate the creation of our privileges structures from the redfish privilege registry. It accomplishes this by updating parse_registries.py to also pull down the privilege registry from DMTF. The script then generates privilege_registry.hpp, which include const defines for all the privilege registry entries in the same format that the Privileges struct accepts. This allows new clients to simply reference the variable to these privilege structures, instead of having to manually (ie error pronely) put the privileges in themselves.
This commit updates all the routes.
For the moment, override and OEM schemas are not considered. Today we don't have any OEM-specific Redfish routes, so the existing ones inherit their parents schema. Overrides have other issues, and are already incorrect as Redfish defines them.
Binary size remains unchanged after this patchset.
Tested: Ran redfish service validator
Ran test case from f9a6708c4c6490257e2eb6a8c04458f500902476 to ensure that the new privileges constructor didn't cause us to regress the brace construction initializer.
Checked binary size with: gzip -c $BBPATH/tmp/work/s7106-openbmc-linux-gnueabi/obmc-phosphor-image/1.0-r0/rootfs/usr/bin/bmcweb | wc -c 1244048
(tested on previous patchset)
Signed-off-by: Ed Tanous <edtanous@google.com> Change-Id: Ideede3d5b39d50bffe7fe78a0848bdbc22ac387f
show more ...
|
#
83f01297
|
| 10-Jun-2021 |
John Edward Broadbent <jebr@google.com> |
Remove duplicate Managers field
It appears that the managers field was duplicated in the service root response.
Tested: There was no change in the follow curl request curl -c cjar -b cjar -k -H "Co
Remove duplicate Managers field
It appears that the managers field was duplicated in the service root response.
Tested: There was no change in the follow curl request curl -c cjar -b cjar -k -H "Content-Type: application/json" -X GET https://192.168.7.2:443/redfish/v1/ { "@odata.id": "/redfish/v1", "@odata.type": "#ServiceRoot.v1_5_0.ServiceRoot", "AccountService": { "@odata.id": "/redfish/v1/AccountService" }, "CertificateService": { "@odata.id": "/redfish/v1/CertificateService" }, "Chassis": { "@odata.id": "/redfish/v1/Chassis" }, "EventService": { "@odata.id": "/redfish/v1/EventService" }, "Id": "RootService", "JsonSchemas": { "@odata.id": "/redfish/v1/JsonSchemas" }, "Links": { "Sessions": { "@odata.id": "/redfish/v1/SessionService/Sessions" } }, "Managers": { "@odata.id": "/redfish/v1/Managers" }, "Name": "Root Service", "RedfishVersion": "1.9.0", "Registries": { "@odata.id": "/redfish/v1/Registries" }, "SessionService": { "@odata.id": "/redfish/v1/SessionService" }, "Systems": { "@odata.id": "/redfish/v1/Systems" }, "Tasks": { "@odata.id": "/redfish/v1/TaskService" }, "TelemetryService": { "@odata.id": "/redfish/v1/TelemetryService" }, "UUID": "0d1ead49-71e5-47e2-943d-165635d7cf60", "UpdateService": { "@odata.id": "/redfish/v1/UpdateService" } }
Signed-off-by: John Edward Broadbent <jebr@google.com> Change-Id: Icc06d74fccf9efff6d36ef36559064dbab530ae6
show more ...
|
#
7e860f15
|
| 08-Apr-2021 |
John Edward Broadbent <jebr@google.com> |
Remove Redfish Node class
Reduces the total number of lines and will allow for easier testing of the redfish responses.
A main purpose of the node class was to set app.routeDynamic(). However now a
Remove Redfish Node class
Reduces the total number of lines and will allow for easier testing of the redfish responses.
A main purpose of the node class was to set app.routeDynamic(). However now app.routeDynamic can handle the complexity that was once in critical to node. The macro app.routeDynamic() provides a shorter cleaner interface to the unerlying app.routeDyanic call. The old pattern set permissions for 6 interfaces (get, head, patch, put, delete_, and post) even if only one interface is created. That pattern creates unneeded code that can be safely removed with no effect. Unit test for the responses would have to mock the node the class in order to fully test responses.
see https://github.com/openbmc/bmcweb/issues/181
The following files still need node to be extracted.
virtual_media.hpp account_service.hpp redfish_sessions.hpp ethernet.hpp
The files above use a pattern that is not trivial to address. Often their responses call an async lambda capturing the inherited class. ie (https://github.com/openbmc/bmcweb/blob/ffed87b5ad1797ca966d030e7f979770 28d258fa/redfish-core/lib/account_service.hpp#L1393) At a later point I plan to remove node from the files above.
Tested: I ran the docker unit test with the following command. WORKSPACE=$(pwd) UNIT_TEST_PKG=bmcweb ./openbmc-build-scripts/run-unit-test-docker.sh
I ran the validator and this change did not create any issues. python3 RedfishServiceValidator.py -c config.ini
Signed-off-by: John Edward Broadbent <jebr@google.com> Signed-off-by: Ed Tanous <edtanous@google.com> Change-Id: I147a0289c52cb4198345b1ad9bfe6fdddf57f3df
show more ...
|
#
8d1b46d7
|
| 31-Mar-2021 |
zhanghch05 <zhanghch05@inspur.com> |
Using AsyncResp everywhere
Get the core using AsyncResp everywhere, and not have each individual handler creating its own object.We can call app.handle() without fear of the response getting ended a
Using AsyncResp everywhere
Get the core using AsyncResp everywhere, and not have each individual handler creating its own object.We can call app.handle() without fear of the response getting ended after the first tree is done populating. Don't use res.end() anymore.
Tested: 1. Validator passed.
Signed-off-by: zhanghaicheng <zhanghch05@inspur.com> Change-Id: I867367ce4a0caf8c4b3f4e07e06c11feed0782e8
show more ...
|
#
081ebf06
|
| 27-Apr-2020 |
Wludzik, Jozef <jozef.wludzik@intel.com> |
Redfish TelemetryService schema implementation
Now user is able to communicate with Telemetry service using Redfish. Added TelemetryService, MetricReports, MetricReportCollection, MetricReportDefini
Redfish TelemetryService schema implementation
Now user is able to communicate with Telemetry service using Redfish. Added TelemetryService, MetricReports, MetricReportCollection, MetricReportDefinition and MetricReportDefinitionCollection nodes with GET method support. Added TelemetryService URI to root service. Implemented communication with backend - Telemetry: https://github.com/openbmc/telemetry
Added schemes attributes that are supported by Telemetry service design, ref.: https://github.com/openbmc/docs/blob/master/designs/telemetry.md
Change introduces function that converts decimal value into duration format that is described by ISO 8601 and Redfish specification.
Tested: - Tested using romulus and s2600wf images on QEMU - Verified DBus method calls to Telemetry service from bmcweb - Verified bmcweb responses from new nodes in different cases: - Report collection is empty - Report collection is filled with artificial data - Telemetry service is disabled - Verified time_utils::toDurationString() output - Passed RedfishServiceValidator.py
Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com> Signed-off-by: Adrian Ambrożewicz <adrian.ambrozewicz@linux.intel.com> Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com> Change-Id: Ie6b0b49f4ef5eeaef07d1209b6c349270c04d570
show more ...
|
#
cb13a392
|
| 25-Jul-2020 |
Ed Tanous <ed@tanous.net> |
Enable unused variable warnings and resolve
This commit enables the "unused variables" warning in clang. Throughout this, it did point out several issues that would've been functional bugs, so I th
Enable unused variable warnings and resolve
This commit enables the "unused variables" warning in clang. Throughout this, it did point out several issues that would've been functional bugs, so I think it was worthwhile. It also cleaned up several unused variable from old constructs that no longer exist.
Tested: Built with clang. Code no longer emits warnings.
Downloaded bmcweb to system and pulled up the webui, observed webui loads and logs in properly.
Change-Id: I51505f4222cc147d6f2b87b14d7e2ac4a74cafa8 Signed-off-by: Ed Tanous <ed@tanous.net>
show more ...
|
#
52cc112d
|
| 18-Jul-2020 |
Ed Tanous <ed@tanous.net> |
Remove middlewares
Middlewares, while kinda cool from an academic standpoint, make our build times even worse than they already are. Given that we only really use 1 real middleware today (token aut
Remove middlewares
Middlewares, while kinda cool from an academic standpoint, make our build times even worse than they already are. Given that we only really use 1 real middleware today (token auth) and it needs to move into the parser mode anyway (for security limiting buffer sizes), we might as well use this as an opportunity to delete some code.
Some other things that happen: 1. Persistent data now moves out of the crow namespace 2. App is no longer a template 3. All request_routes implementations no longer become templates. This should be a decent (unmeasured) win on compile times.
This commit was part of a commit previously called "various cleanups". This separates ONLY the middleware deletion part of that.
Note, this also deletes about 400 lines of hard to understand code.
Change-Id: I4c19e25491a153a2aa2e4ef46fc797bcb5b3581a Signed-off-by: Ed Tanous <ed@tanous.net>
show more ...
|
#
e5aaf047
|
| 19-Mar-2020 |
AppaRao Puli <apparao.puli@linux.intel.com> |
Redfish EventService schema implementation
Add Redfish EventService schema support for EventService - GET and PATCH methods. EventDestinationCollections - GET and POST methods. EventDestination - GE
Redfish EventService schema implementation
Add Redfish EventService schema support for EventService - GET and PATCH methods. EventDestinationCollections - GET and POST methods. EventDestination - GET, PATCH and DELETE methods.
URI's: /redfish/v1/EventService /redfish/v1/EventService/Subscriptions /redfish/v1/EventService/Subscriptions/<id>
Tested: - Validated all default event config data using GET. - Validated supported/unsupported properties change. - Validated range parameters for retry and timeout. - Added new subscription using POST and validated using GET. - Modified subscription using PATCH and validated. - Validated delete subscription. - Validated negative case for eventTypes, RegistryPrefixes, mandate properties for POST etc. - Successfully ran the redfish validator tool. Counter({'metadataNamespaces': 1739, 'pass': 24, 'skipOptional': 23, 'passGet': 3, 'serviceNamespaces': 3}) Validation has succeeded.
Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com> Change-Id: I220de2cb85e73124753d95b7ee311f1c30e2cce4
show more ...
|
#
46229577
|
| 19-Feb-2020 |
James Feist <james.feist@linux.intel.com> |
Add TaskService
This adds tasks service to Redfish and creates an example for crashdump. The TaskData object creates tasks that can be updated based on d-bus matches. It also has a configurable time
Add TaskService
This adds tasks service to Redfish and creates an example for crashdump. The TaskData object creates tasks that can be updated based on d-bus matches. It also has a configurable timeout using timers. Task Monitor uses these task objects to reply with a 202 until the async task is done, then a 204 when it is either failed or completed.
Messages support will come in future commit.
Tested: Validator passed, wrote script to poll monitor, verified that got 202 with location header and retry-after set correctly, then 204, then 404.
Change-Id: I109e671baa1c1eeff1a11ae578e7361bf6ef9f14 Signed-off-by: James Feist <james.feist@linux.intel.com>
show more ...
|
#
d5db5e3c
|
| 19-Feb-2020 |
Gunnar Mills <gmills@us.ibm.com> |
Service root: Remove odata.context
Redfish made odata.context optional (1.6.0 of DSP0266, Sept 2018). Redfish has removed odata.context from example payloads in the specification (1.7.0 of DSP0266),
Service root: Remove odata.context
Redfish made odata.context optional (1.6.0 of DSP0266, Sept 2018). Redfish has removed odata.context from example payloads in the specification (1.7.0 of DSP0266), removed it from the mockups, and Redfish recommended not using.
The reason for making optional and removing from mockups/examples, "no one could figure out how to use it and it did not add value".
Don't see value in it for our implementation.
Change-Id: I94bac092a3abfec59721eed2c8f10371624dacb3 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
show more ...
|
#
5b816f23
|
| 14-Feb-2020 |
Gunnar Mills <gmills@us.ibm.com> |
Move to latest Redfish Service version
The latest version of the Redfish Service is 1.9.0. Nothing preventing us from moving to it. Find the Redfish Specification (DSP0266) here: https://www.dmtf.or
Move to latest Redfish Service version
The latest version of the Redfish Service is 1.9.0. Nothing preventing us from moving to it. Find the Redfish Specification (DSP0266) here: https://www.dmtf.org/dsp/DSP0266
Looks like code is already trying to use some of the 1.7.0 features: "Added "Password Management" clause to describe functional behavior for restricting access when an account requires a password change." Eventing mechanism and ApplyTime.
Will want to use features like: odata.context optional, query parameter clarification, and eventing clarification.
Tested: Redfish Validator. Not really a valid test though. Ran Redfish-Service-Conformance-Check, didn't see additional errors.
Note: bmcweb still has a lot of Conformance Checker errors, we are not in 100% complicance with Redfish specification.
Change-Id: I0acd28efa2aaa91149f53efddae530816fd41fff Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
show more ...
|
#
5968caee
|
| 21-Jan-2019 |
Marri Devender Rao <devenrao@in.ibm.com> |
Redfish: Add certificate service to manage HTTPS certificates
Implements CertificateService schema to list the actions available.
Implements CertificateLocations schema to list the certificates pre
Redfish: Add certificate service to manage HTTPS certificates
Implements CertificateService schema to list the actions available.
Implements CertificateLocations schema to list the certificates present in the system.
Implements CertificateCollection schema to upload/list existing HTTPS certificates
Implements Certificate schema to view existing HTTPS certificate
Cater for reloading the SSL context after a certificate is uploaded.
Fix Certificate signature validation failure
At present bmcweb uses the certificate from "/home/root/server.pem" the same is modified to "/etc/ssl/certs/https/server.pem" as phosphor-certificate-manager uses the specified path to install/replace certificates.
Bmcweb creates a self-signed certificate when certificate is not present. Catered for creating "/etc/ssl/certs/https/" direcotry structure so that self signed certificate is created in the path.
Implements ReplaceCertificate action of Certificate Service for replacing existing HTTPS certificates
Cleanup of older self-signed certificate at /home/root/server.pem
1. Tested schema with validator and no issues 2. Privilege map for certificate service is not yet pubished 2. GET on /redfish/v1/CertificateService/ "CertificateService": { "@odata.id": "/redfish/v1/CertificateService" },
3. GET on /redfish/v1/CertificateService/CertificateLocations/ "@odata.context": "/redfish/v1/$metadata#CertificateLocations.CertificateLocations", "@odata.id": "/redfish/v1/CertificateService/CertificateLocations", "@odata.type": "#CertificateLocations.v1_0_0.CertificateLocations", "Description": "Defines a resource that an administrator can use in order to locate all certificates installed on a given service", "Id": "CertificateLocations", "Name": "Certificate Locations"
4.POST on /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates { Returns contents of certificate "@odata.context": "/redfish/v1/$metadata#Certificate.Certificate", "@odata.id": "/redfish/v1/AccountService/LDAP/Certificates/1", "@odata.type": "#Certificate.v1A_0_0.Certificate", "Id": "1", "Issuer": { ... ... }
5.GET on /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/ { "@odata.context": "/redfish/v1/$metadata#CertificateCollection.CertificateCollection", "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates", "@odata.type": "#CertificateCollection.CertificatesCollection", "Description": "A Collection of HTTPS certificate instances", "Members": [ { "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/1" } ], "Members@odata.count": 1, "Name": "HTTPS Certificate Collection" }
6.GET on /redfish/v1/CertificateService/CertificateLocations/ { "@odata.context": "/redfish/v1/$metadata#CertificateLocations.CertificateLocations", "@odata.id": "/redfish/v1/CertificateService/CertificateLocations", "@odata.type": "#CertificateLocations.v1_0_0.CertificateLocations", "Description": "Defines a resource that an administrator can use in order to locate all certificates installed on a given service", "Id": "CertificateLocations", "Links": { "Certificates": [ { "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/1" } ], "Certificates@odata.count": 1 }, "Name": "Certificate Locations" }
7.GET on /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/1 { "@odata.context": "/redfish/v1/$metadata#Certificate.Certificate", "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/1", "@odata.type": "#Certificate.v1_0_0.Certificate", "CertificateString": "-----BEGINCERTIFICATE-----\n....\n-----ENDCERTIFICATE-----\n", "CertificateType": "PEM", "Description": "HTTPS Certificate", "Id": "1", "Issuer": { } 8. Verified SSL context is reloaded after a certificate is installed. 9.curl -c cjar -b cjar -k -H "X-Auth-Token: $bmc_token" -X POST https://${bmc}/redfish/v1/CertificateService/Actions/CertificateService.ReplaceCertificate/ -d @data_https.json { "@odata.context": "/redfish/v1/$metadata#Certificate.Certificate", "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/1", "@odata.type": "#Certificate.v1_0_0.Certificate", "CertificateString": "-----BEGIN CERTIFICATE----END CERTIFICATE-----\n", "Description": "HTTPS certificate", "Id": "1", "Issuer": { } 4. data_https.json file contents { "CertificateString": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDClW1COSab2O0W\nW0SgTzLxQ1Igl4EpbEmTK8CAQ+wI7loTDZ7sZwYdf6yc9TAs/yNKjlJljgedGszv\nbC7sPNpH4FA63kaM6TbBBKTRshwZ3myXiBOOkOBs6w6V7+c7uEPcMFge6/4W1VXD\nReMi016cnPWZsmQyGzpmPM49YNEDZBfdKZ/pLuCYc9L9t706U7FrUSGfM7swB+mC\n8NH9qMixMuWAV9SBvzUWI6p4OCmN8a/F+4lOdbPMVEUqQ0hCBCjGM4qmiy/5Ng6y\n6rKeJlUdmOSTk8ojrNGcOXKh0nRafNEQFkIuoPHt8k5B/Yw2CX6s2BoGwvF+hS03\n+z3qVSw3AgMBAAECggEBAKpe92kybRGr3/rhMrdCYRJJpZEP1nGUdN89QbGMxxAS\n0h84n9vRYNNXRKWxMNtVEWtoLdDpiNUP8Dv59yO1LFIen2DL2e3rDJv4Gu/YCS7F\nR0NuS+FaDIaRURYLFeV+MzyJv75jVvhbFlqByJxngcGS1KAcSApvOLTnrJSlPpy9\n8ec5gnDhdOUND9PaQt8xCqMs1RPpjqvrgRzMEodZoqT5v+b0K1GmsAdbSHNP2mLM\nrqtpFDefiM1YfsTHUtxQykxG2Ipd2jzJ0a8O0qmVqdXcP9J9aqLcmD/2/r96GEV6\n/5qvIBj3SRFobxCiCwfys2XOXfjz2J+BUZzGoZvKeRECgYEA518hT6mn46LhwrTI\nW+Qpi7iTJgOfeLC+Ng855VHVQFED1P3T2lfyfGDyqKI/wV1DJIJmO8iOXerSPnhi\nb7reQkyHj6ERUtuE+6BQ9oTw2QD3EEvzOK2PEH5UipbhVTDnC3fT62Vz2yb3tR8D\n2h0XVJkj/dng9p1Td5aDGMriRRMCgYEA10vTyYqBPjDIEYw/Sc9aQk2kT6x3hrRQ\ngR4xyuI31RTCRD/KpLh/7z4s11Wkr+F9CyASeLbqu6zymlLOlS5p7IUkJ/x2X027\nJWVY1SR+oF3iF3SHiP4XkOVvWOKwIVUhgTjK1+Di6i3AlwIeAOS7VCCP6W0gbnwJ\nyyAAHZ30NM0CgYAqTur4dj2NEqvVvtkkdIRkWEwQF3mByE//8qjTljM4n5fjysaC\nlrJwrAmzbHfcFAHDG1U2eWYPJnFrmvflFnauCPCBAyL308xtdtNXQNgJ1nNXN4wy\nQQp4KaGr9gseWOLm5fKKiPK2kFmbdSBvMgKiJZ6/PKg2cG5i39L5JaBaoQKBgApw\nqOJ7Du1fHDSNonwHzA6vCSq76Efl8olwV2XJNn/ks87vcPov4DRPxYjjpErLGm8x\nrPOhmxxitJj7Lv1Y9NX9VtWBjpPshwi3M2mSjXllVBNjGTdxat8h4RZkV7omEKvd\nfyicxSQp987a0W2lqdfYhGIDYrE43pi1AoxtHmx5AoGBAJSoRy62oZbW6vjfdkuf\nvVnjNfFZwuiPV/X2NT+BhNPe5ZKFtC6gGedHLaIBBD3ItRhGuHZxgWXccPjGHofi\n6DlPdp2NePJgDT2maSjGSiAcHxyXdmW+Ev27NblvAxktoTUcVqSENrKFb+Fh4FXN\nlXiJzOEwAXiP2ZFbMRyNF/MI\n-----END PRIVATE KEY-----\n-----BEGIN CERTIFICATE-----\nMIIDNzCCAh+gAwIBAgIJAI1Wr/fK5F0GMA0GCSqGSIb3DQEBCwUAMDIxHDAaBgNV\nBAoME29wZW5ibWMtcHJvamVjdC54eXoxEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0x\nOTAyMDExMzIyMDhaFw0yOTAxMjkxMzIyMDhaMDIxHDAaBgNVBAoME29wZW5ibWMt\ncHJvamVjdC54eXoxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEB\nBQADggEPADCCAQoCggEBAMKVbUI5JpvY7RZbRKBPMvFDUiCXgSlsSZMrwIBD7Aju\nWhMNnuxnBh1/rJz1MCz/I0qOUmWOB50azO9sLuw82kfgUDreRozpNsEEpNGyHBne\nbJeIE46Q4GzrDpXv5zu4Q9wwWB7r/hbVVcNF4yLTXpyc9ZmyZDIbOmY8zj1g0QNk\nF90pn+ku4Jhz0v23vTpTsWtRIZ8zuzAH6YLw0f2oyLEy5YBX1IG/NRYjqng4KY3x\nr8X7iU51s8xURSpDSEIEKMYziqaLL/k2DrLqsp4mVR2Y5JOTyiOs0Zw5cqHSdFp8\n0RAWQi6g8e3yTkH9jDYJfqzYGgbC8X6FLTf7PepVLDcCAwEAAaNQME4wHQYDVR0O\nBBYEFDDohRZ1+QlC3WdIkOAdBHXVyW/SMB8GA1UdIwQYMBaAFDDohRZ1+QlC3WdI\nkOAdBHXVyW/SMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFN0DWy6\nYPXHzidWMKKyQiJ5diqUv6LbujKOHUk+/LGSoCqcUp8NvmFDKWYP9MxjOAi9TVbs\nRGlIHBl38oSwKUayXBTY/vVeSLls90giUAOjswoRbBBQZvKyfEuFpc1zUsrhGLDC\n/6DuRt9l0DWcMcmP6Yh3jePIIwTr3bpxBGrwNLly8fPf16q4bWRIAcI3ZgLOhsrN\nLfD2kf56oYViM44d54Wa0qjuCfeTnJ46x/lo6w2kB9IzF7lwpipMU7+AG8ijDdaQ\nn8t0nADpv6tNNargLcOTTfJ0/P2PaKxwA1B88NhjlymBnNbz4epIn4T3KyysgS62\nzwqs66LPWoDerzc=\n-----END CERTIFICATE-----", "CertificateType": "PEM", "CertificateUri": { "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/1" } }
Change-Id: I2acbf8afa06bbf7d029d4971f7ab3b3988f5f060 Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com> Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
3602e232
|
| 13-May-2019 |
Ed Tanous <ed.tanous@intel.com> |
Redfish: Fix managers UUID mixup
In redfish, there are 3 UUIDs.
1. Service root. This is unique to Redfish, and not needed outside the service. It is generated on first startup, and persisted to
Redfish: Fix managers UUID mixup
In redfish, there are 3 UUIDs.
1. Service root. This is unique to Redfish, and not needed outside the service. It is generated on first startup, and persisted to nonvolatile in the bmcweb_persistent_data.json file. This is the one that is present in the ServiceRoot schema, as well as in the Systems schema under the ServiceEntryPointUUID. 2. Managers. This UUID needs to match the UUID avaialble in IPMI, using the Get Device GUID command. This is generated via the systemd sd_id128_get_machine_app_specific call, with a matching application ID in ipmi. 3. System. This UUID is generated from teh host system. In the case of Power, it comes from settingsd. In the case of x86, it comes from MDRv2.
This patchset corrects a few properties to pull from the correct place, after some regressions in the last few weeks that weren't caught right away.
Vernon has an oncoming patch to IPMI to correct the IPMI side of this.
Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I98f3a06ba552c84142aaa749cfd199541a0ae1fd
show more ...
|
#
7bffdb7e
|
| 20-Mar-2019 |
Bernard Wong <trials13@hotmail.com> |
Redfish: Supporting ServiceRootUUID field for /redfish/v1/Managers/{ManagerId}schema
- Created a common utiity file called, systemd_utils.hpp to hold the function getUuid.
- Added json field suppor
Redfish: Supporting ServiceRootUUID field for /redfish/v1/Managers/{ManagerId}schema
- Created a common utiity file called, systemd_utils.hpp to hold the function getUuid.
- Added json field support for ServiceEntryPointUUID field to retrieve it from system_utils.hpp.
- Amended the header file, service_root.hpp to get the uuid from the newly created system_utils.hpp file.
Changes tested with QEMU emulator and Witherspoon image => Passed
Redfish Validator => Passed
Change-Id: If7f2aba49942a0b315fb012da29af194ebd0ea6f Signed-off-by: Bernard Wong <trials13@hotmail.com>
show more ...
|
#
029573d4
|
| 01-Feb-2019 |
Ed Tanous <ed.tanous@intel.com> |
bmcweb: Implement single Redfish "system" endpoint
This commit changes the redfish behavior to move to a single, known name under the /redfish/v1/Systems/system path. This is advantageous for a lot
bmcweb: Implement single Redfish "system" endpoint
This commit changes the redfish behavior to move to a single, known name under the /redfish/v1/Systems/system path. This is advantageous for a lot of reasons. 1. Lots fewer dbus calls to determine the system name for every path. This could be optimized in other ways, like checking the system name on startup, but because redfish paths are not intended to be informative, this patchset takes the opinion that less code is better. 2. Lots of lowered complexity, given that each endpoint underneath /system doesn't need an individual "does this system exist, and is the name right" check. 3. This makes it possible to correctly implement the "Links" property in Chassis, which is required for the OCP base server profile
Tested By: Very minimal testing done, but it seems to pass the validator.
Change-Id: Iea3cb5081b92a3843b6877decd009936de00561c Signed-off-by: Ed Tanous <ed.tanous@intel.com> Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
show more ...
|
#
ceac6f75
|
| 02-Dec-2018 |
Ed Tanous <ed@tanous.net> |
Delete socket adapters
Boost beast, ASIO, and networking TS already have mechanisms for injecting unit tests, using template parameters. We already use this to some extent, although we pass through
Delete socket adapters
Boost beast, ASIO, and networking TS already have mechanisms for injecting unit tests, using template parameters. We already use this to some extent, although we pass through socket_adapters. Now that we have constexpr if, we have the ability to simplify this code quite a bit.
Tested by: Pulled down phosphor-webui, ran redfish service validator. Observed no errors.
Change-Id: Ib8734aeb4c9139b56705060f6196e8ae16458fe9 Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
8d3cae6b
|
| 13-Dec-2018 |
Gunnar Mills <gmills@us.ibm.com> |
Fix SessionService odata.id
SessionService had the wrong @odata.id. Redfish-Service-Validator found this.
Change-Id: Idf67b46b69b6ad770062ea3146996d100c424eea Signed-off-by: Gunnar Mills <gmills@us
Fix SessionService odata.id
SessionService had the wrong @odata.id. Redfish-Service-Validator found this.
Change-Id: Idf67b46b69b6ad770062ea3146996d100c424eea Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
show more ...
|
#
aa7cb211
|
| 29-Nov-2018 |
Ed Tanous <ed.tanous@intel.com> |
Fix missing Managers route on serviceRoot
Managers routing was missing on serviceroot. This resolves it.
Tested By: Pulled ServiceRoot, and observed endpoint exists
Change-Id: Id2ef8e0107512ee231
Fix missing Managers route on serviceRoot
Managers routing was missing on serviceroot. This resolves it.
Tested By: Pulled ServiceRoot, and observed endpoint exists
Change-Id: Id2ef8e0107512ee231ec0af9514f26526cb30c73 Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
0f74e643
|
| 12-Nov-2018 |
Ed Tanous <ed.tanous@intel.com> |
bmcweb: Redfish away from json cache
In the original incarnation of bmcweb, route registration was done automatically. This has proved to be a terrible idea, wraught with corner cases and issues.
bmcweb: Redfish away from json cache
In the original incarnation of bmcweb, route registration was done automatically. This has proved to be a terrible idea, wraught with corner cases and issues.
The route registration is currently the only user of the redfish::Node::json element. Unfortunately, as written, this structure consumes a lot of memory that's duplicated and not very useful. From a performance perspective, there is almost no difference between rebuilding the structure for each GET request, and having the "cache" that needs to be copied into the response and modified before it can be useful.
In the programming tradeoffs for bmc, lower memory usage is more important than latency, especially at these levels.
Change-Id: I785e8352123e5e886acf05cd59cb23648f93839d Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
24436516
|
| 14-Nov-2018 |
Ed Tanous <ed.tanous@intel.com> |
bmcweb: fix Redfish UUID
The UUID implementation had a number of issues that weren't fleshed out, as it was built before we had the appropriate systemd support.
This resolves it.
Tested By: Loadin
bmcweb: fix Redfish UUID
The UUID implementation had a number of issues that weren't fleshed out, as it was built before we had the appropriate systemd support.
This resolves it.
Tested By: Loading the redfish ServiceRoot endpoint, and verifying the UUID is not zeros.
Change-Id: I86aba678e3d492ad7d258807b0ed9e7d453667a2 Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
a32d8996
|
| 02-Nov-2018 |
Jason M. Bills <jason.m.bills@linux.intel.com> |
Add the Redfish message registries
This change adds the message registries used by bmcweb.
It includes the OEM OpenBMC.0.1.0 message registry and the DMTF Base.1.4.0 message registry for reference.
Add the Redfish message registries
This change adds the message registries used by bmcweb.
It includes the OEM OpenBMC.0.1.0 message registry and the DMTF Base.1.4.0 message registry for reference.
Tested: Ran the Redfish Service Validator and got passing results for the MessageRegistryCollection and the two MessageRegsitryFiles.
Change-Id: I3e5756103006f065530253b5dbc0d7720cf616b9 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
show more ...
|
#
683f7276
|
| 26-Jul-2018 |
Ed Tanous <ed.tanous@intel.com> |
Implement JsonSchema endpoint
This patchset implements JsonSchema support, and automates our update of the XML metadata, and Json schema files in the future by way of a python script.
Change-Id: Ie
Implement JsonSchema endpoint
This patchset implements JsonSchema support, and automates our update of the XML metadata, and Json schema files in the future by way of a python script.
Change-Id: Iec6f580d10736678149db18d87be2f140b535be9 Signed-off-by: Ed Tanous <ed.tanous@intel.com> Signed-off-by: James Feist <james.feist@linux.intel.com>
show more ...
|
#
1abe55ef
|
| 05-Sep-2018 |
Ed Tanous <ed.tanous@intel.com> |
Move to clang-format-6.0
This commit moves the codebase to the lastest clang-format file from upstream, as well as clang-format-6.0.
Change-Id: Ice8313468097c0c42317fbb9e10ddf036e8cff4c Signed-off-
Move to clang-format-6.0
This commit moves the codebase to the lastest clang-format file from upstream, as well as clang-format-6.0.
Change-Id: Ice8313468097c0c42317fbb9e10ddf036e8cff4c Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
55c7b7a2
|
| 22-May-2018 |
Ed Tanous <ed.tanous@intel.com> |
Move over to upstream c++ style
This patchset moves bmcweb over to the upstream style naming conventions for variables, classes, and functions, as well as imposes the latest clang-format file.
This
Move over to upstream c++ style
This patchset moves bmcweb over to the upstream style naming conventions for variables, classes, and functions, as well as imposes the latest clang-format file.
This changeset was mostly built automatically by the included .clang-tidy file, which has the ability to autoformat and auto rename variables. At some point in the future I would like to see this in greater use, but for now, we will impose it on bmcweb, and see how it goes.
Tested: Code still compiles, and appears to run, although other issues are possible and likely.
Change-Id: If422a2e36df924e897736b3feffa89f411d9dac1 Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|