summaryrefslogtreecommitdiff
path: root/redfish-core/lib/log_services.hpp
AgeCommit message (Collapse)AuthorFilesLines
2020-05-14sdbusplus: replace message::variant with std::variantPatrick Williams1-3/+2
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ia5d0845741f1d8d4bc6fd227c6d2e6f3a8d42b2e
2020-05-14sdbusplus: remove deprecated variant_nsPatrick Williams1-8/+4
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I86e11299512704fa1df1e5f6517ea25cc6eced8f
2020-05-08Redfish: Log service implementation for system dumpraviteja-b1-0/+331
Dump is the debug data collected at any point of time from the system and is stored in a file Currently, Redfish doesn't have schema for operations on debug data(dump). This commit implements logService for system dump. we have a DMTF proposal to extend existing LogService schema for this purpose but its still work in progress, so moved to oem schema. below commit has changes to move properties to OEM https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/30352 Tested By: GET https://${IP}/redfish/v1/Systems/system/LogServices/SystemDump DELETE https://${IP}/redfish/v1/Systems/system/LogServices/SystemDump/Entries/<id> Redfish validator passed. (above mentioned commit required to pass validator). Change-Id: I4a4a4083be4556bc46a4335d31ce56f834bd4f5a Signed-off-by: Ravi Teja <raviteja28031990@gmail.com>
2020-04-22Correct privilege levels for LogServiceAppaRao Puli1-20/+34
Correct the privilege levels for LogService as per privilege registry under redfish specification. https://redfish.dmtf.org/registries/Redfish_1.0.4_PrivilegeRegistry.json 1) ClearLog actions(EventLog, CrashDump, PostCode, JournalLog etc..) are subordinates of LogService should be executed with "ConfigureComponents" privilege level. 2) For security reasons, Restricted CrashDump (LogService and LogEntry) to "ConfigureComponents". Tested: - Created Operator, User and Administrator users and validated all methods under LogService, LogEntry LogServiceCollections and LogEntryCollections, its subordinates. Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com> Change-Id: I4ce1ee90b3b999a80daa9aa20e5e7d79b64a9b85
2020-04-16Redfish: Allow slash at the end of ResourceGunnar Mills1-1/+1
This is defined in the Redfish protocol. Easiest way to allow this is to end the Node URL with "/", which most Nodes in bmcweb already had. Before: curl -k https://${bmc}/redfish/v1/TaskService/ Not Found After both /redfish/v1/TaskService/ and /redfish/v1/TaskService return the Task Service. Tested: Validator passed. Change-Id: Ic806dc5c91f631b87642e49b486a6b6da7fdf955 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2020-04-16Change EventLog Id to match odata.idGunnar Mills1-1/+1
Could not find a hard rule to require the Id to match the last segment of the URL/@odata.id but all Redfish mockups match this way, other bmcweb resources do as well, and redfishtool is easier to use if this is true. Before: $ python redfishtool.py -r xxxxxx -u xxxx -p xxxxxxx -S Always \ Systems Logs -i EventLog 5 Transport:getPathBy2:Match: failed match: matchProp=Id, matchValue=EventLog, readValue=Event Log Tested: Validator passed. curl -k https://${bmc}/redfish/v1/Systems/system/LogServices/EventLog { "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog", "@odata.type": "#LogService.v1_1_0.LogService", "Actions": { "#LogService.ClearLog": { "target": "/redfish/v1/Systems/system/LogServices/EventLog/Actions/LogService.ClearLog" } }, "Description": "System Event Log Service", "Entries": { "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries" }, "Id": "EventLog", "Name": "Event Log Service", "OverWritePolicy": "WrapsWhenFull" Change-Id: Ia324bebfcae65a195adbb3a4126100d82efde383 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2020-04-09Match BMCWeb crashdump to the D-Bus interface provided by crashdumpJohnathan Mantey1-118/+142
The crashdump service changed to eliminate hangs, and failures to retrieve the crashdump data. The BMCWeb crashdump handling code has to be aligned with the server. Tested: Confirmed each of the primary functions operates as expected. Getting the collection Getting the entries Forcing an on demand capture Polling for the on demand capture to complete Retrieving the creashdump data Clearing all of the crashdump content Ran service validator Change-Id: Ie8fb48369a782d905b942c1f9bef11f387f6463e Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>
2020-03-18Log BIOS POST Codes Through RedfishZhikuiRen1-12/+494
Added PostCodes MessageID, PostCodesLogService, PostCodesClear, PostCodesEntry and PostCodesEntryCollection to redfish-core log_services. Design document located at openbmc/docs/designs/redfish-postcodes.md: Tested: Build with changes in phosphor-dbus-interfaces and phosphor-post-code-manager. PostCode Collection and entries passed RedfishServiceValidator test. Boot cycles are ordered so that B1 is for the most recent power on. Reviewed redfish log contents against design document that is mentioned above: bmc/redfish/v1/Systems/system/LogServices bmc/redfish/v1/Systems/system/LogServices/PostCodes bmc/redfish/v1/Systems/system/LogServices/PostCodes/Entries Send POST clear commands and verified PostCodes log is cleared and boot cycle count is reset to 1. Change-Id: I8de4d4749d1a17d590619d70670d279c01753b03 Signed-off-by: ZhikuiRen <zhikui.ren@intel.com>
2020-03-17Task: Add payload supportJames Feist1-4/+5
This adds the payload values to task responses. Tested: passed validator Change-Id: I50467e28ce8142d198f916ea0c63bd413edcd524 Signed-off-by: James Feist <james.feist@linux.intel.com>
2020-03-13log: Fix ValidatorJames Feist1-1/+1
Should be updating state when finished, not status. Tested: Validator passed again Change-Id: Ida75eb480d7873c56e37f99b4a093be20362c9d6 Signed-off-by: James Feist <james.feist@linux.intel.com>
2020-03-12task: add fwupdate supportJames Feist1-1/+2
This adds firmware update task service support. It adds a match and updates the task value when the interface changes. Tested: On successful fwupdate task was created and updated correctly. On failed fwupdate the status went to failed. Change-Id: Id12cc5d5270e8e45498b665e78601c5c30775323 Signed-off-by: James Feist <james.feist@linux.intel.com>
2020-03-02Add Success to Crashdump responseJames Feist1-2/+8
This adds the success message to the task when it is finished. Tested: Passed Validator Change-Id: Ib1010249157c0be713ccfd076e93d9502471fc65 Signed-off-by: James Feist <james.feist@linux.intel.com>
2020-03-02Add TaskServiceJames Feist1-22/+30
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>
2020-02-15log service: Remove odata.contextGunnar Mills1-25/+0
Tested: Built this commit and the commits under it. Loaded on a Witherspoon and ran validator. No errors. Change-Id: Id54bc61319f500c4122213bd0e0d6ba140c7c690 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2020-02-07Move Crashdump to OemCrashdumpGunnar Mills1-3/+3
All other Oem Schemas start with Oem. This is used by the update_schemas.py to determine an Oem schema and is a reasonable requirement for Oem schemas. https://github.com/openbmc/bmcweb/blob/a3268f98f308ca7c8660b1ace44d5b9a40be204b/scripts/update_schemas.py#L43 Tested: Ran the validator against this change on a Witherspoon with BMCWEB_ENABLE_REDFISH_CPU_LOG enabled and OemCheck true. Validator passed. Might be worth running on a system that actually uses BMCWEB_ENABLE_REDFISH_CPU_LOG. curl -k https://${bmc}/redfish/v1/Systems/system/LogServices/Crashdump { "@odata.context": "/redfish/v1/$metadata#LogService.LogService", "@odata.id": "/redfish/v1/Systems/system/LogServices/Crashdump", "@odata.type": "#LogService.v1_1_0.LogService", "Actions": { "#LogService.ClearLog": { "target": "/redfish/v1/Systems/system/LogServices/Crashdump/Actions/LogService.ClearLog" }, "Oem": { "#Crashdump.OnDemand": { "target": "/redfish/v1/Systems/system/LogServices/Crashdump/Actions/Oem/Crashdump.OnDemand" } } }, "Description": "Oem Crashdump Service", "Entries": { "@odata.id": "/redfish/v1/Systems/system/LogServices/Crashdump/Entries" }, "Id": "Oem Crashdump", "MaxNumberOfRecords": 3, "Name": "Open BMC Oem Crashdump Service", "OverWritePolicy": "WrapsWhenFull" } Change-Id: Iacc11be1284b99c2ed9a6c2ca0a936bd97855afb Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2020-01-17Changed input data format for Crashdump.SendRawPeciKarthick Sundarrajan1-12/+50
At present, the Crashdump.SendRawPeci redfish interface accepts one PECI command at a time. Changed it to accept array of PECI commands through which multiple PECI commands can be aggregated into one redfish call. Also provided backward compatibility for existing single PECI command input format. Tested: Tested by aggregating 1000 PECI commands in one redfish call. Tested by giving single PECI command with the existing format. Change-Id: I05c547438ce9833519807b39347223183bdfb4ed Signed-off-by: Karthick Sundarrajan <karthick.sundarrajan@intel.com>
2019-12-02Return no-content instead of waiting for OnDemandJason M. Bills1-89/+1
Since an OnDemand crashdump could take some time it may cause the request to time out before the response can be sent. The correct fix for this is to implement the Redfish Task Monitor service to handle all asynchronous tasks. Until then, this change will return 204 (no content) and add the OnDemand log to the Entries list. When Task Monitor is implemented it can return 202 (accepted) with the location of the Task to poll. Tested: Used Postman to trigger the OnDemand action and immediately got a 204 response. Polled the Entries list and saw the OnDemand entry after it was ready. Change-Id: I3e2692ec5d377823072e0d610fa3ca17a9259a37 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-12-02Return 503 instead of 500 when Crashdump is busyJason M. Bills1-0/+6
Tested: Used Postman to send the OnDemand action twice and got a 503 with a retry message on the second attempt. Change-Id: I319a6318ee57e504a54b3fdb6894a5aeb43af203 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-12-02Return a 404 instead of 500 for invalid Crashdump URIsJason M. Bills1-1/+10
Tested: Used a browser to request an invalid Crashdump URI and got a 404 with a resource not found error. Change-Id: Idcac7868bb1f3b4c0248926b46be2cf4fce05328 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-12-02Add "Retry-After" header for temporarily unavailable messagesJason M. Bills1-1/+0
Whenever the Redfish response is that a service is temporarily unavailable, the "Retry-After" header is added with the same value, so just set the header automatically with the response. Tested: Confirmed that the "Retry-After" header is set correctly with the Redfish temporarily unavailable message. Change-Id: I9c940be94d9d284b9633c5caa2ce71ade76d22d5 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-11-11Replace all uses of NULL with nullptrEd Tanous1-1/+1
This was an automatic change made by clang-tidy. It moves all uses of NULL to nullptr, which are equivalent, but nullptr is prefered. Tested: Code compiles. Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I9526599b222693c9723a69934b599c7a5b5d1fbf
2019-10-29Add support for LogService.ClearLog to CrashdumpJason M. Bills1-20/+61
Tested: Used Postman to send the LogService.ClearLog action on Crashdump and verified that the existing logs were cleared and the next new log started at ID 0. Passed the Redfish Service Validator. Change-Id: I9b895b3d2e1865add42e4c35c77f55c8832385da Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-10-29Enable autoexpand on the Crashdump LogEntryCollectionJason M. Bills1-51/+163
The current Crashdump LogEntry contains non-standard properties and could be very large causing problems for autoexpand. This change uses a LogEntry OEM type to specify a URI where the full log can be retrieved and enables autoexpand on the LogEntryCollection. Tested: Passed the Redfish Service Validator. Change-Id: I6a402d216e6d8228ea2825ab4c6d02b9c8023fc5 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-10-29Simplify the OnDemand Crashdump return dataJason M. Bills1-46/+39
Tested: Ran an on-demand crashdump and confirmed that the output is correct. Change-Id: I993a36d3a6966433cbc6ede9e2d0702b319e3fd0 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-10-18bmcweb: fix "Clear Event Logs" functionality behavior in System logs page on ↵Tim Lee1-3/+3
WebUI When BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES option set to ON that means bmcweb will look to phosphor-logging for any D-Bus log entries. These will then be translated to Redfish EventLog Entries. Thus, we can see those Redfish Eventlog Entries when select "Event" system log type in System logs page. However, when this option set to ON, the "Clear Event Logs" functionality still clear /var/log/redfish file instead of clear log through xyz.openbmc_project.Collection.DeleteAll interface by DeleteAll action. It should to clear D-Bus log entries when BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES option is ON. Thus, we provide our modification for correct this functionality behavior. Tested by: Nuvoton NPCM750 EVB and RunBMC Olympus platforms in WebUI. when BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES option is ON to clear D-Bus log entries, and when option is OFF to clear /var/log/redfish log entries. Signed-off-by: Tim Lee <timlee660101@gmail.com> Change-Id: I71445806ae5a79c2c0622908f7ac60daaa2119b8 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-10-11Fix some warningsEd Tanous1-6/+8
-werror on the newest version of GCC finds even more stuff than was found before. Fix all of them. Tested: No functional change. In theory these cases can't occur unless a dbus interface is broken. Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: Id11e29e4851075b511e69cbc006aa8d7e1e229f0
2019-10-11Fix a bunch of warningsEd Tanous1-54/+42
using the list of warnings from here: https://github.com/lefticus/cppbestpractices/blob/e73393f25a85f83fed7399d8b65cb117d00b2231/02-Use_the_Tools_Available.md#L100 Seems like a good place to start, and would improve things a bit type-wise. This patchset attempts to correct all the issues in one shot. Tested: It builds. Will test various subsystems that have been touched Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I588c26440e5a97f718a0f0ea74cc84107d53aa1e
2019-08-09Don't return a 500 error for entries without priority metadataJason M. Bills1-3/+1
This change makes an entry with no priority metadata default to "OK" instead of returning a 500 error. Tested: Logged an entry without priority and confirmed that getting the Entries returns 200. Passed the Redfish Service Validator. Change-Id: I5a4633ef8542da6eaacad28953e5c99d992576fa Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-08-09Fix getting individual journal entries with an underscoreJason M. Bills1-2/+13
The journal entries with an underscore in the ID could not be accessed individually. This change tracks the unique ID while searching for the entry so it can find the correct entry with an underscore. Tested: Checked that individual journal entries with and without an underscore can be accessed. Passed the Redfish Service Validator. Change-Id: I4aedbe1cb7d5f3cb896c5a0e766e9a274f0ee076 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-08-02Add support to request a single Journal Event Log EntryJason M. Bills1-1/+78
This change adds back support to request a single Journal Event Log Entry. Tested: Requested a single valid entry and got it. Requested an invalid entry and got the correct error message. Passed the Redfish Service Validator. Change-Id: Ibd2defee04510c1b52fe010cf3e2c6aced94537f Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-08-02Don't store LogEntry IDs across requestsJason M. Bills1-4/+30
Because the previous timestamp is stored across Entries requests, a single entry will increment the ID on every refresh since the previous timestamp will always match. This change clears the previous timestamp on the first entry of each request. Tested: Refreshed a single LogEntry many times and confirmed that the ID does not change. Change-Id: I8bf81b6c2eb6ac4037a17008ba54ebfccb42e0dd Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-07-30Redfish:Support to Delete a single event logChicago Duan1-0/+41
Tested:Use redfish to delete a single event log Before: curl -k -H "X-Auth-Token: $bmc_token" -X DELETE https://${bmc}/redfish/v1/Systems/system/LogServices/EventLog/Entries/2 -d '{"[]"}' Method Not Allowed After: curl -k -H "X-Auth-Token: $bmc_token" -X DELETE https://${bmc}/redfish/v1/Systems/system/LogServices/EventLog/Entries/2 -d '{"[]"}' No error response,and the entry 2 is deleted. Signed-off-by: Chicago Duan <duanzhijia01@inspur.com> Change-Id: I31e4470d73b72012b8727d466530202e2609000d
2019-07-09Fix Redfish Validator Errors in EventLogGunnar Mills1-4/+4
/redfish/v1/Systems/system/LogServices/EventLog ERROR - LogService.v1_0_0.LogService:Actions : Could not get details on this property (This item should not be a List) ERROR - Actions: Item is present, but no schema found Before: curl -k https://${bmc}/redfish/v1/Systems/system/LogServices/EventLog/ { "@odata.context": "/redfish/v1/$metadata#LogService.LogService", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog", "@odata.type": "#LogService.v1_1_0.LogService", "Actions": [ { "#LogService.ClearLog": { "target": "/redfish/v1/Systems/system/LogServices/EventLog/Actions/LogService.ClearLog" } } ], After: curl -k https://${bmc}/redfish/v1/Systems/system/LogServices/EventLog/ { "@odata.context": "/redfish/v1/$metadata#LogService.LogService", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog", "@odata.type": "#LogService.v1_1_0.LogService", "Actions": { "#LogService.ClearLog": { "target": "/redfish/v1/Systems/system/LogServices/EventLog/Actions/LogService.ClearLog" } }, LogService.ClearLog currently does not work on master on Witherspoon, see https://github.com/openbmc/bmcweb/issues/97 Change-Id: Id2cea926b4f5248782c751f3da247c4dc5662cf3 Tested: No longer see the Errors. Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2019-07-03bmcweb: Clear up event log entry class namesAnthony Wilson1-4/+4
It wasn't immediately clear what some of the classes did without digging through the implementation. This should clear up any confusion between the Journal and DBus implementations of the event log entry classes. Tested: Verified changes were present in both implementations of event log enttry. Change-Id: Id0d6bad5c73feb93608ac1ad457235a1d31fe018 Signed-off-by: Anthony Wilson <wilsonan@us.ibm.com>
2019-07-03redfish: Give DBus event logging its own classesAnthony Wilson1-16/+45
Since the DBus implementation of event logging is completely different than the journal implementation, moved it to its own class to be consistent. Tested: Verified both implementations work the same as before the class split. Change-Id: I95e3b837f9d99b78034695545ab5791386d94a13 Signed-off-by: Anthony Wilson <wilsonan@us.ibm.com>
2019-06-27Fix parsing of Redfish messages with empty MessageArgsJason M. Bills1-12/+22
The current parsing shows an empty string as a MessageArg for messages that have no arguments. This fixes it to correctly display an empty MessageArgs. It also fixes a parsing range check error for the case when a message without MessageArgs is not terminated with a comma. Tested: Verified that messages show without args show in Redfish with an empty MessageArgs. Injected a message without a terminating comma and confirmed that it is correctly parsed and displayed. Change-Id: I896554941d2d239afa889d41edef1f1f71b59906 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-05-30Add ClearLog support for the Redfish Event Log ServiceJason M. Bills1-0/+55
This change adds support for the LogService.ClearLog action to clear the Redfish Event Log. Tested: 1. Added entries to the EventLog 2. Sent the ClearLog action using Postman: /redfish/v1/Systems/system/LogServices/EventLog/Actions/LogService.ClearLog 3. Confirmed that the EventLog was empty 4. Added entries to the EventLog 5. Confirmed that the new entries logged successfully Change-Id: I6ac4ea4aff8d7defbea693a2c8a755a712fb39a6 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-05-29Fix a trailing slash on LogServicesEd Tanous1-2/+2
Redfish takes a not-so-strong opinion on trailing slashes, and while they're kind of allowed, the validator does mention them. This fixes the URI endpoint to not contain a slash. Tested: Ran redfish service validator, and observed no new errors. Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I697f99e17fd4564f5f9648b972a1168de78c271d
2019-05-10Improve Redfish log entry parsingJason M. Bills1-9/+25
This change makes the log entry parsing more robust by checking only for the first space to get the timestamp instead of splitting on all spaces. Tested: Added log entries using sensor override and confirmed that all of them can be correctly displayed in the EventLog LogService. Change-Id: Ic0374f6bf8d5ec052dae84b36ab48d16041c614f Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-05-08Use syslog for Redfish messagesJason M. Bills1-140/+131
Limitations were discovered after the journal was made persistent that reduce the benefits of using it directly for persistent event logs. As an alternative, we will leave the journal volatile and use rsyslog to persist only the event logs. This change switches to the syslog files for Redfish event messages instead of looking directly in the journal. Tested: Navigated to "/redfish/v1/Systems/system/LogServices/EventLog/Entries" and confirmed that all of the stored Event Log Entries are returned. Change-Id: Ib0aebda68eb95bb171fccd208350c3d073787a13 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-05-08Construct Redfish messages using the Message RegistryJason M. Bills1-19/+72
Instead of using the message and severity from the journal, this change allows Redfish to search for the MessageId in the Message Registries to construct the message. This will provide more accurate Redfish messages and severities since they come from a single source. Tested: Logged Redfish events using new MessageIds and confirmed that the correct message from the Message Registry is displayed rather than the message from the journal. Change-Id: I294593647998c988b36ffccaf95a69cbeab3f92e Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-04-22Change application and interface names to CrashdumpJason M. Bills1-58/+62
Crashdump is the preferred name, so replace all uses of CPU Log with Crashdump. Tested: On-demand crashdump functions correctly Change-Id: I6cf8fb81bc8f2e85dd4a3561835f3fafbff764e5 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-04-15Remove references to experimental filesystemJames Feist1-1/+1
We're at CPP17 everywhere now, no need to keep the experimental refrerence. Tested: It builds Change-Id: I5f6571eb411bf055e9715f7d96d1be5a3cb2e119 Signed-off-by: James Feist <james.feist@linux.intel.com>
2019-04-06Change the name from Immediate to On-Demand for CPU LogJason M. Bills1-32/+31
The name "Immediate" was confusing, so changing the name to "OnDemand" to make it's purpose more clear. Tested: Used Postman to send a POST to "/redfish/v1/Systems/system/ LogServices/CpuLog/Actions/Oem/CpuLog.OnDemand" and verified that the expected On-Demand data was returned. Change-Id: If9b6b30e1c424227601fb6b7381470f571afca9e Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-04-05Initial redfish logging supportAndrew Geissler1-10/+314
This was imported from a fork: https://github.com/ampere-openbmc/bmcweb/commits/ampere-next/redfish-core/lib/logservices.hpp Which had a series of commits from TungVuX and hyche The initial patch is that code verbatim. Follow up patches on top of this make the necessary changes for current bmcweb: - Move to sdbusplus - C++ naming convention changes - Clang format - Some refactoring Tested: Verified new services work correctly when queried e.g. curl -k -H "X-Auth-Token: $bmc_token" -X GET \ https://${bmc}/redfish/v1/Systems/system/LogServices/EventLog/Entries displays the entries properly. RedfishServiceValidator results: /redfish/v1/Systems/system/LogServices pass: 3 passGet: 1 skipOptional: 1 /redfish/v1/Systems/system/LogServices/EventLog pass: 5 passGet: 1 skipOptional: 8 /redfish/v1/Systems/system/LogServices/EventLog/Entries pass: 3 passGet: 1 skipOptional: 1 /redfish/v1/Systems/system/LogServices/EventLog/<str> pass: 6 passGet: 1 skipOptional: 16 Sample Output: curl -k -H "X-Auth-Token: $bmc_token" -X GET https://${bmc}/redfish/v1/Systems/system/LogServices/EventLog/Entries { "@odata.context": "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries", "@odata.type": "#LogEntryCollection.LogEntryCollection", "Description": "Collection of System Event Log Entries", "Members": [ { "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/1", "@odata.type": "#LogEntry.v1_4_0.LogEntry", "Created": "2019-02-22T17:11:00+00:00", "EntryType": "Event", "Id": "1", "Message": "example.xyz.openbmc_project.Example.Elog.AutoTestSimple", "Name": "System DBus Event Log Entry", "Severity": "Critical" } ], "Members@odata.count": 1, "Name": "System Event Log Entries" } Change-Id: I422b0d0ec577ea734fecfb6f49101ec5ff45a556 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Signed-off-by: Anthony Wilson <wilsonan@us.ibm.com>
2019-03-25Revert "bmcweb: Fix a bunch of warnings"Ed Tanous1-13/+13
This reverts commit 6ea007a2faec52ad62680015d2a3f00371a1e351. Reason for revert: Reports of bmcweb seg faults. Change-Id: I408f1bb29c2f8e427a6621cdaac8c31b847ebf06
2019-03-23bmcweb: Fix a bunch of warningsEd Tanous1-13/+13
bmcweb classically has not taken a strong opinion on warnings. With this commit, that policy is changing, and bmcweb will invoke the best warnings we are able to enable, and turn on -Werror for all builds. This is intended to reduce the likelihood of hard-to-debug situations that the compiler coulve caught early on. Change-Id: I57474410821e82666b3a108cfd0db7d070e8900a Signed-off-by: Ed Tanous <ed@tanous.net>
2019-03-18Fix Entries path to point to Systems/systemJason M. Bills1-1/+1
The corrected Entries path for the CPU LogService did not get updated with the move from Managers/bmc to Systems/system, so this change fixes it. Tested: Checked that the Entries path points to Systems/system and that it correctly leads to the Entries resource. Change-Id: I1897d43a428408c7a9f16d06747f3654bc8a7e35 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
2019-03-07bmcweb: /s/boost::string_view/std::string_view/gEd Tanous1-20/+20
With boost 1.69, we get the new option, BOOST_BEAST_USE_STD_STRING_VIEW which allows us to use std::string for all beast interfaces, instead of boost string_view. This was originally intended to try to reduce the binary size, but the comparison shows only a minor improvement. boost::string_view: 7420780 bytes std::string_view: 7419948 bytes 832 bytes saved ! ! ! ! ! So instead, we will use the argument that it's more standard and easier for people to grok. Tested By: Pulled down some bmcweb endpoints, and observed no change. Because the two objects are essentially drop in replacements for one another, there should be no change. Change-Id: I001e8cf2a0124de4792a7154bf246e3c35ef3f97 Signed-off-by: Ed Tanous <ed.tanous@intel.com>
2019-02-20Move the CPU LogService to SystemsJason M. Bills1-20/+19
The CPU LogService doesn't belong under BMC LogServices, so moving it to Systems LogServices. Tested: Verified that the CPU LogService shows up under Systems and passed the Redfish Service Validator. Change-Id: Ic04157b966dc0395db94046f37c33590a4e20553 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>