Add association between chassis and drive
This commit adds an association between the storage device ("drive") and
the associated chassis. Specifically, the new association is the
following:
["chassis", "drive", <chassis_path>]
This association will be used in bmcweb to add Redfish links between
drive and chassis.
Tested:
$ busctl get-property xyz.openbmc_project.eStoraged \
/xyz/openbmc_project/inventory/storage/mmcblk0 \
xyz.openbmc_project.Association.Definitions Associations
$ busctl get-property xyz.openbmc_project.ObjectMapper \
/xyz/openbmc_project/inventory/system/board/dcscm/drive \
xyz.openbmc_project.Association endpoints
$ busctl get-property xyz.openbmc_project.ObjectMapper \
/xyz/openbmc_project/inventory/storage/mmcblk0/chassis \
xyz.openbmc_project.Association endpoints
Signed-off-by: John Wedig <johnwedig@google.com>
Change-Id: Ie21725e9ceb5134ac94854dcb06f3b86a48eeabd
diff --git a/include/estoraged.hpp b/include/estoraged.hpp
index 41b589c..c843a3b 100644
--- a/include/estoraged.hpp
+++ b/include/estoraged.hpp
@@ -35,6 +35,7 @@
/** @brief Constructor for eStoraged
*
* @param[in] server - sdbusplus asio object server
+ * @param[in] configPath - path of the config object from Entity Manager
* @param[in] devPath - path to device file, e.g. /dev/mmcblk0
* @param[in] luksName - name for the LUKS container
* @param[in] size - size of the drive in bytes
@@ -45,8 +46,8 @@
* object
*/
EStoraged(sdbusplus::asio::object_server& server,
- const std::string& devPath, const std::string& luksName,
- uint64_t size, uint8_t lifeTime,
+ const std::string& configPath, const std::string& devPath,
+ const std::string& luksName, uint64_t size, uint8_t lifeTime,
std::unique_ptr<CryptsetupInterface> cryptInterface =
std::make_unique<Cryptsetup>(),
std::unique_ptr<FilesystemInterface> fsInterface =
@@ -130,6 +131,9 @@
/** @brief D-Bus interface for the physical drive. */
std::shared_ptr<sdbusplus::asio::dbus_interface> driveInterface;
+ /** @brief Association between chassis and drive. */
+ std::shared_ptr<sdbusplus::asio::dbus_interface> association;
+
/** @brief Format LUKS encrypted device.
*
* @param[in] password - password to set for the LUKS device.