[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 2/2] VMware: Initial VMware Fusion support



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_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>
> 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 ?

Should we surround these in #if OSX  (or whatever the right symbol
is) ?

>  
>  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 :|


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]