diff options
author | Tom Joseph <tomjoseph@in.ibm.com> | 2017-07-15 00:55:23 +0530 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2017-07-18 21:21:28 +0000 |
commit | be5b9899d071e8f9937dc2701b53b81bcbed6cc1 (patch) | |
tree | 3fd55f1f0b559f87b6b882eba566f652247e0117 /dcmihandler.cpp | |
parent | 545dd23205bf90e0e84de028356105d0c898f288 (diff) | |
download | phosphor-host-ipmid-be5b9899d071e8f9937dc2701b53b81bcbed6cc1.tar.gz phosphor-host-ipmid-be5b9899d071e8f9937dc2701b53b81bcbed6cc1.zip |
dcmi: asset-tag: Add API to write asset tag to the DBUS object
Change-Id: Ia4bf3f99a865617535c65a023c8e697792cd43b4
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
Diffstat (limited to 'dcmihandler.cpp')
-rw-r--r-- | dcmihandler.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/dcmihandler.cpp b/dcmihandler.cpp index 0b98036..4c4f8b7 100644 --- a/dcmihandler.cpp +++ b/dcmihandler.cpp @@ -105,6 +105,32 @@ std::string readAssetTag() return assetTag.get<std::string>(); } +void writeAssetTag(const std::string& assetTag) +{ + sdbusplus::bus::bus bus{ipmid_get_sd_bus_connection()}; + dcmi::assettag::ObjectTree objectTree; + + // Read the object tree with the inventory root to figure out the object + // that has implemented the Asset tag interface. + readAssetTagObjectTree(objectTree); + + auto method = bus.new_method_call( + (objectTree.begin()->second.begin()->first).c_str(), + (objectTree.begin()->first).c_str(), + dcmi::propIntf, + "Set"); + method.append(dcmi::assetTagIntf); + method.append(dcmi::assetTagProp); + method.append(sdbusplus::message::variant<std::string>(assetTag)); + + auto reply = bus.call(method); + if (reply.is_method_error()) + { + log<level::ERR>("Error in writing asset tag"); + elog<InternalFailure>(); + } +} + } // namespace dcmi ipmi_ret_t getAssetTag(ipmi_netfn_t netfn, ipmi_cmd_t cmd, |