On Mon, Sep 23, 2013 at 5:28 AM, Daniel P. Berrange <berrange(a)redhat.com> wrote:
On Fri, Sep 20, 2013 at 03:06:51PM -0500, Doug Goldstein wrote:
> Add support for VMware Fusion in the existing VMware driver. Connect
> via the URI vmwarefusion:///session
> ---
> docs/drvvmware.html.in | 15 +++++++++++----
> src/vmware/vmware_conf.c | 8 +++++++-
> src/vmware/vmware_conf.h | 1 +
> src/vmware/vmware_driver.c | 3 +++
> 4 files changed, 22 insertions(+), 5 deletions(-)
>
> diff --git a/docs/drvvmware.html.in b/docs/drvvmware.html.in
> index 9ee0ebd..240afd0 100644
> --- a/docs/drvvmware.html.in
> +++ b/docs/drvvmware.html.in
> @@ -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_referen...;.
> </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>
> diff --git a/src/vmware/vmware_conf.c b/src/vmware/vmware_conf.c
> index d7ea8c4..6d5b11b 100644
> --- a/src/vmware/vmware_conf.c
> +++ b/src/vmware/vmware_conf.c
> @@ -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
> @@ -275,6 +276,11 @@ vmwareExtractVersion(struct vmware_driver *driver)
> if (virAsprintf(&bin, "%s/%s", vmwarePath,
"vmware"))
> goto cleanup;
> break;
> +
> + case VMWARE_DRIVER_FUSION:
> + if (virAsprintf(&bin, "%s/%s", vmwarePath,
"vmware-vmx"))
> + goto cleanup;
> + break;
> }
>
> cmd = virCommandNewArgList(bin, "-v", NULL);
> diff --git a/src/vmware/vmware_conf.h b/src/vmware/vmware_conf.h
> index a4fd855..b9fca6c 100644
> --- a/src/vmware/vmware_conf.h
> +++ b/src/vmware/vmware_conf.h
> @@ -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 */
> };
> diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c
> index 01d65ed..abedacf 100644
> --- a/src/vmware/vmware_driver.c
> +++ b/src/vmware/vmware_driver.c
> @@ -40,6 +40,8 @@
> */
> static const char * const vmrun_candidates[] = {
> "vmrun",
> + "/Applications/VMware Fusion.app/Contents/Library/vmrun",
> + "/Library/Application Support/VMware Fusion/vmrun",
> };
Are these two paths standard on OS-X, or is this just a default
that is user customizable ? They don't add these dirs to $PATH ?
They're hardcoded in the VMware Fusion installer so its only ever
possible to install to those two paths. Version 4 and lower used the
path /Library/Application Support/ for the command line tools while
version 5 and newer used /Applications VMware Fusion.app/
No they don't add anything in /Library or /Applications to PATH. Its
actually frowned upon in Mac world.
>
> static void
> @@ -103,6 +105,7 @@ vmwareConnectOpen(virConnectPtr conn,
> } else {
> if (conn->uri->scheme == NULL ||
> (STRNEQ(conn->uri->scheme, "vmwareplayer") &&
> + STRNEQ(conn->uri->scheme, "vmwarefusion") &&
> STRNEQ(conn->uri->scheme, "vmwarews")))
> return VIR_DRV_OPEN_DECLINED;
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|