History log of /openbmc/bmcweb/features/redfish/lib/chassis.hpp (Results 76 – 100 of 145)
Revision Date Author Comments
# 5ac5a2f4 04-Jan-2022 Gunnar Mills <gmills@us.ibm.com>

Bump Chassis schema to fix error

https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/48719 added
support for the Chassis SparePartNumber. SparePartNumber was added to
the Chassis schema in v1_16_0

Bump Chassis schema to fix error

https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/48719 added
support for the Chassis SparePartNumber. SparePartNumber was added to
the Chassis schema in v1_16_0 so need to bump the Chassis schema.

Bumped to v1_16_0 instead of the latest (v1_18_0) due to old guidance
from Redfish "only bump the schema if you need to". I.e. only bump if
using some property, etc in the schema. bmcweb has followed this.

The validator flags this as:
ERROR - SparePartNumber not defined in schema Chassis.v1_14_0 (check
version, spelling and casing)

From https://redfish.dmtf.org/schemas/v1/Chassis.v1_18_0.json:
"SparePartNumber": {
"description": "The spare part number of the chassis.",
...
"versionAdded": "v1_16_0"
},

Tested: None yet. WIP.
Change-Id: I31d0bd388c4d9c787276de7b1be3fc95586e8bd2
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# 1e1e598d 11-Jun-2021 Jonathan Doman <jonathan.doman@intel.com>

Using sdbusplus::asio::getProperty

It simplifies a lot of code and after changing sdbusplus implementation
slightly reduces binary size if used together with:

https://gerrit.openbmc-project.xyz/c/o

Using sdbusplus::asio::getProperty

It simplifies a lot of code and after changing sdbusplus implementation
slightly reduces binary size if used together with:

https://gerrit.openbmc-project.xyz/c/openbmc/sdbusplus/+/49467

* Uncompressed size: 3033148 -> 3012164, -20984 B
* gzip compressed size: 1220586 -> 1214625, -5961 B

Tested:
- Redfish validator output is the same before and after the change

Change-Id: Ibe3227d3f4230de2363ba3d9396e51130c8240a5
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>

show more ...


# 168e20c1 13-Dec-2021 Ed Tanous <edtanous@google.com>

Move to common variant

This saves approximately 34kB in the compressed binary size of bmcweb
due to reduced template instantiations. This amounts to a 2.5%
reduction in the overall size.

Note, the

Move to common variant

This saves approximately 34kB in the compressed binary size of bmcweb
due to reduced template instantiations. This amounts to a 2.5%
reduction in the overall size.

Note, there were a few places where we broke const-correctness in the
form of pulling a non-const reference out of a const variant. This
new variant now requires const correctness, so some consts are
added where required.

Tested: Code compiles.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I6a60c8881c1268627eedb4ffddf16689dc5f6ed2

show more ...


# caa11f7a 09-Nov-2021 Alpana Kumari <alpankum@in.ibm.com>

Add Spare Part Number for Chassis

Spare part number field is missing from Chassis URI via Redfish
This commit added that.

Test:
curl -k -H "X-Auth-Token: $bmc_token" -X GET https://${bmc}:${por

Add Spare Part Number for Chassis

Spare part number field is missing from Chassis URI via Redfish
This commit added that.

Test:
curl -k -H "X-Auth-Token: $bmc_token" -X GET https://${bmc}:${port}/redfish/v1/Chassis/chassis
{
"@odata.id": "/redfish/v1/Chassis/chassis",
"@odata.type": "#Chassis.v1_14_0.Chassis",
"Actions": {
"#Chassis.Reset": {
"@Redfish.ActionInfo": "/redfish/v1/Chassis/chassis/ResetActionInfo",
"target": "/redfish/v1/Chassis/chassis/Actions/Chassis.Reset"
}
},
"ChassisType": "RackMount",
"Id": "chassis",
...
"Location": {
"PartLocation": {
"ServiceLabel": "U78DA.ND0.WZS0066"
}
},
"Manufacturer": "",
"Model": "2E2D",
"Name": "chassis",
...
"PartNumber": "03KP024",
...
"PowerState": "Off",
...
"SerialNumber": "YF32UF18C00A",
"SparePartNumber": "02WG677", <-------------------SparePartNumber
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "StandbyOffline"
},

