1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-02-20 09:58:15 +03:00

Parallels: Add VNC hostname setup

Add missing VNC setup via Parallels SDK.
Parallels Cloud Server starts one VNC server per domain,
so we could process only one VNC server definition.
Network-based listening currently is unimplemented.

Signed-off-by: Alexander Burluka <aburluka@parallels.com>
This commit is contained in:
Alexander Burluka 2014-12-19 16:41:03 +03:00 committed by Michal Privoznik
parent 565d049fd1
commit 95170a3085

View File

@ -1929,7 +1929,7 @@ static int prlsdkCheckGraphicsUnsupportedParams(virDomainDefPtr def)
if (def->ngraphics == 0)
return 0;
if (def->ngraphics >1) {
if (def->ngraphics > 1) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Parallels Cloud Server supports only "
"one VNC per domain."));
@ -1988,6 +1988,20 @@ static int prlsdkCheckGraphicsUnsupportedParams(virDomainDefPtr def)
return -1;
}
if (gr->nListens > 1) {
virReportError(VIR_ERR_INVALID_ARG, "%s",
_("Parallels driver doesn't support more than "
"one listening VNC server per domain"));
return -1;
}
if (gr->nListens == 1 &&
virDomainGraphicsListenGetType(gr, 0) != VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS) {
virReportError(VIR_ERR_INVALID_ARG, "%s",
_("Parallels driver supports only address-based VNC listening"));
return -1;
}
return 0;
}
@ -2286,6 +2300,7 @@ static int prlsdkApplyGraphicsParams(PRL_HANDLE sdkdom, virDomainDefPtr def)
virDomainGraphicsDefPtr gr;
PRL_RESULT pret;
int ret = -1;
const char *listenAddr = NULL;
if (prlsdkCheckGraphicsUnsupportedParams(def))
return -1;
@ -2306,6 +2321,14 @@ static int prlsdkApplyGraphicsParams(PRL_HANDLE sdkdom, virDomainDefPtr def)
prlsdkCheckRetGoto(pret, cleanup);
}
if (gr->nListens == 1) {
listenAddr = virDomainGraphicsListenGetAddress(gr, 0);
if (!listenAddr)
goto cleanup;
pret = PrlVmCfg_SetVNCHostName(sdkdom, listenAddr);
prlsdkCheckRetGoto(pret, cleanup);
}
ret = 0;
cleanup:
return ret;