Refactor getCollectionMembers
This commit refactors the getCollectionMembers function into smaller
functions. Additionally, the 'subtree' parameter is no longer a
default parameter but is explicitly required in the function. All
calls to getCollectionMembers have been updated to pass the 'subtree'
parameter.
Tested: Validator passed
'''
curl -k https://$bmc/redfish/v1/Systems/system/Storage
{
"@odata.id": "/redfish/v1/Systems/system/Storage",
"@odata.type": "#StorageCollection.StorageCollection",
"Members": [
{
"@odata.id": "/redfish/v1/Systems/system/Storage/1"
}
],
"Members@odata.count": 1,
"Name": "Storage Collection"
}
curl -k https://$bmc/redfish/v1/Cables
{
"@odata.id": "/redfish/v1/Cables",
"@odata.type": "#CableCollection.CableCollection",
"Description": "Collection of Cable Entries",
"Members": [
{
"@odata.id": "/redfish/v1/Cables/dp0_cable0"
},
{
"@odata.id": "/redfish/v1/Cables/dp0_cable1"
},
{
"@odata.id": "/redfish/v1/Cables/dp0_cable2"
},
{
"@odata.id": "/redfish/v1/Cables/dp0_cable3"
}
],
"Members@odata.count": 4,
"Name": "Cable Collection"
}
curl -k https://$bmc/redfish/v1/Chassis
{
"@odata.id": "/redfish/v1/Chassis",
"@odata.type": "#ChassisCollection.ChassisCollection",
"Members": [
{
"@odata.id": "/redfish/v1/Chassis/chassis"
}
],
"Members@odata.count": 1,
"Name": "Chassis Collection"
}
curl -k https://$bmc/redfish/v1/Systems/system/Memory
{
"@odata.id": "/redfish/v1/Systems/system/Memory",
"@odata.type": "#MemoryCollection.MemoryCollection",
"Members": [
{
"@odata.id": "/redfish/v1/Systems/system/Memory/dimm0"
},
{
"@odata.id": "/redfish/v1/Systems/system/Memory/dimm1"
},
......
{
"@odata.id": "/redfish/v1/Systems/system/Memory/dimm31"
}
],
"Members@odata.count": 32,
"Name": "Memory Module Collection"
}
'''
Change-Id: If5091431b548f371bff03b2897fd0aaf8b0ef203
Signed-off-by: Lakshmi Yadlapati <lakshmiy@us.ibm.com>
diff --git a/redfish-core/lib/cable.hpp b/redfish-core/lib/cable.hpp
index 28031e1..a39d00a 100644
--- a/redfish-core/lib/cable.hpp
+++ b/redfish-core/lib/cable.hpp
@@ -210,7 +210,8 @@
constexpr std::array<std::string_view, 1> interfaces{
"xyz.openbmc_project.Inventory.Item.Cable"};
collection_util::getCollectionMembers(
- asyncResp, boost::urls::url("/redfish/v1/Cables"), interfaces);
+ asyncResp, boost::urls::url("/redfish/v1/Cables"), interfaces,
+ "/xyz/openbmc_project/inventory");
});
}
diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 969973f..0d14d4e 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -209,7 +209,8 @@
"xyz.openbmc_project.Inventory.Item.Board",
"xyz.openbmc_project.Inventory.Item.Chassis"};
collection_util::getCollectionMembers(
- asyncResp, boost::urls::url("/redfish/v1/Chassis"), interfaces);
+ asyncResp, boost::urls::url("/redfish/v1/Chassis"), interfaces,
+ "/xyz/openbmc_project/inventory");
}
inline void getChassisContainedBy(
diff --git a/redfish-core/lib/fabric_adapters.hpp b/redfish-core/lib/fabric_adapters.hpp
index 2a85f42..317348f 100644
--- a/redfish-core/lib/fabric_adapters.hpp
+++ b/redfish-core/lib/fabric_adapters.hpp
@@ -309,7 +309,7 @@
collection_util::getCollectionMembers(
asyncResp,
boost::urls::url("/redfish/v1/Systems/system/FabricAdapters"),
- interfaces);
+ interfaces, "/xyz/openbmc_project/inventory");
}
inline void handleFabricAdapterCollectionHead(
diff --git a/redfish-core/lib/memory.hpp b/redfish-core/lib/memory.hpp
index 551a579..45a3789 100644
--- a/redfish-core/lib/memory.hpp
+++ b/redfish-core/lib/memory.hpp
@@ -810,7 +810,7 @@
"xyz.openbmc_project.Inventory.Item.Dimm"};
collection_util::getCollectionMembers(
asyncResp, boost::urls::url("/redfish/v1/Systems/system/Memory"),
- interfaces);
+ interfaces, "/xyz/openbmc_project/inventory");
});
}
diff --git a/redfish-core/lib/processor.hpp b/redfish-core/lib/processor.hpp
index 78f25d4..988d5cc 100644
--- a/redfish-core/lib/processor.hpp
+++ b/redfish-core/lib/processor.hpp
@@ -1232,7 +1232,7 @@
boost::urls::format(
"/redfish/v1/Systems/system/Processors/{}/OperatingConfigs",
cpuName),
- interface, object.c_str());
+ interface, object);
return;
}
});
@@ -1362,7 +1362,7 @@
collection_util::getCollectionMembers(
asyncResp,
boost::urls::url("/redfish/v1/Systems/system/Processors"),
- processorInterfaces);
+ processorInterfaces, "/xyz/openbmc_project/inventory");
});
}
diff --git a/redfish-core/lib/storage.hpp b/redfish-core/lib/storage.hpp
index 389a20b..74c88f7 100644
--- a/redfish-core/lib/storage.hpp
+++ b/redfish-core/lib/storage.hpp
@@ -69,7 +69,7 @@
};
collection_util::getCollectionMembers(
asyncResp, boost::urls::format("/redfish/v1/Systems/system/Storage"),
- interface);
+ interface, "/xyz/openbmc_project/inventory");
}
inline void handleStorageCollectionGet(
@@ -88,7 +88,8 @@
"xyz.openbmc_project.Inventory.Item.Storage"
};
collection_util::getCollectionMembers(
- asyncResp, boost::urls::format("/redfish/v1/Storage"), interface);
+ asyncResp, boost::urls::format("/redfish/v1/Storage"), interface,
+ "/xyz/openbmc_project/inventory");
}
inline void requestRoutesStorageCollection(App& app)