openbmc / openbmc-test-automation

Apache License 2.0
104 stars 92 forks source link

redfish chassis Power object path incorrectly assumed with REDFISH_CHASSIS_POWER in data/variables.py #2164

Closed generatz closed 2 years ago

generatz commented 2 years ago

The redfish/systems/test_systems_inventory.robot suite (and elsewhere) depends on the parameter setting REDFISH_CHASSIS_POWER = 'chassis/Power/' (found in the file data/variables.py) to incorrectly synthesize the assumed fixed object path /redfish/v1/Chassis/chassis/Power/ (using REDFISH_CHASSIS_POWER_URI = REDFISH_CHASSIS_URI + REDFISH_CHASSIS_POWER).

Instead, the path should be obtained by querying /redfish/v1/Chassis/. By way of example, this DTMF mockup uses the path /redfish/v1/Chassis/1U/Power/

As a temporary workaround for the DMTF example above, one could pass this corrected object path parameter on the robot CL: -v REDFISH_CHASSIS_POWER_URI:'/redfish/v1/Chassis/1U/Power/'

Note: these two parameters and their products also share the corresponding problem: REDFISH_CHASSIS_THERMAL REDFISH_CHASSIS_SENSORS

gkeishin commented 2 years ago

These are a bit problematic areas and those ID could change from implementation in OpenBMC stack. something we know from the start but has not made any progress or effort at the moment.

gkeishin commented 2 years ago

Let's break them down into smaller ones and see if we can address them:

REDFISH_CHASSIS_THERMAL

systest/collection/bmc_collect_sensors.robot and systest/collection/bmc_collect_vpd_and_hw_status.robot ( can't change this right away, it will need the test to revamp the suite due to REST + Redfish mix of support)

redfish/systems/test_led_indicator_asserted.robot - This cant be changed without changing the LED and redfish. The original test developer probably needs to update..

data/variables.py:REDFISH_CHASSIS_THERMAL = 'chassis/Thermal/'
data/variables.py:REDFISH_CHASSIS_THERMAL_URI = REDFISH_CHASSIS_URI + REDFISH_CHASSIS_THERMAL
openpower/check_vpd_and_hw_status.robot:    ${system_fans_info}=  Redfish_Utils.Get Attribute  ${REDFISH_CHASSIS_THERMAL_URI}  Fans
redfish/systems/test_led_indicator_asserted.robot:    ${fans}=  Redfish.Get Attribute  ${REDFISH_CHASSIS_THERMAL_URI}  Fans
systest/collection/bmc_collect_sensors.robot:    ${redfish_chassis_thermal}=  Redfish_Utils.Enumerate Request  ${REDFISH_CHASSIS_THERMAL_URI}  ${0}
systest/collection/bmc_collect_vpd_and_hw_status.robot:    ${system_fans_info}=  Redfish_Utils.Get Attribute  ${REDFISH_CHASSIS_THERMAL_URI}  Fans

REDFISH_CHASSIS_SENSORS systest/collection/bmc_collect_sensors.robot ( can't change this right away, it will need the test to revamp the suite due to REST + Redfish mix of support)

data/variables.py:REDFISH_CHASSIS_SENSORS = 'chassis/Sensors'
data/variables.py:REDFISH_CHASSIS_SENSORS_URI = REDFISH_CHASSIS_URI + REDFISH_CHASSIS_SENSORS
systest/collection/bmc_collect_sensors.robot:    ${redfish_chassis_sensors}=  Redfish_Utils.Enumerate Request  ${REDFISH_CHASSIS_SENSORS_URI}  ${0}
gkeishin commented 2 years ago

The only I can see which can be fixed is

https://gerrit.openbmc-project.xyz/c/openbmc/openbmc-test-automation/+/51520

@generatz , Please skip the remaining test in those list until someone in the community fixes those in general

gkeishin commented 2 years ago

As for those variables in data/variables.py, we will eventually remove those hardcoded one and keep ONLY the top level