[libvirt] [PATCH 1/8] parallels: add driver skeleton

Daniel P. Berrange berrange at redhat.com
Fri Jul 27 09:56:57 UTC 2012


On Fri, Jul 27, 2012 at 01:48:49PM +0400, Dmitry Guryanov wrote:
> On 07/27/2012 01:16 PM, Daniel P. Berrange wrote:
> >On Thu, Jul 26, 2012 at 10:32:00PM +0400, Dmitry Guryanov wrote:
> >>+static virCapsPtr
> >>+parallelsBuildCapabilities(void)
> >>+{
> >>+    virCapsPtr caps;
> >>+    virCapsGuestPtr guest;
> >>+    struct utsname utsname;
> >>+    uname(&utsname);
> >>+
> >>+    if ((caps = virCapabilitiesNew(utsname.machine, 0, 0)) == NULL)
> >>+        goto no_memory;
> >>+
> >>+    if (nodeCapsInitNUMA(caps) < 0)
> >>+        goto no_memory;
> >>+
> >>+    virCapabilitiesSetMacPrefix(caps, (unsigned char[]) {
> >>+                                0x42, 0x1C, 0x00});
> >>+
> >>+    if ((guest = virCapabilitiesAddGuest(caps, "hvm", PARALLELS_DEFAULT_ARCH,
> >>+                                         64, "parallels",
> >>+                                         NULL, 0, NULL)) == NULL)
> >>+        goto no_memory;
> >Hmm, perhaps I'm misunderstanding, but isn't Parallels a container
> >based technology like OpenVZ, rather than full machine virtualization ?
> >
> >For containers we use 'exe' as the os type rather than 'hvm', and I'd
> >expect the arch + bit count to match the host OS.
> >
> 
> Parallels Cloud Server uses the same interface for both
> containers and virtual machines management, where it's
> possible, I've decided to start writing support of VMs.
> I hope then it's possible to make driver which supports
> both types of virtualization and going to do it later.

Ah that makes sense now. Thanks for explaining. So what
you have here is fine to start with.


> >>+    /* From this point on, the connection is for us. */
> >>+    if (!conn->uri->path ||
> >>+        conn->uri->path[0] == '\0' ||
> >>+        (conn->uri->path[0] == '/' && conn->uri->path[1] == '\0')) {
> >>+        virReportError(VIR_ERR_INVALID_ARG, "%s",
> >>+                       _("parallelsOpen: supply a path or use "
> >>+                         "parallels:///default"));
> >>+        return VIR_DRV_OPEN_ERROR;
> >>+    }
> >>+
> >>+    if (STREQ(conn->uri->path, "/default"))
> >How do connections from parallels work from an end user POV ?
> >
> >Is there is a single parallels service for the whole machine
> >which all users connect to, or does each user have their own
> >private service they work with.
> >
> >If the former, I think it'd be preferable for the URI to be
> >either simple
> >
> >   parallels:///
> >
> >Or
> >
> >   parallels:///system
> >
> >to have a bit closer alignment with the naming we use with
> >LXC / QEMU / OpenBVZ.
> >
> >If the latter, then I'd suggest parallels:///session to
> >indicate its tied to a per-user account/session.
> 
> Each user in system has it's own set of virtual machines,
> I agree to change URI to parallels://system

If each user has their own set of VMs, then you want parallels:///session
actually


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




More information about the libvir-list mailing list