diff options
author | Krzysztof Grobelny <krzysztof.grobelny@intel.com> | 2022-08-29 15:49:20 +0300 |
---|---|---|
committer | Krzysztof Grobelny <krzysztof.grobelny@intel.com> | 2022-08-29 16:01:38 +0300 |
commit | 86d89ed7ad605b0f7dbe2c11200363fd34c6364c (patch) | |
tree | f4389b3a6ec1343ee6fc552efb1fbf70260e1a2b /redfish-core/lib/sensors.hpp | |
parent | 9b12d1f9b0cfe4f7f5cf62a3439bbd24a2c08587 (diff) | |
download | bmcweb-86d89ed7ad605b0f7dbe2c11200363fd34c6364c.tar.xz |
used sdbusplus::unpackPropertiesNoThrow part 5
used sdbusplus::unpackPropertiesNoThrow in chassis.hpp and sensors.hpp,
also replaced all usages of "GetAll" with
sdbusplus::asio::getAllProperties
bmcweb size: 2701720 -> 2697624 (-4096)
compressed size: 1131481 -> 1129725 (-1756)
Tested:
Performed get on:
- /redfish/v1/Chassis/chassis
- /redfish/v1/Chassis/chassis/Thermal
Get result before and after the change was in same format.
Change-Id: I76377710cd037f7c54cb0639c011b64c73a719ab
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
Diffstat (limited to 'redfish-core/lib/sensors.hpp')
-rw-r--r-- | redfish-core/lib/sensors.hpp | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/redfish-core/lib/sensors.hpp b/redfish-core/lib/sensors.hpp index aa48e0d735..2b1a3c8fba 100644 --- a/redfish-core/lib/sensors.hpp +++ b/redfish-core/lib/sensors.hpp @@ -24,6 +24,8 @@ #include <query.hpp> #include <registries/privilege_registry.hpp> #include <sdbusplus/asio/property.hpp> +#include <sdbusplus/unpack_properties.hpp> +#include <utils/dbus_utils.hpp> #include <utils/json_utils.hpp> #include <utils/query_param.hpp> @@ -1122,47 +1124,43 @@ inline void populateFanRedundancy( { return; } - crow::connections::systemBus->async_method_call( + sdbusplus::asio::getAllProperties( + *crow::connections::systemBus, owner, path, + "xyz.openbmc_project.Control.FanRedundancy", [path, sensorsAsyncResp]( const boost::system::error_code& err, - const std::map<std::string, - dbus::utility::DbusVariantType>& ret) { + const dbus::utility::DBusPropertiesMap& ret) { if (err) { return; // don't have to have this // interface } - auto findFailures = ret.find("AllowedFailures"); - auto findCollection = ret.find("Collection"); - auto findStatus = ret.find("Status"); - if (findFailures == ret.end() || - findCollection == ret.end() || findStatus == ret.end()) + const uint8_t* allowedFailures = nullptr; + const std::vector<std::string>* collection = nullptr; + const std::string* status = nullptr; + + const bool success = sdbusplus::unpackPropertiesNoThrow( + dbus_utils::UnpackErrorPrinter(), ret, + "AllowedFailures", allowedFailures, "Collection", + collection, "Status", status); + + if (!success) { - BMCWEB_LOG_ERROR << "Invalid redundancy interface"; messages::internalError( sensorsAsyncResp->asyncResp->res); return; } - const uint8_t* allowedFailures = - std::get_if<uint8_t>(&(findFailures->second)); - const std::vector<std::string>* collection = - std::get_if<std::vector<std::string>>( - &(findCollection->second)); - const std::string* status = - std::get_if<std::string>(&(findStatus->second)); - if (allowedFailures == nullptr || collection == nullptr || status == nullptr) { - - BMCWEB_LOG_ERROR - << "Invalid redundancy interface types"; + BMCWEB_LOG_ERROR << "Invalid redundancy interface"; messages::internalError( sensorsAsyncResp->asyncResp->res); return; } + sdbusplus::message::object_path objectPath(path); std::string name = objectPath.filename(); if (name.empty()) @@ -1247,9 +1245,7 @@ inline void populateFanRedundancy( redundancy["Status"]["State"] = "Enabled"; jResp.push_back(std::move(redundancy)); - }, - owner, path, "org.freedesktop.DBus.Properties", "GetAll", - "xyz.openbmc_project.Control.FanRedundancy"); + }); }); } }, |