#
cde19e5f
|
| 19-Feb-2019 |
Santosh Puranik <santosh.puranik@in.ibm.com> |
Fixes in System schema PATCH handling
-- Fixed typo: "IndicatorLed" ==> "IndicatorLED" -- Fixed readJson call which was taking in an empty std::string This caused PATCH to send back a warning if
Fixes in System schema PATCH handling
-- Fixed typo: "IndicatorLed" ==> "IndicatorLED" -- Fixed readJson call which was taking in an empty std::string This caused PATCH to send back a warning if Indicator LED was missing from the incoming JSON. -- Fixed a segfault due to accessing an invalid shared_ptr (The shared_ptr being accessed was previously moved to an async callback)
Tested: -- Limited testing done. I tried PATCH'ing the IndicatorLED property on QEMU. -- Made sure no segfault anymore.
Change-Id: If47dbacdeee791dd3cc2ac0e37c0b74bb3920df0 Signed-off-by: Santosh Puranik <santosh.puranik@in.ibm.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 ...
|
#
abf2add6
|
| 22-Jan-2019 |
Ed Tanous <ed.tanous@intel.com> |
bmcweb: move variant usage to std namespace
Change-Id: I9d7069668f91f2ac72d2f4a440f63e0e85dd5269 Signed-off-by: Ed Tanous <ed.tanous@intel.com>
|
#
94732661
|
| 08-Jan-2019 |
Andrew Geissler <geissonator@yahoo.com> |
Fix host state checking logic
Resolves openbmc/bmcweb#12
Testing: Verified this with system booted against redfish/v1/Systems/motherboard: "PowerState": "On", "Status": { "State": "Enabled"
Fix host state checking logic
Resolves openbmc/bmcweb#12
Testing: Verified this with system booted against redfish/v1/Systems/motherboard: "PowerState": "On", "Status": { "State": "Enabled" }, and this with system powered off: "PowerState": "Off", "Status": { "State": "Disabled" },
Change-Id: I0acbf0992d730e4a5189d9af962370277f59eaaa Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
show more ...
|
#
bb3d9946
|
| 22-Nov-2018 |
Rapkiewicz, Pawel <pawel.rapkiewicz@intel.com> |
bmcweb: Update schema versions to latest
Update Schema versions for: * ComputerSystem * Processor * Memory
Tests: * Service Validator did not have any regression
Change-Id: I3fb900b464013588ac0b08
bmcweb: Update schema versions to latest
Update Schema versions for: * ComputerSystem * Processor * Memory
Tests: * Service Validator did not have any regression
Change-Id: I3fb900b464013588ac0b08c0157404c8ababddb2 Signed-off-by: Rapkiewicz, Pawel <pawel.rapkiewicz@intel.com> Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
a24526dc
|
| 10-Dec-2018 |
Ed Tanous <ed.tanous@intel.com> |
bmcweb: Move boost::optional to std::optional
This change is largely a sed replace, and gets us closer to standards compliance.
Change-Id: Ie60437eff43de830ef19389344a55430dabd9d16 Signed-off-by: E
bmcweb: Move boost::optional to std::optional
This change is largely a sed replace, and gets us closer to standards compliance.
Change-Id: Ie60437eff43de830ef19389344a55430dabd9d16 Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
1b6b96c5
|
| 30-Nov-2018 |
Ed Tanous <ed.tanous@intel.com> |
Remove custom version of getPtr
Now that sdbusplus variant supports std::get_if, we can remove our custom, mapbox namespaced implementation that does the same thing.
Change-Id: I854c473003e28e41dd4
Remove custom version of getPtr
Now that sdbusplus variant supports std::get_if, we can remove our custom, mapbox namespaced implementation that does the same thing.
Change-Id: I854c473003e28e41dd45dba08ca683433f1c1774 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 ...
|
#
c4bf6374
|
| 05-Nov-2018 |
Jason M. Bills <jason.m.bills@linux.intel.com> |
Change the BMC LogService to only display from the message registry
This change renames the existing BMC LogService that displays all entries in the journal to a BMC Journal LogService.
The new sta
Change the BMC LogService to only display from the message registry
This change renames the existing BMC LogService that displays all entries in the journal to a BMC Journal LogService.
The new standard BMC LogService is modified to only display messages from the registry. The registry MessageId and MessageArgs must be included in the journal metadata as "REDFISH_MESSAGE_ID" and "REDFISH_MESSAGE_ARG_<x>" respectively, where <x> is the arg number from the registry.
Change-Id: I4556cbea5032ec639ad1fda084571144defe23dc Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
show more ...
|
#
a08b46cc
|
| 06-Nov-2018 |
Jason M. Bills <jason.m.bills@linux.intel.com> |
Simplify Redfish error message property interface
The error message code used a json_pointer object which must begin with a '/' character and had to be sent as an extra parameter. This change simpl
Simplify Redfish error message property interface
The error message code used a json_pointer object which must begin with a '/' character and had to be sent as an extra parameter. This change simplifies the interface by using a string so there doesn't have to be a '/'. This allowed the same property argument passed for the message to be used for the property field path.
Tested: Sent an error with a property and verified that it is correctly displayed.
Change-Id: I0571e2eee627cedf29d751588a4f1bceee66f084 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
show more ...
|
#
443c2934
|
| 22-Oct-2018 |
Rapkiewicz, Pawel <pawel.rapkiewicz@intel.com> |
Initial implementation of processors and memory schema
This is an initial implementations of GET methods for several schemas:
* ProcessorCollection * Processor * MemoryCollection * Memory
It fetch
Initial implementation of processors and memory schema
This is an initial implementations of GET methods for several schemas:
* ProcessorCollection * Processor * MemoryCollection * Memory
It fetches data from Smbios service.
Tested: * Compiance report * Manual walk through selected schemas.
Change-Id: I11e00d0982248f2307e24b9a246ac60672dda8a1 Signed-off-by: Rapkiewicz, Pawel <pawel.rapkiewicz@intel.com> Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
f12894f8
|
| 09-Oct-2018 |
Jason M. Bills <jason.m.bills@linux.intel.com> |
Improve the Redfish error reporting interface
Makes the Redfish error reporting interface automatically handle setting the http status and JSON content in the response object.
When using an AsyncRe
Improve the Redfish error reporting interface
Makes the Redfish error reporting interface automatically handle setting the http status and JSON content in the response object.
When using an AsyncResp object, this allows for simply calling the Redfish error and returning.
Change-Id: Icfdce2de763225f070e8dd61e591f296703f46bb Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
show more ...
|
#
9712f8ac
|
| 21-Sep-2018 |
Ed Tanous <ed.tanous@intel.com> |
Implement a new way of unpacking json to structs
The existing way of decoding json structures, while fast has some disadvantages. 1. it's very verbose to write. 2. It requires in depth knowlege of r
Implement a new way of unpacking json to structs
The existing way of decoding json structures, while fast has some disadvantages. 1. it's very verbose to write. 2. It requires in depth knowlege of redfish error messages to get correct. 3. It _can_ lead to undesired behavior, like half of a patch being applied, if only some of the values have bad types.
This commit implements a new interface for decoding redfish json named.... readJson. It is a templated function, that lets you decode json values based on type easily, while still handling all the correct error codes that were handled previously. Use is done similar to the example below:
std::string required; boost::optional<std::string> optional; if (!json_util::readJson(req, res, "OptionalParam", optional, "RequiredParam", required)) { return; }
if (optional){ // optional param was given, take action. }
As part of this patchset, the systems schema is moved to the new interface, which deletes some of the code involved and shows the improvement in clarity.
Change-Id: I041a97c84d294df8cd4de4c2702e5ee22c0bc120 Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
04a258f4
|
| 15-Oct-2018 |
Ed Tanous <ed.tanous@intel.com> |
Redfish- Clean up system schema implementation
Move the system schema awa from using single letter variable names.
Change-Id: I41f9c00f6a227a43126ad47f60e26950f0cf89ec Signed-off-by: Ed Tanous <ed.
Redfish- Clean up system schema implementation
Move the system schema awa from using single letter variable names.
Change-Id: I41f9c00f6a227a43126ad47f60e26950f0cf89ec Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
cc340dd9
|
| 29-Aug-2018 |
Ed Tanous <ed.tanous@intel.com> |
Implement Computer System reset action
This commit adds the ComputerSystem.Reset action to the redfish interface.
Tested by: Ran compliance tool, and it appeared to pass. Also ran POST on the inte
Implement Computer System reset action
This commit adds the ComputerSystem.Reset action to the redfish interface.
Tested by: Ran compliance tool, and it appeared to pass. Also ran POST on the interface, and observed the system reset.
Change-Id: Ie39bf9d1c78fe0688f4fee22b1ecf91268f2242c Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
6617338d
|
| 15-Aug-2018 |
Ed Tanous <ed.tanous@intel.com> |
Modernization of systems
This moves systems schemas over to modern useages: 1. Remove the use of wildcard lambda captures [&] 2. Correctly handle the case where we are given a PATCH with parameters
Modernization of systems
This moves systems schemas over to modern useages: 1. Remove the use of wildcard lambda captures [&] 2. Correctly handle the case where we are given a PATCH with parameters we don't support. 3. Move some functions that are no longer required, and are done more cleanly inside the specific handlers.
Change-Id: Iab4a360e6b675e4f792b49c8cb2df9a3e7f68cbb Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
6c34de48
|
| 29-Aug-2018 |
Ed Tanous <ed.tanous@intel.com> |
Remove the providers interface from systems
The providers class is entirely static, and has no real purpose at this point in time. This commit removes it so we don't copy the pattern in other place
Remove the providers interface from systems
The providers class is entirely static, and has no real purpose at this point in time. This commit removes it so we don't copy the pattern in other places.
Tested By: Ran a subset of gets and patches to the computer system schema, observed the same behavior.
Change-Id: Ia9e49aee6bd944aeadb2536de38a905b25047d9e Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
a0803efa
|
| 29-Aug-2018 |
Ed Tanous <ed.tanous@intel.com> |
Generalize the "Async Response" pattern
Lots of endpoints have been using the AsyncResp structure, and some, like the systems schemas, have created their own. This is the start of a series of patch
Generalize the "Async Response" pattern
Lots of endpoints have been using the AsyncResp structure, and some, like the systems schemas, have created their own. This is the start of a series of patches to move to a more condensed async response object.
Tested by: ran GET on systems schema and observed no change to behavior.
Change-Id: I4c9afc583be3f75371b31cc76dcc02590ce5e9a7
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 ...
|
#
d76323e5
|
| 07-Aug-2018 |
Ed Tanous <ed.tanous@intel.com> |
Last round of variable renames
A few patches were in flight when we did the great variable renaming. This catches all the patches that have been merged since
Change-Id: Ie9642a4812b2a679ffa01ce540f
Last round of variable renames
A few patches were in flight when we did the great variable renaming. This catches all the patches that have been merged since
Change-Id: Ie9642a4812b2a679ffa01ce540f5c4515a4c710b Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
8ceb2eca
|
| 13-Aug-2018 |
Ed Tanous <ed.tanous@intel.com> |
Clang-format cleanup
It looks like some of the code reviews in progress contain clang-format fixes as well.
This squashes all of the clang-format fixes into a single commit, that hopefully can go t
Clang-format cleanup
It looks like some of the code reviews in progress contain clang-format fixes as well.
This squashes all of the clang-format fixes into a single commit, that hopefully can go through the process a little faster, as it should only be whitespace changes.
In the past, clang-formatting the naughty strings file proved to return inconsistent results, and even formatted files would still be detected as unformatted. Aparently the solution was to run clang-format-5.0 approximately 20 times in a loop, until it decided on a code layout that it was ok with iteration to iteration.
This is a bit of a corner case, so I don't think we need to get CI running multiple runs in the future, and can just handle this on a case by case basis. I'd be surprised if anyone else had this issue.
Change-Id: I57e2a03676bce20dc376fd9cea724732b2dc7010 Signed-off-by: Ed Tanous <ed.tanous@intel.com>
show more ...
|
#
a434f2bd
|
| 27-Jul-2018 |
Ed Tanous <ed.tanous@intel.com> |
Fix merge conflict
Got a couple patches that collided in air, and now builds are broken. This resolves the collision by moving the new patches forward to the latest #defines
Change-Id: I1fe35d17a68
Fix merge conflict
Got a couple patches that collided in air, and now builds are broken. This resolves the collision by moving the new patches forward to the latest #defines
Change-Id: I1fe35d17a68c61ad90752ae73000e2579131bf5d 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 ...
|
#
c5b2abe0
|
| 30-May-2018 |
Lewanczyk, Dawid <dawid.lewanczyk@intel.com> |
Introduce ComputerSystem schema
Initial commit which adds: - ComputerSchemaCollection GET method - ComputerSchema GET, PATCH methods
Tested on x86 and aspeed - RSV pass for ComputerSchema - bmcweb
Introduce ComputerSystem schema
Initial commit which adds: - ComputerSchemaCollection GET method - ComputerSchema GET, PATCH methods
Tested on x86 and aspeed - RSV pass for ComputerSchema - bmcweb interface no regression - smbios interface tested with demo app
Change-Id: Ib64084c5888bc511a24f954a6bc062ca920addbe Signed-off-by: Lewanczyk, Dawid <dawid.lewanczyk@intel.com>
show more ...
|