mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-24 22:55:23 +00:00
Fix xenstore serial console path for HVM guests
The console path in xenstore is /local/domain/<id>/console/tty for PV guests (PV console) and /local/domain/<id>/serial/0/tty (serial console) for HVM guests. Similar to Xen's in-tree console client, read the correct path for PV vs HVM.
This commit is contained in:
parent
88ed9ec001
commit
beeea90a37
@ -1761,7 +1761,10 @@ xenDaemonDomainFetch(virConnectPtr conn,
|
||||
|
||||
id = xenGetDomIdFromSxpr(root, priv->xendConfigVersion);
|
||||
xenUnifiedLock(priv);
|
||||
tty = xenStoreDomainGetConsolePath(conn, id);
|
||||
if (sexpr_lookup(root, "domain/image/hvm"))
|
||||
tty = xenStoreDomainGetSerialConsolePath(conn, id);
|
||||
else
|
||||
tty = xenStoreDomainGetConsolePath(conn, id);
|
||||
vncport = xenStoreDomainGetVNCPort(conn, id);
|
||||
xenUnifiedUnlock(priv);
|
||||
if (!(def = xenParseSxpr(root,
|
||||
|
@ -852,6 +852,25 @@ char * xenStoreDomainGetConsolePath(virConnectPtr conn, int domid) {
|
||||
return virDomainDoStoreQuery(conn, domid, "console/tty");
|
||||
}
|
||||
|
||||
/**
|
||||
* xenStoreDomainGetSerailConsolePath:
|
||||
* @conn: the hypervisor connection
|
||||
* @domid: id of the domain
|
||||
*
|
||||
* Return the path to the pseudo TTY on which the guest domain's
|
||||
* serial console is attached.
|
||||
*
|
||||
* Returns the path to the serial console. It is the callers
|
||||
* responsibilty to free() the return string. Returns NULL
|
||||
* on error
|
||||
*
|
||||
* The caller must hold the lock on the privateData
|
||||
* associated with the 'conn' parameter.
|
||||
*/
|
||||
char * xenStoreDomainGetSerialConsolePath(virConnectPtr conn, int domid) {
|
||||
return virDomainDoStoreQuery(conn, domid, "serial/0/tty");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* xenStoreDomainGetNetworkID:
|
||||
|
@ -45,6 +45,8 @@ int xenStoreDomainGetVNCPort(virConnectPtr conn,
|
||||
int domid);
|
||||
char * xenStoreDomainGetConsolePath(virConnectPtr conn,
|
||||
int domid);
|
||||
char * xenStoreDomainGetSerialConsolePath(virConnectPtr conn,
|
||||
int domid);
|
||||
char * xenStoreDomainGetNetworkID(virConnectPtr conn,
|
||||
int id,
|
||||
const char *mac);
|
||||
|
Loading…
Reference in New Issue
Block a user