Chassis: Power: Support get PowerSupply and Voltages
sensors information.

cherry-picked from:
 https://github.com/ampere-openbmc/bmcweb/commit/a20f8b17c1efb92b9a8e95e8867d945bc6177804

Sensor module adds sensorType:"power" to retrieve power supply sensor
information.
This applicable to Power schema version 1.2.1

Limit:
- Not retrieve PowerControl information yet.
- Need to get UpperThresholdFatal and LowerThresholdFatal value.

Tested: Browser and redfishtool
Command test: redfishtool -A Basic -S Always --rhost=$bmc_ip -u
$bmc_user -p $bmc_password Chassis -I 1 Power

Redmine ID: #2145.

Change-Id: Ifd4a7495c216f894f46610c02d3e8a8e3988dfaa
Signed-off-by: Tung Vu <tung.vu@amperecomputing.com>

Chassis: Thermal and Power: Correct @odata.id information

cherry-picked from:
 https://github.com/ampere-openbmc/bmcweb/commit/ae95b0db60e5e680819c9f9b0c6d61caf66b14cf

Allocate @odata.id of schema in correct way.
Sensor module is general interface not used for specific schema.

Tested: Browser and redfishtool
Command test:
- redfishtool -A Basic -S Always --rhost=$bmc_ip -u $bmc_user -p
  $bmc_password Chassis -I 1 Power
- redfishtool -A Basic -S Always --rhost=$bmc_ip -u $bmc_user -p
  $bmc_password Chassis -I 1 Thermal

Redmine ID: #2145 & #2146

Change-Id: I265bbb366c323f39fb6d4ac4f7cccfed4382e98d
Signed-off-by: Tung Vu <tung.vu@amperecomputing.com>

Chassis: Correct @odata.id for specific Chassis sub-node.

cherry-picked from:
 https://github.com/ampere-openbmc/bmcweb/commit/3eaa53a395ad9275042893413cbefc78f52310e5

Currently there are Thermal and Power sub-nodes of Chassis node, correct
@odata.id information for each sub-node in JSON payload.

Tested: Browser and redfishtool
Command test:
- redfishtool -A Basic -S Always --rhost=$bmc_ip -u $bmc_user -p
  $bmc_password Chassis Thermal -I 1
- redfishtool -A Basic -S Always --rhost=$bmc_ip -u $bmc_user -p
  $bmc_password Chassis Power -I 1

Change-Id: I2f831ed40926e85c0b6d1cfa7d759eb0b9321daa
Signed-off-by: Tung Vu <tung.vu@amperecomputing.com>
Signed-off-by: Jennifer Lee <jennifer1.lee@intel.com>
diff --git a/redfish-core/lib/thermal.hpp b/redfish-core/lib/thermal.hpp
index 0f4e840..cbc45e1 100644
--- a/redfish-core/lib/thermal.hpp
+++ b/redfish-core/lib/thermal.hpp
@@ -54,13 +54,21 @@
         const std::string& chassisName = params[0];
 
         res.jsonValue = Node::json;
-        auto asyncResp = std::make_shared<SensorsAsyncResp>(
+
+        Node::json["@odata.id"] =
+            "/redfish/v1/Chassis/" + chassisName + "/Thermal";
+
+        res.jsonValue = Node::json;
+        auto sensorAsyncResp = std::make_shared<SensorsAsyncResp>(
             res, chassisName,
             std::initializer_list<const char*>{
                 "/xyz/openbmc_project/sensors/fan",
                 "/xyz/openbmc_project/sensors/temperature",
-                "/xyz/openbmc_project/sensors/fan_pwm"});
-        getChassisData(asyncResp);
+                "/xyz/openbmc_project/sensors/fan_pwm"},
+            "Thermal");
+
+        // TODO Need to get Chassis Redundancy information.
+        getChassisData(sensorAsyncResp);
     }
 };