Fix up Function to Populate collection Members
Added Doxygen comments, renamed the funciton, renamed several
variables, and made more generic.
Tested: Top commit passes validator and resources look good.
Change-Id: I9a13176b7f4c8611ae38c6563b0e119e0f66edf2
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
diff --git a/redfish-core/include/utils/collection.hpp b/redfish-core/include/utils/collection.hpp
index 31d5da1..e73fce3 100644
--- a/redfish-core/include/utils/collection.hpp
+++ b/redfish-core/include/utils/collection.hpp
@@ -10,13 +10,24 @@
namespace collection_util
{
-inline void getResourceList(std::shared_ptr<AsyncResp> aResp,
- const std::string& subclass,
- const std::vector<const char*>& collectionName)
+/**
+ * @brief Populate the collection "Members" from a GetSubTree search of
+ * inventory
+ *
+ * @param[i,o] aResp Async response object
+ * @param[i] collectionPath Redfish collection path which is used for the
+ * Members Redfish Path
+ * @param[i] interfaces List of interfaces to constrain the GetSubTree search
+ *
+ * @return void
+ */
+inline void getCollectionMembers(std::shared_ptr<AsyncResp> aResp,
+ const std::string& collectionPath,
+ const std::vector<const char*>& interfaces)
{
- BMCWEB_LOG_DEBUG << "Get available system cpu/mem resources.";
+ BMCWEB_LOG_DEBUG << "Get collection members for: " << collectionPath;
crow::connections::systemBus->async_method_call(
- [subclass, aResp{std::move(aResp)}](
+ [collectionPath, aResp{std::move(aResp)}](
const boost::system::error_code ec,
const boost::container::flat_map<
std::string, boost::container::flat_map<
@@ -37,8 +48,7 @@
if ((iter != std::string::npos) && (iter < object.first.size()))
{
members.push_back(
- {{"@odata.id", "/redfish/v1/Systems/system/" +
- subclass + "/" +
+ {{"@odata.id", collectionPath + "/" +
object.first.substr(iter + 1)}});
}
}
@@ -47,7 +57,7 @@
"xyz.openbmc_project.ObjectMapper",
"/xyz/openbmc_project/object_mapper",
"xyz.openbmc_project.ObjectMapper", "GetSubTree",
- "/xyz/openbmc_project/inventory", 0, collectionName);
+ "/xyz/openbmc_project/inventory", 0, interfaces);
}
} // namespace collection_util