summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Added registry entries for Platform firmware eventAppaRao Puli2019-11-041-2/+133
| | | | | | | | | | | | | | | | | | | Added message registry entries for logging platform firmware error, panic events and recovery events w.r.t specific components like BMC, BIOS, ME and CPLD ROT. These are useful for logging error/events, when the platform firmware components Like BMC, BIOS, ME and CPLD are compromised and automatic recovery actions are triggered. E.g: Can be used if BIOS/BMC or any platform firmware primary image boot failed, and secondary image is loaded. Tested: Using below URI and Method, verified the registry entries. URI: /redfish/v1/Registries/OpenBMC/OpenBMC METHOD: GET Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com> Change-Id: Id797dafe6b88ac69ea0fde27ae45980610e29620
* storage: s/Drive/DrivesJames Feist2019-11-011-3/+3
| | | | | | | | | | | The link was wrong, fix it. Tested: Navigated to a drive using new path, and it worked. Change-Id: Ie008efef23f4a7a17bfc0c3f74a4deac87e0d94c Signed-off-by: James Feist <james.feist@linux.intel.com>
* Update the MAINTAINERSJason M. Bills2019-11-011-1/+1
| | | | | | | Remove Ed and add Jason. Change-Id: I081649205aa25160969605e902b2f72f2214ab71 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
* Auth methods configurationKowalski, Kamil2019-10-317-12/+359
| | | | | | | | | | | | | | | | | | | | | Added Oem extension for AccountService allowing user to configure which authentication methods should be enabled. User is now able to turn on and off authentication methods like BasicAuth, XToken, etc. User is not allowed to turn off all of the methods at once - at least one method has to be active to prevent lock-out. This configuration is persistent, will be saved on file-system and will be loaded on bmcweb's restart. Tested: No regression found in manual testing. By default everything works as before, and disabling auth method prevents user to authenticate by it. Tested that user is not allowed to disable all the methods - either in one PATCH or by disabling them one at a time. ServiceValidator run with success. Change-Id: I3a775d783ac05998d17b8e91800962bffd8cab52 Signed-off-by: Kowalski, Kamil <kamil.kowalski@intel.com> Signed-off-by: Zbigniew Kurzynski <zbigniew.kurzynski@intel.com>
* Redfish: Fix System IndicatorLEDCarol Wang2019-10-311-65/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | xyz.openbmc_project.LED.Controller.identify does not exist in all systems. Checking LED group enclosure_identify is generic and is expected to indicate the Indicator LED state. Remove LED physical identify related code to make it generic for all systems. Tested: $curl -k -H "X-Auth-Token: $token" -d "{\"data\": true}" -X PUT https://${bmc}/xyz/openbmc_project/led/groups/enclosure_identify/attr/Asserted { "data": null, "message": "200 OK", "status": "ok" } $ curl -k -H "X-Auth-Token: $token" X GET https://${bmc}/redfish/v1/Systems/system { "@odata.context": "/redfish/v1/$metadata#ComputerSystem.ComputerSystem", "@odata.id": "/redfish/v1/Systems/system", "@odata.type": "#ComputerSystem.v1_6_0.ComputerSystem", "Actions": { "#ComputerSystem.Reset": { "ResetType@Redfish.AllowableValues": [ "On", "ForceOff", "ForceOn", "ForceRestart", "GracefulRestart", "GracefulShutdown", "PowerCycle", "Nmi" ], "target": "/redfish/v1/Systems/system/Actions/ComputerSystem.Reset" } }, "AssetTag": "", "BiosVersion": "open-power-witherspoon-v2.3-rc2-390-g8db7a9e", "Boot": { "BootSourceOverrideEnabled": "Disabled", "BootSourceOverrideMode": "Legacy", "BootSourceOverrideTarget": "None", "BootSourceOverrideTarget@Redfish.AllowableValues": [ "None", "Pxe", "Hdd", "Cd", "Diags", "BiosSetup", "Usb" ] }, "Description": "Computer System", "Id": "1069A8T ", "IndicatorLED": "On", "Links": { "Chassis": [ { "@odata.id": "/redfish/v1/Chassis/chassis" } ], "ManagedBy": [ { "@odata.id": "/redfish/v1/Managers/bmc" } ] }, "LogServices": { "@odata.id": "/redfish/v1/Systems/system/LogServices" }, "Manufacturer": "", "Memory": { "@odata.id": "/redfish/v1/Systems/system/Memory" }, "MemorySummary": { "Status": { "State": "Enabled" }, "TotalSystemMemoryGiB": 0 }, "Model": "8286-42B ", "Name": "system", "PartNumber": "", "PowerState": "Off", "ProcessorSummary": { "Count": 2, "Status": { "State": "Enabled" } }, "Processors": { "@odata.id": "/redfish/v1/Systems/system/Processors" }, "SerialNumber": "1069A8T ", "Status": { "Health": "OK", "HealthRollup": "OK", "State": "Disabled" }, "SystemType": "Physical" } The result of redfish Validator tool: Counter Optional': 2480, 'metadataNamespaces': 1602, 'passGet': 191, 'serviceNamespaces': 69, 'invalidPropertyValue': 10, 'warningPresent': 6, 'passAction': 6, 'optionalAction': 5, 'warnDeprecated': 2, 'unverifiedComplexAdditional': 1}) Validation has succeeded. Change-Id: Ie4b7931404fd072df4c6f215656436f07d3e4cde Signed-off-by: Carol Wang <wangkair@cn.ibm.com>
* Added OemComputerSystems and properties for provisioningAppaRao Puli2019-10-305-0/+260
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added OemComputerSystems Schema for provisioning properties - Added "ProvisioningStatus" Oem property with EnumType 1) NotProvisioned 2) ProvisionedButNotLocked 3) ProvisionedAndLocked Intel secures platform firmware components using Intel PFR mechanism. This may differ for other Oem's(non-intel platforms) but the properties like Provisioned, Locked states should be of generic as per NIST SP 800-193. Added build time flag to enable/disable PFR supported platforms. Tested: - By default provisioning feature is OFF, using GET method on below URI verified Oem Property and observed no such property. This is default behaviour on upstream. URI: /redfish/v1/Systems/system Response: No "Oem" property. - Enabled provisioning feature in Intel platforms and Verified using Systems URI. Ran the redfish validator tool and no new issues found due to this change. URI: /redfish/v1/Systems/system RESPONSE: ..... "Oem": { "OpenBmc": { "FirmwareProvisioning": { "ProvisioningStatus": "NotProvisioned" } } } ..... Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com> Change-Id: I674e6075263f4fa2962637d3add47393a1ff0c0b
* bmcweb: Message entry for system interface modesRichard Marian Thomaiyar2019-10-301-1/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Message entry added for system interface mode (restriction mode), which is part of xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml. These message entries are used to indicate system interface restricted command excecution after BIOS POST. Tested: 1. Redfish validator - passed for this new addition 2. Log will be as below { "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/184", "@odata.type": "#LogEntry.v1_4_0.LogEntry", "Created": "1970-01-01T00:03:04+00:00", "EntryType": "Event", "Id": "184", "Message": "The system interface is in the unprovisioned state.", "MessageArgs": [], "MessageId": "OpenBMC.0.1.SystemInterfaceUnprovisioned", "Name": "System Event Log Entry", "Severity": "Critical" }, { "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/198", "@odata.type": "#LogEntry.v1_4_0.LogEntry", "Created": "1970-01-01T00:03:18+00:00", "EntryType": "Event", "Id": "198", "Message": "The system interface is in the whitelist provisioned state.", "MessageArgs": [], "MessageId": "OpenBMC.0.1.SystemInterfaceWhitelistProvisioned", "Name": "System Event Log Entry", "Severity": "Warning" }, { "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/204", "@odata.type": "#LogEntry.v1_4_0.LogEntry", "Created": "1970-01-01T00:03:24+00:00", "EntryType": "Event", "Id": "204", "Message": "The system interface is in the disabled provisioned state.", "MessageArgs": [], "MessageId": "OpenBMC.0.1.SystemInterfaceDisabledProvisioned", "Name": "System Event Log Entry", "Severity": "OK" } Change-Id: I0e5496c50280f4614d08182b7b13136d254e1d40 Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Get rid of a nasty macroEd Tanous2019-10-301-26/+56
| | | | | | | | | | Now that we have constexpr if, clean this check up a bit Tested: no functional change Change-Id: Ia3541b056a502b0136c89c7e543ddc0b708f722b Signed-off-by: Ed Tanous <ed.tanous@intel.com> Signed-off-by: James Feist <james.feist@linux.intel.com>
* Modernize: use emplace instead of push_backEd Tanous2019-10-292-5/+5
| | | | | | | | | | We had a couple uses of push_back in the code that could be made more efficient with emplace(). Use them instead. Tested: No functional change. Needs tested. Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I417601e416b1d0be989617a372978d52670135d8
* Update to Chassis 1.10 and add PCIeDeviceCollection supportJason M. Bills2019-10-294-33/+74
| | | | | | | | | | | | v1.10 of Chassis adds a PCIeDeviceCollection. This change adds support for the PCIeDeviceCollection and references it from Chassis. Tested: Passed the Redfish Service Validator. Change-Id: If3bb75f4fa90a9df4a2a94a7c7e0bcaf37673723 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
* Add support for LogService.ClearLog to CrashdumpJason M. Bills2019-10-292-20/+62
| | | | | | | | | | | | 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>
* Add a Redfish schema for the Crashdump OEM ActionsJason M. Bills2019-10-294-0/+181
| | | | | | | | Tested: Passed the Redfish Service Validator Change-Id: Ib121346e3be031584eb522ceb8c8e4e3a350f13a Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
* Enable autoexpand on the Crashdump LogEntryCollectionJason M. Bills2019-10-292-51/+164
| | | | | | | | | | | | | | | 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>
* Simplify the OnDemand Crashdump return dataJason M. Bills2019-10-291-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>
* bmcweb: Message entry for Manufacturing modeRichard Marian Thomaiyar2019-10-291-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Message entry added for manufacturing mode entry and exit, which is part of special mode property as defined in xyz/openbmc_project/Control/Security/SpecialMode.interface.yaml. These message entries are used to indicate whenever SpecialMode state of the BMC is updated from normal value and manufacturing mode and vice versa Tested: 1. Redfish validator - passed for this new addition 2. Log will be as below { "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/317", "@odata.type": "#LogEntry.v1_4_0.LogEntry", "Created": "1970-01-01T00:05:17+00:00", "EntryType": "Event", "Id": "317", "Message": "Entered Manufacturing Mode.", "MessageArgs": [], "MessageId": "OpenBMC.0.1.ManufacturingModeEntered", "Name": "System Event Log Entry", "Severity": "Critical" }, { "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/899", "@odata.type": "#LogEntry.v1_4_0.LogEntry", "Created": "1970-01-01T00:14:59+00:00", "EntryType": "Event", "Id": "899", "Message": "Exited Manufacturing Mode.", "MessageArgs": [], "MessageId": "OpenBMC.0.1.ManufacturingModeExited", "Name": "System Event Log Entry", "Severity": "OK" } Change-Id: I182eeedb6860a3abcd4054caa431150ed073fbad Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
* Move to more modern headersEd Tanous2019-10-282-3/+2
| | | | | | | | | We had a couple places where the c style headers got checked in for Tested: Code builds. Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: Iebfbd846033618ff972825a0a9f89e8d05395ce8
* Support PATCH for HostWatchDogTimer in redfishYong Li2019-10-251-1/+113
| | | | | | | | | | | | | | | | | | | | | | This commit adds support for SET DBUS properties "Enabled" and "ExpireAction" for WatchDogTimer in the Redfish ComputerSystems schema. FunctionEnabled values can be false/true . TimeoutAction values can be "None","PowerCycle","PowerDown","ResetSystem". Tested: Modify the watchdog properties: curl --noproxy $BMCIP -k -H "Content-Type: application/json" -X PATCH \ https://root:0penBmc@$BMCIP/redfish/v1/Systems/system -d \ '{"WatchdogTimer":{"FunctionEnabled": false,"TimeoutAction": "PowerCycle"}}' Check them: curl --noproxy $BMCIP -k -H "Content-Type: application/json" -X GET \ https://root:0penBmc@$BMCIP/redfish/v1/Systems/system ipmitool mc watchdog get Signed-off-by: Yong Li <yong.b.li@linux.intel.com> Change-Id: Ie41232a56b3d0a62be76ae27d6ded8920f7b9407
* Add HostWatchdogTimer attribute in redfishYong Li2019-10-251-0/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add HostWatchdogTimer attribute in redfish Based on redfish spec, add HostWatchdogTimer property in redfish/v1/Systems/system. This object describes the Host Watchdog Timer functionality, including FunctionEnabled, Status and TimeoutActionproperties: "HostWatchdogTimer": { "FunctionEnabled": false, "Status": { "State": "Enabled" }, "TimeoutAction": "None" } Tested: Validator checking for HostWatchdogTimer in below test cases: Set different timeout actions reset|poweroff|cycle|none: ipmitool mc watchdog set action=reset timeout=1000 int=msg use=oem Start watchdog: ipmitool mc watchdog reset ComputerSystem.v1_5_0.ComputerSystem:HostWatchdogTimer value: OrderedDict([('FunctionEnabled', False), ('Status', OrderedDict([('State', 'Enabled')])), ('TimeoutAction', 'None')]) <class 'collections.OrderedDict'> has Type: ComputerSystem.v1_5_0.WatchdogTimer complex is Optional ***going into Complex ComputerSystem.v1_5_0.WatchdogTimer:FunctionEnabled value: False <class 'bool'> has Type: Edm.Boolean Edm.Boolean Mandatory Test: OK permission OData.Permission/ReadWrite Success ComputerSystem.v1_5_0.WatchdogTimer:WarningAction value: n/a <class 'str'> has Type: ComputerSystem.v1_5_0.WatchdogWarningActions enum is Optional prop Does not exist, skip... ComputerSystem.v1_5_0.WatchdogTimer:TimeoutAction value: None <class 'str'> has Type: ComputerSystem.v1_5_0.WatchdogTimeoutActions enum Mandatory Test: OK permission OData.Permission/ReadWrite Success ComputerSystem.v1_5_0.WatchdogTimer:Status value: OrderedDict([('State', 'Enabled')]) <class 'collections.OrderedDict'> has Type: Resource.Status complex is Optional ***going into Complex Resource.Status:State value: Enabled <class 'str'> has Type: Resource.State enum is Optional permission OData.Permission/Read Success HostWatchdogTimer.FunctionEnabled PASS HostWatchdogTimer.WarningAction Optional HostWatchdogTimer.TimeoutAction PASS HostWatchdogTimer.Status complex HostWatchdogTimer.Status.State PASS Watchdog service is stopped, no such property in redfish Change-Id: I883e4b739a3fe525080ed486d2ca8e461fddf212 Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
* Add Health to Memory and Processor SummaryJames Feist2019-10-242-7/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These fields were missing Health. Add health objects to get the health associated with these items. Also update the health object to be able to add more than the 'main' health for a url, by allowing passing a json reference. Also, add a 'children' vector of more shared_ptr<HealthPopulate> so we don't double up on d-bus calls. Tested: "MemorySummary": { "Status": { "Health": "OK", "HealthRollup": "OK", "State": "Disabled" }, "TotalSystemMemoryGiB": 0 }, "Model": "S2600WFT", "Name": "system", "PartNumber": "..........", "PowerState": "On", "ProcessorSummary": { "Count": 2, "Model": "Intel Xeon processor", "Status": { "Health": "OK", "HealthRollup": "OK", "State": "Enabled" } }, Change-Id: I06f802da93a44cfbac40b63d507e3b9faf0c999a Signed-off-by: James Feist <james.feist@linux.intel.com>
* Add Rebuilding to DrivesJames Feist2019-10-231-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | When the xyz.openbmc_project.Drive.State has rebuilding set true, make the state Updating. Tested: { "@odata.context": "/redfish/v1/$metadata#Drive.Drive", "@odata.id": "/redfish/v1/Systems/system/Storage/1/Drive/Drive_1", "@odata.type": "#Drive.v1_2_0.Drive", "Id": "Drive_1", "Manufacturer": "INTEL", "Model": "P4800X", "Name": "Drive_1", "PartNumber": "INTEL SSDPE21K375GA", "SerialNumber": "PHKE722600NL375AGN", "Status": { "Health": "OK", "HealthRollup": "OK", "State": "Updating" } } Change-Id: I401e5a8c416d969831cebde8b5b0723f41c3e1c7 Signed-off-by: James Feist <james.feist@linux.intel.com>
* Add Storage SchemaNikhil Potade2019-10-233-0/+292
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This takes the original commit below and updates it so that it passes the validatior, and provides the Status attribute in redfish when appropriate. Tested: Passed the validator { "@odata.context": "/redfish/v1/$metadata#Drive.Drive", "@odata.id": "/redfish/v1/Systems/system/Storage/1/Drive/Drive_2", "@odata.type": "#Drive.v1_2_0.Drive", "Id": "Drive_2", "Manufacturer": "INTEL", "Model": "P4800X", "Name": "Drive_2", "PartNumber": "INTEL SSDPE21K375GA", "SerialNumber": "PHKE722600NL375AGN", "Status": { "Health": "OK", "HealthRollup": "OK", "State": "Enabled" } } Original Commit Message: ------------------------------------------------------------------- Add Storage Schema for NVMe on Redfish This provides an implementation for the Get methods for the Storage schemas using following classes : - StorageCollection - Storage Tested: - Ran Redfish Service Validator to verify no issues are reported. - Tested that the NVMe drives in the system show up and proper fields are populated with appropriate data. - Tested with no drives present. Made sure the Storage interface shows no drives and Drive interface returns error message. Change-Id: Id0306ea413ac16a993110bb1a36cd95d939cff71 Signed-off-by: Nikhil Potade <nikhil.potade@linux.intel.com> Signed-off-by: James Feist <james.feist@linux.intel.com>
* Fix the websocket handshakeRatan Gupta2019-10-231-3/+7
| | | | | | | | | | | | | | If bmcweb is compiled with NON SSL mode then HTTP/websocket connection upgrade was not happening This commit fixes this behavior TestedBy: Sent a websocket request in non secure mode and the websocket handshake was working ws://{ip}/vm/0/0 to verify this Signed-off-by: Ratan Gupta <ratagupt@linux.vnet.ibm.com> Change-Id: I33ca950cedf591f66f4d68514d48d3b9c9fec421
* Minor fix: Typo correctionAppaRao Puli2019-10-222-2/+2
| | | | | | | | | | Typo correction: 'refish' to "redfish" Tested: Checked chassis URI and observed correct spelling. Change-Id: Ic09ab11acd47fdf45fadc485df9c1fd03c0ee4fb Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
* Prohibit making connection based on old CA cert.Zbigniew Lukwinski2019-10-221-0/+8
| | | | | | | | | | | | | This is fix for issue #107. Tested: Reproduction steps from #107 was followed. mTLS way of authentication was used. As a result connection try based on user certificate generated from already replaced CA certificate was dropped. Bmcweb didn't allow make such connection. Change-Id: I4709927b5fc108e5b26b7db1981ae77c6aa8a5bf Signed-off-by: Zbigniew Lukwinski <zbigniew.lukwinski@linux.intel.com>
* Update to PCIeDevices 1.4 and add PCIeFunctionCollection supportJason M. Bills2019-10-222-8/+87
| | | | | | | | | | | | v1.4 of PCIe Devices changed from an array of Links to PCIeFunctions to a PCIeFunctionCollection. This change adds support for the PCIeFunctionCollection and references it from the PCIeDevices. Tested: Passed the Redfish Service Validator. Change-Id: I76f0265c588b52bd02a35bf669ae6edacfb6c2a4 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
* Renamed User role name to ReadOnlyAppaRao Puli2019-10-223-7/+7
| | | | | | | | | | | | | | | | | | | | | | As per redfish specification (DSP0266), there are set of predefined privilege roles. In OpenBMC code has "User" as role name instead of "ReadOnly". So corrected the same. Updated Redfish.md accordingly. Spec says: Role Name = "ReadOnly" ▪ AssignedPrivileges = Login, ConfigureSelf Tested: - Role collection shows new role. - GET on /redfish/v1/AccountService/Roles/ReadOnly URI shows correct AssignedPrivileges. - Ran negative test with /redfish/v1/AccountService/Roles/User and observed error(404 - Not Found). - Ran Redfish validator and no new issues observed. Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com> Change-Id: I7b0132c628fb4950b6ec095269cd1a12e92aea9a
* rerun cmake-formatJames Feist2019-10-211-116/+155
| | | | | | | This file has gotten pretty un-formatted. Change-Id: I227bf5a7cf4fa38f28d7147fc1b210d5a22ed2a2 Signed-off-by: James Feist <james.feist@linux.intel.com>
* Add "requires" handlers to all non-trivial routesEd Tanous2019-10-216-0/+7
| | | | | | | | | | | | | This commit is the result of an audit to add user levels to the various components that need them. As written: KVM requires admin privilege Virtual media requires admin privilege image upload requires admin privilege /subscribe API requies Login privilege Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I6384f23769a5ac23f653519656721da7373f088f
* bmcweb: fix "Clear Event Logs" functionality behavior in System logs page on ↵Tim Lee2019-10-182-4/+4
| | | | | | | | | | | | | | | | | | | | | | 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>
* Fix Maintainers fileJames Feist2019-10-181-2/+2
| | | | | | | | | Emails were wrong. Tested: N/A Change-Id: I5acfb64145ed33c5494e7577337d214815782865 Signed-off-by: James Feist <james.feist@linux.intel.com>
* Make references to crow less obviousEd Tanous2019-10-1841-308/+68
| | | | | | | | | | | | | | | | | Recently, a number of people in the community have made the (admittedly easy) mistake that we use a significant portion of crow. Today, we use crow for the router, and the "app" structure, and even those have been significantly modified to meet the bmc needs. All other components have been replaced with Boost beast. This commit removes the crow mentions from the Readme, and moves the crow folder to "http" to camouflage it a little. No code content has changed. Tested: Code compiles. No functional change made to any executable code. Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: Iceb57b26306cc8bdcfc77f3874246338864fd118
* Correct message entry orderQiang XU2019-10-181-45/+43
| | | | | | | | | | | All messages are ordered in alphabetical with MessageID. Correct message of physical security to right place. Tested: The LAN lost message is correct when unplug network cable of dedicate NIC Change-Id: If1e2c6aca45f393690de743acbe927957ecedee3 Signed-off-by: Qiang XU <qiang.xu@linux.intel.com>
* Systems: Add space in Debug tracesGunnar Mills2019-10-161-11/+11
| | | | | | | | | | Before: "Got 71led group objects" Tested: Built bmcweb with DCMAKE_BUILD_TYPE=Debug. Change-Id: I80f7613c338e9fd16b2335ca0adc935dfa142a51 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
* Fix Redfish validator warningJason M. Bills2019-10-151-1/+1
| | | | | | | | | | | Trailing slash warnings now show up in the validator report, so fix this one. Tested: Passed the Redfish Service Validator. Change-Id: I8db7eb488b44eba9510ae4e1071b2da15eaa22c1 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
* Handling of adding certificates the Redfish way (TrustStore)Zbigniew Kurzynski2019-10-141-2/+15
| | | | | | | | | | | | | | | | | | | Added handling for POSTing certificates the Redfish way (as proper JSON). Currently it was only possible to add certificate as a RAW certificate in request body. Now user is able to add it as { "CertificateType": "PEM", "CertificateString": "..." } as well as previously in RAW form. Tested: - Uploading certificates in RAW form - Uploading certificates in JSON form - In case of malformend reqeust a propser error message is returnd. Signed-off-by: Zbigniew Kurzynski <zbigniew.kurzynski@intel.com> Change-Id: Iab563964102b0a1a351cb0bb1ea181643da33480
* Fix content-security-policy when XSS is disabledEd Tanous2019-10-111-6/+16
| | | | | | | | | | | | | | Content-Security-Policy is a bit odd when loading from another source. Technically, everything is cross site when in a debug context, so blocking cross site scripting in this case is a bit non-sensical. Tested: This was reported to me, but I was unable to reproduce, so no way to really test. Pushing for someone else to be able to test first, then will update this once done. Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I9ae125a5577c43164d5b3b1280b783336fbfec71
* Update Redfish schemas to 2019.2Ed Tanous2019-10-11220-15871/+21783
| | | | | | | | | | | | | Note, the DMTF changed the format of the schema file pack yet again, so the script changes now to compensate for that. Tested: Ran schema validator. One unrelated failure in LogEntry, and 4 new warnings in PCIe devices (we're using a deprecated property). All other endpoints pass. Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I81c030a7c5a6a32cc12a5e7e02a9441b7891bc5d
* Fix some warningsEd Tanous2019-10-113-16/+37
| | | | | | | | | | | -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
* Fix state property on firmware propertiesEd Tanous2019-10-111-0/+1
| | | | | | | | | | | | | In the case of non-updatable firmware entities, the State variable was not getting populated due to a poorly handled error condition. This resolves it, and assumes non-updatable entities are just "Enabled" Tested: Need help here. I'm not able to reproduce the original issue on my system, so need someone else to test that this resolves it. Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: Ibd5db741cb8b0b2451a04fe14157dc1d3cbbcc03
* Support uploading multiple certificates [install-middlewere]Zbigniew Kurzynski2019-10-101-16/+31
| | | | | | | | | | | | | This review is a fix for changes in Install API. See review: https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-certificate-manager/+/25634 Tested: Tested manaually, the POST method on certificate collection returns ID of created certificate. Signed-off-by: Zbigniew Kurzynski <zbigniew.kurzynski@intel.com> Depends-On: Ic8ab545c931d89a022acdabd5a755e3bf39e5a79 Change-Id: I70c449600623e4f1eabf63c23163683f6f513d43
* Fix a bunch of warningsEd Tanous2019-10-1050-2712/+2421
| | | | | | | | | | | | | | | 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
* Update websocket test scriptEd Tanous2019-10-101-20/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit reworks the websocket test script to be more usable without editing it. Namely it: 1. Moves the script to the websockets library, as it seems to be in more use 2. Implements an argument parser, so the script doesn't require modification of host and username/password variables to use. 3. Moves to basic auth, which doesn't require a secondary login 4. implements better parsing of the result rather than simply printing the json scructure directly. Tested: Ran ./websocket_test.py --host <myhostname> Observed streaming sensor values in the form: System_Airflow 72.00 CFM Fan_1 6153.00 RPM System_Airflow 72.22 CFM Fan_6 6048.00 RPM System_Airflow 72.24 CFM Baseboard_12Volt 12.21 Volts P105_PCH_AUX 1.05 Volts PSU1_Input_Power 94.62 Watts PSU2_Output_Current 6.72 Amps Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I617f73a5b70f61a391e9c61638f0bcf4437bf6ce
* SoftwareInventory: Catch more interfacesJames Feist2019-10-102-8/+3
| | | | | | | | | | Expand the path to a larger namespace, and allow non updateable interfaces to not error out. Tested: More interfaces appeared without error Change-Id: I4a6e3092c868cb5f3fe66401269d5c99f69328c8 Signed-off-by: James Feist <james.feist@linux.intel.com>
* Cleanup some old filesEd Tanous2019-10-103-269/+0
| | | | | | | | | | These files aren't used, and are cruft that should've been cleaned up a long time ago. Tested: Project still builds. Files were not used Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I658eeebcafc9d20af44609f441b078c3c448a683
* update_service: s/update/imageJames Feist2019-10-081-2/+2
| | | | | | | | | | | Not all firmware is updateable, rename it to make sense. Tested: "Description": "ME image" Change-Id: I7f78032726e9e102e9626ae1c788b7be30db2651 Signed-off-by: James Feist <james.feist@linux.intel.com>
* Fix MaxConcurrentSessions property of GraphicalConsoleJae Hyun Yoo2019-10-071-1/+1
| | | | | | | | Now we support up to 4 concurrent KVM sessions so this commit fixes 'MaxConcurrentSessions' property of 'GraphicalConsole'. Change-Id: Id225247dcb2d0b884a8a41253863294385268585 Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
* Fix crash during GET of manager network protocolRatan Gupta2019-10-031-2/+3
| | | | | | | | | | | | | | | | | | | | If the ethernet interface is having the domain name entry then Redfish GET request on network manager protocol was crashing the bmcweb. This commit fixes this behaviour. Tested By: Configure the Domain Name and run the GET request on the network protocol: PASS GET request on the network protocol even the domain name was not configured : PASS Redfish Validator: PASS Signed-off-by: Ratan Gupta <ratagupt@linux.vnet.ibm.com> Change-Id: I1e6cd6e3fe507ff375463ece1f6f10bae4d4fb6a
* Revert "Add Storage Schema for NVMe on Redfish"Ed Tanous2019-10-023-256/+0
| | | | | | | | | | This reverts commit e56c7b7092298c609831a65bcc8c21e62d422ba7. Reason for revert: /redfish/v1/Systems/1 returns no result. This should've been flagged in service validator, but the commit mentions that test was run, so it's not clear how this was missed. Reverting for a moment until we can determine what happened. Change-Id: I276d4cd239adb87b77264bc65ab4856705274ff0
* Fix role map persistenceEd Tanous2019-10-022-10/+4
| | | | | | | | | | | | | | | | | | | Now that we have a live role map, there's no need to track the users role in the session object, we have the ability to get it every time. This issue manifests itself in a fairly nefarious situation: 1. Log in, user is assigned a session, with role 2. BMC reboots. Session is persisted and restored, but role is removed. 3. User now has a valid session, but isn't authorized to do anything, which results in a 403. In the webui, this results in an inability to log out. Tested (TODO): Log in and log out functions. Reboot BMC, verify that webui doesn't log back out or return 403. Signed-off-by: Ed Tanous <ed.tanous@intel.com> Change-Id: I9bbf682d062150aa1c877217f037221471e58e9f
* Add Storage Schema for NVMe on RedfishNikhil Potade2019-09-303-0/+256
| | | | | | | | | | | | | | | | | This provides an implementation for the Get methods for the Storage schemas using following classes : - StorageCollection - Storage Tested: - Ran Redfish Service Validator to verify no issues are reported. - Tested that the NVMe drives in the system show up and proper fields are populated with appropriate data. - Tested with no drives present. Made sure the Storage interface shows no drives and Drive interface returns error message. Signed-off-by: Nikhil Potade <nikhil.potade@linux.intel.com> Change-Id: I9fa9f4cd69fe07cde15604c5405a6987774065fd
OpenPOWER on IntegriCloud