virDomainNetFind: Report error if no device found

Every caller reports the error themselves. Might as well move it
into the function and thus unify it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Michal Privoznik 2017-10-13 13:40:47 -07:00
parent 24796f2710
commit e3909729d2
7 changed files with 23 additions and 42 deletions

View File

@ -26983,13 +26983,12 @@ virDomainGraphicsListenAppendSocket(virDomainGraphicsDefPtr def,
*
* Finds a domain's net def, given the interface name or MAC address
*
* Returns a pointer to the net def or NULL if not found.
* Returns a pointer to the net def or NULL if not found (error is reported).
*/
virDomainNetDefPtr
virDomainNetFind(virDomainDefPtr def, const char *device)
{
bool isMac = false;
virDomainNetDefPtr net = NULL;
virMacAddr mac;
size_t i;
@ -26998,16 +26997,19 @@ virDomainNetFind(virDomainDefPtr def, const char *device)
if (isMac) {
for (i = 0; i < def->nnets; i++) {
if (virMacAddrCmp(&mac, &def->nets[i]->mac) == 0) {
net = def->nets[i];
break;
}
if (virMacAddrCmp(&mac, &def->nets[i]->mac) == 0)
return def->nets[i];
}
} else { /* ifname */
net = virDomainNetFindByName(def, device);
virDomainNetDefPtr net = NULL;
if ((net = virDomainNetFindByName(def, device)))
return net;
}
return net;
virReportError(VIR_ERR_INVALID_ARG,
_("'%s' is not a known interface"), device);
return NULL;
}

View File

@ -4979,11 +4979,8 @@ libxlDomainInterfaceStats(virDomainPtr dom,
goto endjob;
}
if (!(net = virDomainNetFindByName(vm->def, path))) {
virReportError(VIR_ERR_INVALID_ARG,
_("'%s' is not a known interface"), path);
if (!(net = virDomainNetFindByName(vm->def, path)))
goto endjob;
}
if (virNetDevTapInterfaceStats(path, stats,
!virDomainNetTypeSharesHostView(net)) < 0)

View File

@ -2872,11 +2872,8 @@ lxcDomainInterfaceStats(virDomainPtr dom,
goto endjob;
}
if (!(net = virDomainNetFindByName(vm->def, path))) {
virReportError(VIR_ERR_INVALID_ARG,
_("Invalid path, '%s' is not a known interface"), path);
if (!(net = virDomainNetFindByName(vm->def, path)))
goto endjob;
}
if (virNetDevTapInterfaceStats(path, stats,
!virDomainNetTypeSharesHostView(net)) < 0)

View File

@ -2006,11 +2006,8 @@ openvzDomainInterfaceStats(virDomainPtr dom,
goto cleanup;
}
if (!(net = virDomainNetFindByName(vm->def, path))) {
virReportError(VIR_ERR_INVALID_ARG,
_("invalid path, '%s' is not a known interface"), path);
if (!(net = virDomainNetFindByName(vm->def, path)))
goto cleanup;
}
if (virNetDevTapInterfaceStats(path, stats,
!virDomainNetTypeSharesHostView(net)) < 0)

View File

@ -11040,11 +11040,8 @@ qemuDomainInterfaceStats(virDomainPtr dom,
goto cleanup;
}
if (!(net = virDomainNetFindByName(vm->def, path))) {
virReportError(VIR_ERR_INVALID_ARG,
_("invalid path, '%s' is not a known interface"), path);
if (!(net = virDomainNetFindByName(vm->def, path)))
goto cleanup;
}
if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
if (virNetDevOpenvswitchInterfaceStats(path, stats) < 0)
@ -11114,18 +11111,12 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
goto endjob;
if (def &&
!(net = virDomainNetFind(vm->def, device))) {
virReportError(VIR_ERR_INVALID_ARG,
_("Can't find device %s"), device);
!(net = virDomainNetFind(vm->def, device)))
goto endjob;
}
if (persistentDef &&
!(persistentNet = virDomainNetFind(persistentDef, device))) {
virReportError(VIR_ERR_INVALID_ARG,
_("Can't find device %s"), device);
!(persistentNet = virDomainNetFind(persistentDef, device)))
goto endjob;
}
if ((VIR_ALLOC(bandwidth) < 0) ||
(VIR_ALLOC(bandwidth->in) < 0) ||
@ -11291,12 +11282,8 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom,
goto cleanup;
}
net = virDomainNetFind(def, device);
if (!net) {
virReportError(VIR_ERR_INVALID_ARG,
_("Can't find device %s"), device);
if (!(net = virDomainNetFind(def, device)))
goto cleanup;
}
for (i = 0; i < *nparams && i < QEMU_NB_BANDWIDTH_PARAM; i++) {
switch (i) {

View File

@ -3180,11 +3180,8 @@ static int testDomainInterfaceStats(virDomainPtr domain,
goto error;
}
if (!(net = virDomainNetFindByName(privdom->def, path))) {
virReportError(VIR_ERR_INVALID_ARG,
_("invalid path, '%s' is not a known interface"), path);
if (!(net = virDomainNetFindByName(privdom->def, path)))
goto error;
}
if (gettimeofday(&tv, NULL) < 0) {
virReportSystemError(errno,

View File

@ -2113,6 +2113,7 @@ xenUnifiedDomainInterfaceStats(virDomainPtr dom, const char *path,
virDomainInterfaceStatsPtr stats)
{
virDomainDefPtr def = NULL;
virDomainNetDefPtr net = NULL;
int ret = -1;
if (!(def = xenGetDomainDefForDom(dom)))
@ -2121,7 +2122,10 @@ xenUnifiedDomainInterfaceStats(virDomainPtr dom, const char *path,
if (virDomainInterfaceStatsEnsureACL(dom->conn, def) < 0)
goto cleanup;
ret = xenHypervisorDomainInterfaceStats(def, path, stats);
if (!(net = virDomainNetFind(def, path)))
goto cleanup;
ret = xenHypervisorDomainInterfaceStats(def, net->ifname, stats);
cleanup:
virDomainDefFree(def);