Signed-off-by: Alpana Kumari <alpankum@in.ibm.com>
Change-Id: Ia29c8d76b3c110f150cd7dbaf7937a0bc9922b98

show more ...


# 0fda0f12 15-Nov-2021 George Liu <liuxiwei@inspur.com>

Update clang-format

refer: https://github.com/openbmc/docs/blob/master/style/cpp/.clang-format
`Don't break long string literals`

Tested: built bmcweb successfully and RedfishValidator Passed.

Sig

Update clang-format

refer: https://github.com/openbmc/docs/blob/master/style/cpp/.clang-format
`Don't break long string literals`

Tested: built bmcweb successfully and RedfishValidator Passed.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: Ib58f7c942fd3838592e043c57e0b6ffcdc3d963b

show more ...


# 997093eb 17-Nov-2021 George Liu <liuxiwei@inspur.com>

chassis: Remove boost::ends_with method

The boost::ends_with method should be replaced with
sdbusplus::message::object_path.

Tested:
curl -k https://$bmc/redfish/v1/Chassis/chassis
{
"@odata.id":

chassis: Remove boost::ends_with method

The boost::ends_with method should be replaced with
sdbusplus::message::object_path.

Tested:
curl -k https://$bmc/redfish/v1/Chassis/chassis
{
"@odata.id": "/redfish/v1/Chassis/chassis",
"@odata.type": "#Chassis.v1_14_0.Chassis",
"Actions": {
"#Chassis.Reset": {
"@Redfish.ActionInfo": "/redfish/v1/Chassis/chassis/ResetActionInfo",
"target": "/redfish/v1/Chassis/chassis/Actions/Chassis.Reset"
}
},
"ChassisType": "RackMount",
"Id": "chassis",
"Links": {
"ComputerSystems": [
{
"@odata.id": "/redfish/v1/Systems/system"
}
],
"ManagedBy": [
{
"@odata.id": "/redfish/v1/Managers/bmc"
}
]
},
"Manufacturer": "",
"Model": "23",
"Name": "chassis",
"PCIeDevices": {
"@odata.id": "/redfish/v1/Systems/system/PCIeDevices"
},
"PartNumber": "",
"Power": {
"@odata.id": "/redfish/v1/Chassis/chassis/Power"
},
"PowerState": "Off",
"Sensors": {
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors"
},
"SerialNumber": "",
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "StandbyOffline"
},
"Thermal": {
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal"
}
}

curl -k https://$bmc/redfish/v1/Chassis/chassis15363
{
"error": {
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The requested resource of type #Chassis.v1_14_0.Chassis named chassis15363 was not found.",
"MessageArgs": [
"#Chassis.v1_14_0.Chassis",
"chassis15363"
],
"MessageId": "Base.1.8.1.ResourceNotFound",
"MessageSeverity": "Critical",
"Resolution": "Provide a valid resource identifier and resubmit the request."
}
],
"code": "Base.1.8.1.ResourceNotFound",
"message": "The requested resource of type #Chassis.v1_14_0.Chassis named chassis15363 was not found."
}
}

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: Ieb9e9b02f1d66529e237815610365c33d7d8a079

show more ...


# 308f70c7 28-Sep-2021 Willy Tu <wltu@google.com>

chassis: refactor chassis property to prepare for future support

Move `LocationCode` and `UUID` to a method to cleanup the the main
Chassis handler.

Tested:
RedfishValidator Passed

