summaryrefslogtreecommitdiff
path: root/redfish-core/lib/sensors.hpp
diff options
context:
space:
mode:
authorKrzysztof Grobelny <krzysztof.grobelny@intel.com>2022-08-29 15:49:20 +0300
committerKrzysztof Grobelny <krzysztof.grobelny@intel.com>2022-08-29 16:01:38 +0300
commit86d89ed7ad605b0f7dbe2c11200363fd34c6364c (patch)
treef4389b3a6ec1343ee6fc552efb1fbf70260e1a2b /redfish-core/lib/sensors.hpp
parent9b12d1f9b0cfe4f7f5cf62a3439bbd24a2c08587 (diff)
downloadbmcweb-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.hpp42
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");
+ });
});
}
},