History log of /openbmc/bmcweb/features/redfish/lib/service_root.hpp (Results 26 – 50 of 58)
Revision Date Author Comments
# 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 ...


123