mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
VMware: Initial VMware Fusion support
Add support for VMware Fusion in the existing VMware driver. Connect via the URI vmwarefusion:///session
This commit is contained in:
parent
ca91e55407
commit
45cd9aa2d4
@ -2,10 +2,11 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1>VMware Workstation / Player hypervisors driver</h1>
|
||||
<h1>VMware Workstation / Player / Fusion hypervisors driver</h1>
|
||||
<p>
|
||||
The libvirt VMware Workstation driver should be able to manage any Workstation and
|
||||
Player version supported by the VMware VIX API. See the compatibility list
|
||||
The libvirt VMware driver should be able to manage any Workstation,
|
||||
Player, Fusion version supported by the VMware VIX API. See the
|
||||
compatibility list
|
||||
<a href="http://www.vmware.com/support/developer/vix-api/vix110_reference/">here</a>.
|
||||
</p>
|
||||
<p>
|
||||
@ -21,17 +22,22 @@
|
||||
The <a href="http://www.vmware.com/">VMware Workstation and
|
||||
Player</a> hypervisors
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://www.vmware.com/fusion">VMware Fusion</a>
|
||||
hypervisor
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Connections to VMware driver</h2>
|
||||
|
||||
<p>
|
||||
The libvirt VMware driver provides per-user drivers (the "session" instance).
|
||||
Two uris are available:
|
||||
Three uris are available:
|
||||
</p>
|
||||
<ul>
|
||||
<li>"vmwareplayer" for VMware Player</li>
|
||||
<li>"vmwarews" for VMware Workstation</li>
|
||||
<li>"vmwarefusion" for VMware Fusion</li>
|
||||
</ul>
|
||||
<p>
|
||||
Some example connection URIs for the driver are:
|
||||
@ -40,6 +46,7 @@
|
||||
<pre>
|
||||
vmwareplayer:///session (local access to VMware Player per-user instance)
|
||||
vmwarews:///session (local access to VMware Workstation per-user instance)
|
||||
vmwarefusion:///session (local access to VMware Fusion per-user instance)
|
||||
vmwarews+tcp://user@example.com/session (remote access to VMware Workstation, SASl/Kerberos)
|
||||
vmwarews+ssh://user@example.com/session (remote access to VMware Workstation, SSH tunnelled)
|
||||
</pre>
|
||||
|
@ -37,7 +37,8 @@
|
||||
|
||||
VIR_ENUM_IMPL(vmwareDriver, VMWARE_DRIVER_LAST,
|
||||
"player",
|
||||
"ws");
|
||||
"ws",
|
||||
"fusion");
|
||||
|
||||
/* Free all memory associated with a vmware_driver structure */
|
||||
void
|
||||
@ -231,6 +232,9 @@ vmwareParseVersionStr(int type, const char *verbuf, unsigned long *version)
|
||||
case VMWARE_DRIVER_WORKSTATION:
|
||||
pattern = "VMware Workstation ";
|
||||
break;
|
||||
case VMWARE_DRIVER_FUSION:
|
||||
pattern = "\nVMware Fusion Information:\nVMware Fusion ";
|
||||
break;
|
||||
default:
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Invalid driver type: %d"), type);
|
||||
@ -276,6 +280,11 @@ vmwareExtractVersion(struct vmware_driver *driver)
|
||||
goto cleanup;
|
||||
break;
|
||||
|
||||
case VMWARE_DRIVER_FUSION:
|
||||
if (virAsprintf(&bin, "%s/%s", vmwarePath, "vmware-vmx"))
|
||||
goto cleanup;
|
||||
break;
|
||||
|
||||
default:
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("invalid driver type for version detection"));
|
||||
|
@ -33,6 +33,7 @@
|
||||
enum vmwareDriverType {
|
||||
VMWARE_DRIVER_PLAYER = 0, /* VMware Player */
|
||||
VMWARE_DRIVER_WORKSTATION = 1, /* VMware Workstation */
|
||||
VMWARE_DRIVER_FUSION = 2, /* VMware Fusion */
|
||||
|
||||
VMWARE_DRIVER_LAST, /* required last item */
|
||||
};
|
||||
|
@ -40,6 +40,10 @@
|
||||
*/
|
||||
static const char * const vmrun_candidates[] = {
|
||||
"vmrun",
|
||||
#ifdef __APPLE__
|
||||
"/Applications/VMware Fusion.app/Contents/Library/vmrun",
|
||||
"/Library/Application Support/VMware Fusion/vmrun",
|
||||
#endif /* __APPLE__ */
|
||||
};
|
||||
|
||||
static void
|
||||
@ -103,7 +107,8 @@ vmwareConnectOpen(virConnectPtr conn,
|
||||
} else {
|
||||
if (conn->uri->scheme == NULL ||
|
||||
(STRNEQ(conn->uri->scheme, "vmwareplayer") &&
|
||||
STRNEQ(conn->uri->scheme, "vmwarews")))
|
||||
STRNEQ(conn->uri->scheme, "vmwarews") &&
|
||||
STRNEQ(conn->uri->scheme, "vmwarefusion")))
|
||||
return VIR_DRV_OPEN_DECLINED;
|
||||
|
||||
/* If server name is given, its for remote driver */
|
||||
@ -113,7 +118,7 @@ vmwareConnectOpen(virConnectPtr conn,
|
||||
/* If path isn't /session, then they typoed, so tell them correct path */
|
||||
if (conn->uri->path == NULL || STRNEQ(conn->uri->path, "/session")) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("unexpected VMware URI path '%s', try vmwareplayer:///session or vmwarews:///session"),
|
||||
_("unexpected VMware URI path '%s', try vmwareplayer:///session, vmwarews:///session or vmwarefusion:///session"),
|
||||
NULLSTR(conn->uri->path));
|
||||
return VIR_DRV_OPEN_ERROR;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user