Add lifetime property for drives interface
This will set the lifetime property when the eStoraged object is
created. This change does not expect the lifetime to change.
Tested:
busctl introspect xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/inventory/storage/mmcblk0
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
xyz.openbmc_project.Inventory.Item.Drive interface - - -
.Capacity property t (top secret) emits-change
.PredictedMediaLifeLeftPercent property y 100 emits-change
xyz.openbmc_project.Inventory.Item.Volume interface - - -
.ChangePassword method ayay - -
.Erase method s - -
.FormatLuks method ays - -
.Lock method - - -
.Unlock method ay - -
Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: Ifbbed7d81c55e3edbe519c2b1048b5d1731fbb0e
diff --git a/src/estoraged.cpp b/src/estoraged.cpp
index 6225f91..9646139 100644
--- a/src/estoraged.cpp
+++ b/src/estoraged.cpp
@@ -33,7 +33,7 @@
EStoraged::EStoraged(sdbusplus::asio::object_server& server,
const std::string& devPath, const std::string& luksName,
- uint64_t size,
+ uint64_t size, uint8_t lifeTime,
std::unique_ptr<CryptsetupInterface> cryptInterface,
std::unique_ptr<FilesystemInterface> fsInterface) :
devPath(devPath),
@@ -77,6 +77,8 @@
driveInterface = objectServer.add_interface(
path, "xyz.openbmc_project.Inventory.Item.Drive");
driveInterface->register_property("Capacity", size);
+ driveInterface->register_property("PredictedMediaLifeLeftPercent",
+ lifeTime);
volumeInterface->initialize();
driveInterface->initialize();