node_device_driver: Deduplicate mediated devices listing

We have virMdevctlListDefined() to list defined mdevs, and
virMdevctlListActive() to list active mdevs. Both have the same
body except for one boolean argument passed to
nodeDeviceGetMdevctlListCommand(). Join the two functions under
virMdevctlList() name and introduce @defined argument that is
then just passed to the cmd line builder function.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Kristina Hanicova <khanicov@redhat.com>
This commit is contained in:
Michal Privoznik 2023-08-24 10:23:55 +02:00
parent a3f0c3852e
commit 035d5ed80c

View File

@ -1636,32 +1636,14 @@ nodeDeviceGenerateName(virNodeDeviceDef *def,
static int
virMdevctlListDefined(virNodeDeviceDef ***devs, char **errmsg)
virMdevctlList(bool defined,
virNodeDeviceDef ***devs,
char **errmsg)
{
int status;
g_autofree char *output = NULL;
g_autofree char *errbuf = NULL;
g_autoptr(virCommand) cmd = nodeDeviceGetMdevctlListCommand(true, &output, &errbuf);
if (virCommandRun(cmd, &status) < 0 || status != 0) {
*errmsg = g_steal_pointer(&errbuf);
return -1;
}
if (!output)
return -1;
return nodeDeviceParseMdevctlJSON(output, devs);
}
static int
virMdevctlListActive(virNodeDeviceDef ***devs, char **errmsg)
{
int status;
g_autofree char *output = NULL;
g_autofree char *errbuf = NULL;
g_autoptr(virCommand) cmd = nodeDeviceGetMdevctlListCommand(false, &output, &errbuf);
g_autoptr(virCommand) cmd = nodeDeviceGetMdevctlListCommand(defined, &output, &errbuf);
if (virCommandRun(cmd, &status) < 0 || status != 0) {
*errmsg = g_steal_pointer(&errbuf);
@ -1750,7 +1732,7 @@ nodeDeviceUpdateMediatedDevices(void)
return 0;
}
if ((data.ndefs = virMdevctlListDefined(&defs, &errmsg)) < 0) {
if ((data.ndefs = virMdevctlList(true, &defs, &errmsg)) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("failed to query mdevs from mdevctl: %1$s"), errmsg);
return -1;
@ -1767,7 +1749,7 @@ nodeDeviceUpdateMediatedDevices(void)
return -1;
/* Update active/transient mdev devices */
if ((act_ndefs = virMdevctlListActive(&act_defs, &errmsg)) < 0) {
if ((act_ndefs = virMdevctlList(false, &act_defs, &errmsg)) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("failed to query mdevs from mdevctl: %1$s"), errmsg);
return -1;