vz: dump route info in domain xml

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
This commit is contained in:
Nikolay Shirokovskiy 2016-04-20 17:05:37 +03:00 committed by Maxim Nestratov
parent b86396dc54
commit c34a9d6e56
3 changed files with 49 additions and 2 deletions

View File

@ -60,7 +60,7 @@ virNetworkRouteDefFree(virNetworkRouteDefPtr def)
virNetworkRouteDefPtr
virNetworkRouteDefCreate(const char *errorDetail,
char *family,
const char *family,
const char *address,
const char *netmask,
const char *gateway,

View File

@ -40,7 +40,7 @@ virNetworkRouteDefFree(virNetworkRouteDefPtr def);
virNetworkRouteDefPtr
virNetworkRouteDefCreate(const char *networkName,
char *family,
const char *family,
const char *address,
const char *netmask,
const char *gateway,

View File

@ -832,6 +832,50 @@ prlsdkGetNetAddresses(PRL_HANDLE sdknet, virDomainNetDefPtr net)
return ret;
}
static int
prlsdkGetRoutes(PRL_HANDLE sdknet, virDomainNetDefPtr net)
{
int ret = -1;
char *gw = NULL;
char *gw6 = NULL;
virNetworkRouteDefPtr route = NULL;
if (!(gw = prlsdkGetStringParamVar(PrlVmDevNet_GetDefaultGateway, sdknet)))
goto cleanup;
if (!(gw6 = prlsdkGetStringParamVar(PrlVmDevNet_GetDefaultGatewayIPv6, sdknet)))
goto cleanup;
if (*gw != '\0') {
if (!(route = virNetworkRouteDefCreate(_("Domain interface"),
"ipv4", VIR_SOCKET_ADDR_IPV4_ALL,
NULL, gw, 0, true, 0, false)))
goto cleanup;
if (VIR_APPEND_ELEMENT(net->routes, net->nroutes, route) < 0)
goto cleanup;
}
if (*gw6 != '\0') {
if (!(route = virNetworkRouteDefCreate(_("Domain interface"),
"ipv6", VIR_SOCKET_ADDR_IPV6_ALL,
NULL, gw6, 0, true, 0, false)))
goto cleanup;
if (VIR_APPEND_ELEMENT(net->routes, net->nroutes, route) < 0)
goto cleanup;
}
ret = 0;
cleanup:
VIR_FREE(route);
VIR_FREE(gw);
VIR_FREE(gw6);
return ret;
}
static int
prlsdkGetNetInfo(PRL_HANDLE netAdapter, virDomainNetDefPtr net, bool isCt)
{
@ -874,6 +918,9 @@ prlsdkGetNetInfo(PRL_HANDLE netAdapter, virDomainNetDefPtr net, bool isCt)
if (prlsdkGetNetAddresses(netAdapter, net) < 0)
goto cleanup;
if (prlsdkGetRoutes(netAdapter, net) < 0)
goto cleanup;
pret = PrlVmDev_GetEmulatedType(netAdapter, &emulatedType);
prlsdkCheckRetGoto(pret, cleanup);