summaryrefslogtreecommitdiffstats
path: root/dcmihandler.cpp
diff options
context:
space:
mode:
authorTom Joseph <tomjoseph@in.ibm.com>2017-07-15 00:55:23 +0530
committerPatrick Williams <patrick@stwcx.xyz>2017-07-18 21:21:28 +0000
commitbe5b9899d071e8f9937dc2701b53b81bcbed6cc1 (patch)
tree3fd55f1f0b559f87b6b882eba566f652247e0117 /dcmihandler.cpp
parent545dd23205bf90e0e84de028356105d0c898f288 (diff)
downloadphosphor-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.cpp26
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,
OpenPOWER on IntegriCloud