mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-05 23:19:50 +00:00
redfish: Generate IDs for redfish devices
Generate IDs for redfish devices and skip the devices without a proper GUID. Signed-off-by: Gary Lin <glin@suse.com>
This commit is contained in:
parent
213bdf0637
commit
27986ebf3e
@ -93,8 +93,32 @@ fu_redfish_client_coldplug_member (FuRedfishClient *self,
|
||||
JsonObject *member,
|
||||
GError **error)
|
||||
{
|
||||
g_autoptr(FuDevice) dev = fu_device_new ();
|
||||
g_autoptr(FuDevice) dev = NULL;
|
||||
const gchar *guid = NULL;
|
||||
g_autofree gchar *id = NULL;
|
||||
|
||||
if (json_object_has_member (member, "SoftwareId")) {
|
||||
guid = json_object_get_string_member (member, "SoftwareId");
|
||||
} else if (json_object_has_member (member, "Oem")) {
|
||||
JsonObject *oem = json_object_get_object_member (member, "Oem");
|
||||
if (json_object_has_member (oem, "Hpe")) {
|
||||
JsonObject *hpe = json_object_get_object_member (oem, "Hpe");
|
||||
if (json_object_has_member (hpe, "DeviceClass"))
|
||||
guid = json_object_get_string_member (hpe, "DeviceClass");
|
||||
}
|
||||
}
|
||||
|
||||
/* skip the devices without guid */
|
||||
if (guid == NULL)
|
||||
return TRUE;
|
||||
|
||||
dev = fu_device_new ();
|
||||
|
||||
id = g_strdup_printf ("Redfish-Inventory-%s",
|
||||
json_object_get_string_member (member, "Id"));
|
||||
fu_device_set_id (dev, id);
|
||||
|
||||
fu_device_add_guid (dev, guid);
|
||||
fu_device_set_name (dev, json_object_get_string_member (member, "Name"));
|
||||
fu_device_set_summary (dev, "Redfish device");
|
||||
fu_device_set_version (dev, json_object_get_string_member (member, "Version"));
|
||||
@ -106,17 +130,6 @@ fu_redfish_client_coldplug_member (FuRedfishClient *self,
|
||||
if (json_object_get_boolean_member (member, "Updateable"))
|
||||
fu_device_add_flag (dev, FWUPD_DEVICE_FLAG_UPDATABLE);
|
||||
}
|
||||
if (json_object_has_member (member, "SoftwareId")) {
|
||||
fu_device_add_guid (dev, json_object_get_string_member (member, "SoftwareId"));
|
||||
} else if (json_object_has_member (member, "Oem")) {
|
||||
JsonObject *oem = json_object_get_object_member (member, "Oem");
|
||||
if (json_object_has_member (oem, "Hpe")) {
|
||||
JsonObject *hpe = json_object_get_object_member (oem, "Hpe");
|
||||
const gchar *dev_class = json_object_get_string_member (hpe, "DeviceClass");
|
||||
if (dev_class != NULL)
|
||||
fu_device_add_guid (dev, dev_class);
|
||||
}
|
||||
}
|
||||
|
||||
/* success */
|
||||
g_ptr_array_add (self->devices, g_steal_pointer (&dev));
|
||||
|
Loading…
Reference in New Issue
Block a user