```
*** /redfis

chassis: refactor chassis property to prepare for future support

Move `LocationCode` and `UUID` to a method to cleanup the the main
Chassis handler.

Tested:
RedfishValidator Passed

```
*** /redfish/v1/Chassis/chassis0
INFO - Type (#Chassis.v1_14_0.Chassis), GET SUCCESS (time: 0.405691)
WARNING - Thermal: The given property is deprecated by revision: This link has been deprecated in favor of the ThermalSubsystem link property.
WARNING - Power: The given property is deprecated by revision: This link has been deprecated in favor of the PowerSubsystem link property.
INFO - PASS
INFO -
...

*** /redfish/v1/Chassis/chassis1
INFO - Type (#Chassis.v1_14_0.Chassis), GET SUCCESS (time: 0.406565)
WARNING - Thermal: The given property is deprecated by revision: This link has been deprecated in favor of the ThermalSubsystem link property.
WARNING - Power: The given property is deprecated by revision: This link has been deprecated in favor of the PowerSubsystem link property.
INFO - PASS
INFO -
*** /redfish/v1/Chassis/chassis1/Sensors
INFO - Type (#SensorCollection.SensorCollection), GET SUCCESS (time: 0.358176)
INFO - PASS
INFO -
*** /redfish/v1/Chassis/chassis1/ResetActionInfo
INFO - Type (#ActionInfo.v1_1_2.ActionInfo), GET SUCCESS (time: 0.369962)
INFO - PASS
...
```

Example,
```
$ curl -u root:0penBmc -X GET http://localhost:3967/redfish/v1/Chassis/chassis1
{
"@odata.id": "/redfish/v1/Chassis/chassis1",
"@odata.type": "#Chassis.v1_14_0.Chassis",
"Actions": {
"#Chassis.Reset": {
"@Redfish.ActionInfo": "/redfish/v1/Chassis/chassis1/ResetActionInfo",
"target": "/redfish/v1/Chassis/chassis1/Actions/Chassis.Reset"
}
},
"ChassisType": "RackMount",
"Id": "chassis1",
"Links": {
"ComputerSystems": [
{
"@odata.id": "/redfish/v1/Systems/system"
}
],
"ManagedBy": [
{
"@odata.id": "/redfish/v1/Managers/bmc"
}
]
},
"Location": {
"PartLocation": {
"ServiceLabel": "PE0"
}
},
"Manufacturer": "manufacturer1",
"Model": "model1",
"Name": "chassis1",
"PCIeDevices": {
"@odata.id": "/redfish/v1/Systems/system/PCIeDevices"
},
"Power": {
"@odata.id": "/redfish/v1/Chassis/chassis1/Power"
},
...
}
```

Change-Id: I7a26530d3d718ce8fbf4182ee565f9fe9d94c5b5
Signed-off-by: Willy Tu <wltu@google.com>

show more ...


# 54fbf177 11-Nov-2021 Andrew Geissler <geissonator@yahoo.com>

reduce error traces in priv and chassis code

These are not error paths so do not log them as errors

Tested:
- None other then CI. Changes are very simple.

Change-Id: I65b99b466ba2d59c304cd80c88c2c

reduce error traces in priv and chassis code

These are not error paths so do not log them as errors

Tested:
- None other then CI. Changes are very simple.

Change-Id: I65b99b466ba2d59c304cd80c88c2c81b940829b9
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>

show more ...


# 476b9cc5 04-Jun-2021 Tejas Patil <tejaspp@ami.com>

Add support for AssetTag in Chassis

This commit adds the GET support for "AssetTag" property
under "/redfish/v1/Chassis/<str>/" Redfish URI.

This property indicates the AssestTag of the Chassis for

Add support for AssetTag in Chassis

This commit adds the GET support for "AssetTag" property
under "/redfish/v1/Chassis/<str>/" Redfish URI.

This property indicates the AssestTag of the Chassis for the
inventory purposes.
As Redfish Service supports for multiple Chassis instances,
so each Chassis instance will have it's own AssetTag, which
can be used to track each chassis for the inventory purposes.

Tested:

- Redfish Validator Test passed.

curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/json" -X GET https://${bmc}/redfish/v1/Chassis/WFP_Baseboard
{
"@odata.id": "/redfish/v1/Chassis/WFP_Baseboard",
"@odata.type": "#Chassis.v1_14_0.Chassis",
"Actions": {
"#Chassis.Reset": {
"@Redfish.ActionInfo": "/redfish/v1/Chassis/WFP_Baseboard/ResetActionInfo",
"target": "/redfish/v1/Chassis/WFP_Baseboard/Actions/Chassis.Reset"
}
},
"AssetTag": "abc",
"ChassisType": "RackMount",
"Id": "WFP_Baseboard",
"IndicatorLED": "Off",
"IndicatorLED@Redfish.AllowableValues": [
"Lit",
"Blinking",
"Off"
],
"Links": {
"ComputerSystems": [
{
"@odata.id": "/redfish/v1/Systems/system"
}
],
"ManagedBy": [
{
"@odata.id": "/redfish/v1/Managers/bmc"
}
]
},
"LocationIndicatorActive": false,
"Manufacturer": "Intel Corporation",
"Model": "S2600WFT",
"Name": "WFP_Baseboard",
"PCIeDevices": {
"@odata.id": "/redfish/v1/Systems/system/PCIeDevices"
},
"PartNumber": "..........",
"Power": {
"@odata.id": "/redfish/v1/Chassis/WFP_Baseboard/Power"
},
"PowerState": "On",
"Sensors": {
"@odata.id": "/redfish/v1/Chassis/WFP_Baseboard/Sensors"
},
"SerialNumber": "............",
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "Enabled"
},
"Thermal": {
"@odata.id": "/redfish/v1/Chassis/WFP_Baseboard/Thermal"
}
}

Signed-off-by: Tejas Patil <tejaspp@ami.com>
Change-Id: I2b0808fcc29057e352581f018ef55564597c7456

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 ...


# 0256b694 11-Jun-2021 zhanghch05 <zhanghch05@inspur.com>

Add compile flag to turn off the old Power/Thermal

The compile flag should initially be enable(allowing the old
Power/Thermal). At a later date,we can move this flag to
defaulted off. At an even lat

Add compile flag to turn off the old Power/Thermal

The compile flag should initially be enable(allowing the old
Power/Thermal). At a later date,we can move this flag to
defaulted off. At an even later date we can remove the old
Power/Thermal implementation.

Test:
1. Validator passed.
2.The default value is enable, so old Power/Thermal can be used
normally.Use the curl commond, old Power/Thermal still exists.
~$ curl -i -k -H "X-Auth-Token: $token" -X GET
"https://${bmc}/redfish/v1/Chassis/chassis"
{
"@odata.id": "/redfish/v1/Chassis/chassis",
"@odata.type": "#Chassis.v1_15_0.Chassis",
"Actions": {
"#Chassis.Reset": {
"@Redfish.ActionInfo": "/redfish/v1/Chassis/chassis/ResetActionInfo",
"target": "/redfish/v1/Chassis/chassis/Actions/Chassis.Reset"
}
},
"ChassisType": "RackMount",
"Id": "chassis",
"Links": {
"ComputerSystems": [
{
"@odata.id": "/redfish/v1/Systems/system"
}
],
"ManagedBy": [
{
"@odata.id": "/redfish/v1/Managers/bmc"
}
]
},
"Name": "chassis",
"PCIeDevices": {
"@odata.id": "/redfish/v1/Systems/system/PCIeDevices"
},
"PCIeSlots": {
"@odata.id": "/redfish/v1/Chassis/chassis/PCIeSlots"
},
"Power": {
"@odata.id": "/redfish/v1/Chassis/chassis/Power"
},
"PowerState": "Off",
"PowerSubsystem": {
"@odata.id": "/redfish/v1/Chassis/chassis/PowerSubsystem"
},
"Sensors": {
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors"
},
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "StandbyOffline"
},
"Thermal": {
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal"
}
}

Signed-off-by: zhanghaicheng <zhanghch05@inspur.com>
Change-Id: Id3556c18dc6aac95fd5aa02cdf2983378c01fb68

show more ...


# 432a890c 14-Jun-2021 Ed Tanous <edtanous@google.com>

Remove ambiguous privileges constructor

There are a number of endpoints that assume that a given routes
privileges are governed by a single set of privileges, instead of
multiple sets ORed together.

Remove ambiguous privileges constructor

There are a number of endpoints that assume that a given routes
privileges are governed by a single set of privileges, instead of
multiple sets ORed together. To handle this, there were two overloads
of the privileges() method, one that took a vector of Privileges, and
one that took an initializer_list of const char*. Unfortunately, this
leads some code in AccountService to pick the wrong overload when it's
called like this
.privileges( {{"ConfigureUsers"}, {"ConfigureManager"},
{"ConfigureSelf"}})

This is supposed to be "User must have ConfigureUsers, or
ConfigureManager, or ConfigureSelf". Currently, because it selects the
wrong overload, it computes to "User must have ConfigureUsers AND
ConfigureManager AND ConfigureSelf.

The double braces are supposed to cause this to form a vector of
Privileges, but it appears that the initializer list gets consumed, and
the single invocation of initializer list is called. Interestingly,
trying to put in a privileges overload of
intializer_list<initializer_list<const char*>> causes the compilation to
fail with an ambiguous call error, which is what I would've expected to
see previously in this case, but alas, I'm only a novice when it comes
to how the C++ standard works in these edge cases. This is likely due
in part to the fact that they were templates of an unused template param
(seemingly copied from the previous method) and SFINAE rules around
templates.

This commit functionally removes one of the privileges overloads, and
adds a second set of braces to every privileges call that previously had
a single set of braces. Previous code will not compile now, which is
IMO a good thing.

This likely popped up in the Node class removal, because the Node class
explicitly constructs a vector of Privilege objects, ensuing it can hit
the right overload

Tested:
Ran Redfish service validator

Tested the specific use case outlined on discord with:
Creating a new user with operator privilege:
```
redfishtool -S Always -u root -p 0penBmc -vvvvvvvvv -r 192.168.7.2
AccountService adduser foo mysuperPass1 Operator
```

Then attempting to list accounts:
```
curl -vvvv --insecure --user foo:mysuperPass1
https://192.168.7.2/redfish/v1/AccountService/Accounts/foo
```

Which succeeded and returned the account in question.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I83e62b70e97f56dc57d43b9081f333a02fe85495

show more ...


# 2c37b4b0 10-May-2021 Sharad Yadav <sharady@nvidia.com>

Chassis: Add UUID property

This commit adds the support for implementing the "UUID" property
as defined in the Redfish Chassis schema.

UUID will enable further platform/board specific monitoring an

Chassis: Add UUID property

This commit adds the support for implementing the "UUID" property
as defined in the Redfish Chassis schema.

UUID will enable further platform/board specific monitoring and control.

Redfish validator passed.

Tested:
$ curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/json"
-X GET https://${bmc}/redfish/v1/Chassis/GPU1
{
"@odata.id": "/redfish/v1/Chassis/GPU1",
"@odata.type": "#Chassis.v1_14_0.Chassis",
"Id": "GPU1",
"Name": "GPU1",
"UUID": "7b6e8e55-f0d5-4a9f-84a3-61635a3bc232"
}

Signed-off-by: Sharad Yadav <sharady@nvidia.com>
Change-Id: If73b424e171629b8ebb9b68cc81aadf841813a58

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 ...


# ffed87b5 26-Apr-2021 Ed Tanous <edtanous@google.com>

Fix chassis handler to use filename()

A common anti pattern is using endswith or contains. This got
compounded recently because of https://github.com/openbmc/sdbusplus/issues/60
where filename now

Fix chassis handler to use filename()

A common anti pattern is using endswith or contains. This got
compounded recently because of https://github.com/openbmc/sdbusplus/issues/60
where filename now contains decoding logic.

This at least should fix the issue to make the Redfish tree walkable
again.

Tested:
Loaded up a WFP_Baseboard on qemu, and verified that
/redfish/v1/Chassis/WFP_Baseboard traversed correctly.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I55cc389a773e4b594668a4bca466efc33cc9cb7c

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 ...


# 88ad7f03 03-Dec-2020 SunnySrivastava1984 <sunnsr25@in.ibm.com>

Chassis Location property on bmcweb

This commit implements change to publish LocationCode property
for Chassis on bmcweb.
Location code of Motherboard FRU is published via chassis schema.

LocationC

Chassis Location property on bmcweb

This commit implements change to publish LocationCode property
for Chassis on bmcweb.
Location code of Motherboard FRU is published via chassis schema.

LocationCode, a free form, implementation-defined string
to provide the location. This is needed so an implementation can
identify the FRU via system diagrams.

Validator has been executed and no new error has been found.

Sample output:
{
"@odata.id": "/redfish/v1/Chassis/chassis",
"@odata.type": "#Chassis.v1_14_0.Chassis",
"Actions": {
"#Chassis.Reset": {
"@Redfish.ActionInfo": "/redfish/v1/Chassis/chassis/ResetActionInfo",
"target": "/redfish/v1/Chassis/chassis/Actions/Chassis.Reset"
}
},
"ChassisType": "RackMount",
"Id": "chassis",
"Links": {
"ComputerSystems": [
{
"@odata.id": "/redfish/v1/Systems/system"
}
],
"ManagedBy": [
{
"@odata.id": "/redfish/v1/Managers/bmc"
}
]
},
"Location": {
"PartLocation": {
"ServiceLabel": "U78DA.ND1.1234567"
}
},
"Manufacturer": "",
"Model": "",
"Name": "chassis",
"PCIeDevices": {
"@odata.id": "/redfish/v1/Systems/system/PCIeDevices"
},
"PartNumber": "PN12345",
"Power": {
"@odata.id": "/redfish/v1/Chassis/chassis/Power"
},
"PowerState": "Off",
"Sensors": {
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors"
},
"SerialNumber": "BBBE2D010000",
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "StandbyOffline"
},
"Thermal": {
"@odata.id": "/redfish/v1/Chassis/chassis/Thermal"
}
}

Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
Change-Id: Ib248b79156e8b04664e89e37bae49d4574e97086

show more ...


# d6aa0093 25-Nov-2020 Gunnar Mills <gmills@us.ibm.com>

IndicatorLED: Add a deprecated warning header

Added a warning header when IndicatorLED is patched telling the
client it is deprecated and pointing to LocationIndicatorActive.

Used the warning synta

IndicatorLED: Add a deprecated warning header

Added a warning header when IndicatorLED is patched telling the
client it is deprecated and pointing to LocationIndicatorActive.

Used the warning syntax from
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Warning

Tested: curl -X PATCH -v -d '{ "IndicatorLED":"Off"}' \
-k https://$bmc/redfish/v1/Systems/system
...
< HTTP/1.1 204 No Content
< Warning: 299 - "IndicatorLED is deprecated. Use LocationIndicatorActive instead."
< Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
< X-Frame-Options: DENY

Change-Id: Ic25a02508b0a1bcada1fa71ffa413c493fad00c4
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# 9f8bfa7c 28-Sep-2020 Gunnar Mills <gmills@us.ibm.com>

Add new Location Indicator property

In ComputerSystem 1.13 and Chassis 1.14 as well as in many other
schemas IndicatorLED is replaced with LocationIndicatorActive.

LocationIndicatorActive is a bool

Add new Location Indicator property

In ComputerSystem 1.13 and Chassis 1.14 as well as in many other
schemas IndicatorLED is replaced with LocationIndicatorActive.

LocationIndicatorActive is a bool while IndicatorLED had 3 states:
Lit, Blink, and off. Map Lit and Blink both to
LocationIndicatorActive true.

led.hpp was calling both enclosure_identify_blink and
enclosure_identify, continue this.

Keep the deprecated IndicatorLED and implement the new
LocationIndicatorActive property. Have both properties for
the time being. This new property makes the same calls.

This does add a new Redfish warning for the deprecated
IndicatorLED. Other warning are there today.

Tested: Validator passes
Could use help testing on Chassis. Our systems don't have a
IndicatorLED on chassis. See chassis bumped.
curl -k https://$bmc/redfish/v1/Systems/system
{
"@odata.id": "/redfish/v1/Systems/system",
"@odata.type": "#ComputerSystem.v1_13_0.ComputerSystem",
...
"IndicatorLED": "Off",
"LastResetTime": "2020-10-29T09:01:03+00:00",
"Links": {
"Chassis": [
{
"@odata.id": "/redfish/v1/Chassis/chassis"
}
],
"ManagedBy": [
{
"@odata.id": "/redfish/v1/Managers/bmc"
}
]
},
"LocationIndicatorActive": false,

curl -X PATCH -d '{ "LocationIndicatorActive":true}' -k \
https://$bmc/redfish/v1/Systems/system

curl -X PATCH -d '{ "IndicatorLED":"Off"}' -k \
https://$bmc/redfish/v1/Systems/system

Change-Id: I105bed5794912c575aa9a00e0442461bfdee6180
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# f23b7296 15-Oct-2020 Ed Tanous <ed@tanous.net>

Turn on ALL perf checks

1st, alphabetize the tidy-list for good housekeeping.

Next, enable all the clang-tidy performance checks, and resolve all the
issues. most of the issues boil down to:
1. Us

Turn on ALL perf checks

1st, alphabetize the tidy-list for good housekeeping.

Next, enable all the clang-tidy performance checks, and resolve all the
issues. most of the issues boil down to:
1. Using std::move on const variables. This does nothing.
2. Passing big variables (like std::string) by value.
3. Using double quotes on a find call, which constructs an intermediate
string, rather than using the character overload.

Tested
Loaded on system, logged in successfully and pulled down webui-vue. No
new errors.

Walked the Redfish tree a bit, and observed no new problems.

Ran redfish service validator. Got no new failures (although there are
a lot of log service deprecation warnings that we should look at).

Signed-off-by: Ed Tanous <ed@tanous.net>
Change-Id: I2238958c4b22c1e554e09a0a1787c744bdbca43e

show more ...


# 02f6ff19 14-Oct-2020 Gunnar Mills <gmills@us.ibm.com>

Chassis Collection: Use getCollectionMembers

Improves code reuse.

Tested: Validator passes.
curl -k https://$bmc/redfish/v1/Chassis/
{
"@odata.id": "/redfish/v1/Chassis",
"@odata.type": "#Chass

Chassis Collection: Use getCollectionMembers

Improves code reuse.

Tested: Validator passes.
curl -k https://$bmc/redfish/v1/Chassis/
{
"@odata.id": "/redfish/v1/Chassis",
"@odata.type": "#ChassisCollection.ChassisCollection",
"Members": [
{
"@odata.id": "/redfish/v1/Chassis/chassis"
},
{
"@odata.id": "/redfish/v1/Chassis/motherboard"
}
],
"Members@odata.count": 2,
"Name": "Chassis Collection"

Change-Id: Ie26f93faec9498124ab1d5747aed8300414b6d96
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


# c3b3c92a 23-Sep-2020 Vijay Khemka <vijaykhemka@fb.com>

Update Chassis power cycle support

Updated chassis power cycle support via redfish which will allow user to
remove AC power of chassis and restore it back ungracefully if
chassis_system0 interface i

Update Chassis power cycle support

Updated chassis power cycle support via redfish which will allow user to
remove AC power of chassis and restore it back ungracefully if
chassis_system0 interface is supported.

Tested: verified with following command
curl -g -k -H "X-Auth-Token: $token"
https://${bmc}/redfish/v1/Chassis/TiogaPass_Baseboard/Actions/Chassis.Reset
-d '{"ResetType": "PowerCycle"}'

Signed-off-by: Vijay Khemka <vijaykhemka@fb.com>
Change-Id: I5368dbcdf96e526009cb3904b04791430bfeb413

show more ...


# b5a76932 29-Sep-2020 Ed Tanous <ed@tanous.net>

Lots of performance improvements

(In the voice of the kid from sixth sense) I see string copies...

Apparently there are a lot of places we make unnecessary copies. This
fixes all of them.

Not sure

Lots of performance improvements

(In the voice of the kid from sixth sense) I see string copies...

Apparently there are a lot of places we make unnecessary copies. This
fixes all of them.

Not sure how to split this up into smaller patches, or if it even needs
split up. It seems pretty easy to review to me, because basically every
diff is identical.

Change-Id: I22b4ae4f96f7e4082d2bc701098a04f7bed95369
Signed-off-by: Ed Tanous <ed@tanous.net>
Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>

show more ...


# 4841191f 11-Sep-2020 Wludzik, Jozef <jozef.wludzik@intel.com>

Response with internal error on invalid Chassis path

Added verification of chassis path in case if received path is
invalid. Response with internal error on wrong format of a path.

Tested:
- Verif

Response with internal error on invalid Chassis path

Added verification of chassis path in case if received path is
invalid. Response with internal error on wrong format of a path.

Tested:
- Verify if chassis collection is filled properly
- Verify if internal error is returned on wrong path
- RedfishServiceValidator.py passes

Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
Change-Id: Ibe2b9a12d0a5c2c05c9db502b65d2196851352b5

show more ...


# 90728b54 19-Aug-2020 Ed Tanous <ed@tanous.net>

Fix minor regression in chassis

Despite error code checking generally being a good thing, this seems to
cause a regression on systems that don't have an asset interface.

See https://gerrit.openbmc-

Fix minor regression in chassis

Despite error code checking generally being a good thing, this seems to
cause a regression on systems that don't have an asset interface.

See https://gerrit.openbmc-project.xyz/c/openbmc/meta-phosphor/+/35711

for more details

Tested:
Expecting CI to test, as it was the one that found the last corner case.

Signed-off-by: Ed Tanous <ed@tanous.net>
Change-Id: Iae013b1d240852908dd5b0107aad8a0089b5961e

show more ...


123456