Use getAssetInfo util function
This commit is to use getAssetInfo utility function for GET AssetInfo in
various places like
- Chassis
- FabricAdapter
This will also include `Manufacturer` property if available on dbus.
- Fan
- PCIeDevice
- PowerSupply
- Storage
- System
Tested:
- GET the above schemas
- Redfish Service Validator passes
Change-Id: I9d01d583212fe4916d5fdd144d2b8e52ad865d16
Signed-off-by: Myung Bae <myungbae@us.ibm.com>
diff --git a/redfish-core/lib/fabric_adapters.hpp b/redfish-core/lib/fabric_adapters.hpp
index 532da5f..7d20302 100644
--- a/redfish-core/lib/fabric_adapters.hpp
+++ b/redfish-core/lib/fabric_adapters.hpp
@@ -14,6 +14,7 @@
#include "logging.hpp"
#include "query.hpp"
#include "registries/privilege_registry.hpp"
+#include "utils/asset_utils.hpp"
#include "utils/collection.hpp"
#include "utils/dbus_utils.hpp"
#include "utils/json_utils.hpp"
@@ -62,64 +63,6 @@
});
}
-inline void getFabricAdapterAsset(
- const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
- const std::string& serviceName, const std::string& fabricAdapterPath)
-{
- dbus::utility::getAllProperties(
- serviceName, fabricAdapterPath,
- "xyz.openbmc_project.Inventory.Decorator.Asset",
- [fabricAdapterPath, asyncResp{asyncResp}](
- const boost::system::error_code& ec,
- const dbus::utility::DBusPropertiesMap& propertiesList) {
- if (ec)
- {
- if (ec.value() != EBADR)
- {
- BMCWEB_LOG_ERROR("DBUS response error for Properties");
- messages::internalError(asyncResp->res);
- }
- return;
- }
-
- const std::string* serialNumber = nullptr;
- const std::string* model = nullptr;
- const std::string* partNumber = nullptr;
- const std::string* sparePartNumber = nullptr;
-
- const bool success = sdbusplus::unpackPropertiesNoThrow(
- dbus_utils::UnpackErrorPrinter(), propertiesList,
- "SerialNumber", serialNumber, "Model", model, "PartNumber",
- partNumber, "SparePartNumber", sparePartNumber);
-
- if (!success)
- {
- messages::internalError(asyncResp->res);
- return;
- }
-
- if (serialNumber != nullptr)
- {
- asyncResp->res.jsonValue["SerialNumber"] = *serialNumber;
- }
-
- if (model != nullptr)
- {
- asyncResp->res.jsonValue["Model"] = *model;
- }
-
- if (partNumber != nullptr)
- {
- asyncResp->res.jsonValue["PartNumber"] = *partNumber;
- }
-
- if (sparePartNumber != nullptr && !sparePartNumber->empty())
- {
- asyncResp->res.jsonValue["SparePartNumber"] = *sparePartNumber;
- }
- });
-}
-
inline void getFabricAdapterState(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& serviceName, const std::string& fabricAdapterPath)
@@ -196,7 +139,8 @@
systemName, adapterId);
getFabricAdapterLocation(asyncResp, serviceName, fabricAdapterPath);
- getFabricAdapterAsset(asyncResp, serviceName, fabricAdapterPath);
+ asset_utils::getAssetInfo(asyncResp, serviceName, fabricAdapterPath,
+ ""_json_pointer, true);
getFabricAdapterState(asyncResp, serviceName, fabricAdapterPath);
getFabricAdapterHealth(asyncResp, serviceName, fabricAdapterPath);
getLocationIndicatorActive(asyncResp, fabricAdapterPath);