From 6e1484623c46ea69eb4a3bbe913dd2e200ebbf25 Mon Sep 17 00:00:00 2001 From: Cheng C Yang Date: Thu, 10 Oct 2019 23:27:13 +0800 Subject: Use the properties in Inventory Asset Use partNumber, SerialNumber and Manufacturer in Inventory/Decorator/Asset instead of Inventory/Item/Dimm Tested: In https://BMC_IP/redfish/v1/Systems/system/Memory/dimm2 PartNumber, SerialNumber and Manufacturer should show as { "@odata.context": "/redfish/v1/$metadata#Memory.Memory", "@odata.id": "/redfish/v1/Systems/system/Memory/dimm2", "@odata.type": "#Memory.v1_6_0.Memory", "CapacityMiB": 16384, "DataWidthBits": 64, "Id": "dimm2", "Manufacturer": "Samsung", "MemoryDeviceType": "DDR4", "MemoryType": "DRAM", "Name": "DIMM Slot", "PartNumber": "M393A2G40DB0-CPB ", "SerialNumber": "0209718C", "Status": { "Health": "OK", "State": "Enabled" } Change-Id: I029bf90f99999943d48ddeb94e7dc955e410c928 Signed-off-by: Cheng C Yang --- services/smbios-mdrv2/include/dimm.hpp | 17 ++++++++++++----- services/smbios-mdrv2/src/dimm.cpp | 24 ++++++++++++------------ 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/services/smbios-mdrv2/include/dimm.hpp b/services/smbios-mdrv2/include/dimm.hpp index 05131f5..45a71d7 100644 --- a/services/smbios-mdrv2/include/dimm.hpp +++ b/services/smbios-mdrv2/include/dimm.hpp @@ -17,6 +17,7 @@ #pragma once #include "smbios_mdrv2.hpp" +#include #include namespace phosphor @@ -25,8 +26,11 @@ namespace phosphor namespace smbios { -class Dimm : sdbusplus::server::object::object< - sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm> +class Dimm + : sdbusplus::server::object::object< + sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm>, + sdbusplus::server::object::object< + sdbusplus::xyz::openbmc_project::Inventory::Decorator::server::Asset> { public: Dimm() = delete; @@ -42,6 +46,9 @@ class Dimm : sdbusplus::server::object::object< sdbusplus::server::object::object< sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm>( bus, objPath.c_str()), + sdbusplus::server::object::object< + sdbusplus::xyz::openbmc_project::Inventory::Decorator::server:: + Asset>(bus, objPath.c_str()), dimmNum(dimmId), storage(smbiosTableStorage) { memoryInfoUpdate(); @@ -55,9 +62,9 @@ class Dimm : sdbusplus::server::object::object< std::string memoryType(std::string value) override; std::string memoryTypeDetail(std::string value) override; uint16_t memorySpeed(uint16_t value) override; - std::string memoryManufacturer(std::string value) override; - std::string memorySerialNum(std::string value) override; - std::string memoryPartNum(std::string value) override; + std::string manufacturer(std::string value) override; + std::string serialNumber(std::string value) override; + std::string partNumber(std::string value) override; uint8_t memoryAttributes(uint8_t value) override; uint16_t memoryConfClockSpeed(uint16_t value) override; diff --git a/services/smbios-mdrv2/src/dimm.cpp b/services/smbios-mdrv2/src/dimm.cpp index e8c891d..fdd7ca7 100644 --- a/services/smbios-mdrv2/src/dimm.cpp +++ b/services/smbios-mdrv2/src/dimm.cpp @@ -169,13 +169,13 @@ void Dimm::dimmManufacturer(const uint8_t positionNum, const uint8_t structLen, { std::string result = positionToString(positionNum, structLen, dataIn); - memoryManufacturer(result); + manufacturer(result); } -std::string Dimm::memoryManufacturer(std::string value) +std::string Dimm::manufacturer(std::string value) { - return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm:: - memoryManufacturer(value); + return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server:: + Asset::manufacturer(value); } void Dimm::dimmSerialNum(const uint8_t positionNum, const uint8_t structLen, @@ -183,13 +183,13 @@ void Dimm::dimmSerialNum(const uint8_t positionNum, const uint8_t structLen, { std::string result = positionToString(positionNum, structLen, dataIn); - memorySerialNum(result); + serialNumber(result); } -std::string Dimm::memorySerialNum(std::string value) +std::string Dimm::serialNumber(std::string value) { - return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm:: - memorySerialNum(value); + return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server:: + Asset::serialNumber(value); } void Dimm::dimmPartNum(const uint8_t positionNum, const uint8_t structLen, @@ -197,13 +197,13 @@ void Dimm::dimmPartNum(const uint8_t positionNum, const uint8_t structLen, { std::string result = positionToString(positionNum, structLen, dataIn); - memoryPartNum(result); + partNumber(result); } -std::string Dimm::memoryPartNum(std::string value) +std::string Dimm::partNumber(std::string value) { - return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm:: - memoryPartNum(value); + return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server:: + Asset::partNumber(value); } uint8_t Dimm::memoryAttributes(uint8_t value) -- cgit v1.2.3