[libvirt] [dbus RFC 11/11] main: add support for all libvirt drivers

Pavel Hrdina posted 11 patches 7 years, 3 months ago
[libvirt] [dbus RFC 11/11] main: add support for all libvirt drivers
Posted by Pavel Hrdina 7 years, 3 months ago
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
 src/main.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/src/main.c b/src/main.c
index 14c7c18..6421919 100644
--- a/src/main.c
+++ b/src/main.c
@@ -85,13 +85,31 @@ struct virtDBusDriver {
 };
 
 static const struct virtDBusDriver sessionDrivers[] = {
-    { "qemu:///session",    "/org/libvirt/qemu" },
-    { "test:///default",    "/org/libvirt/test" },
+    { "qemu:///session",            "/org/libvirt/qemu" },
+    { "test:///default",            "/org/libvirt/test" },
+    { "uml:///session",             "/org/libvirt/uml" },
+    { "vbox:///session",            "/org/libvirt/vbox" },
+    { "vmwarefusion:///session",    "/org/libvirt/vmwarefusion" },
+    { "vmwareplayer:///session",    "/org/libvirt/vmwareplayer" },
+    { "vmwarews:///session",        "/org/libvirt/vmwarews" },
 };
 
 static const struct virtDBusDriver systemDrivers[] = {
-    { "qemu:///system",     "/org/libvirt/qemu" },
-    { "test:///default",    "/org/libvirt/test" },
+    { "XenApi://localhost/",    "/org/libvirt/XenApi" },
+    { "bhyve:///system",        "/org/libvirt/bhyve" },
+    { "esx://localhost/",       "/org/libvirt/esx" },
+    { "gsx://localhost/",       "/org/libvirt/gsx" },
+    { "hyperv://localhost/",    "/org/libvirt/hyperv" },
+    { "lxc:///",                "/org/libvirt/lxc" },
+    { "openvz:///system",       "/org/libvirt/openvz" },
+    { "phyp://localhost/",      "/org/libvirt/phyp" },
+    { "qemu:///system",         "/org/libvirt/qemu" },
+    { "test:///default",        "/org/libvirt/test" },
+    { "uml:///system",          "/org/libvirt/uml" },
+    { "vbox:///system",         "/org/libvirt/vbox" },
+    { "vpx://localhost/",       "/org/libvirt/vpx" },
+    { "vz:///system",           "/org/libvirt/vz" },
+    { "xen:///",                "/org/libvirt/xen" },
 };
 
 int
-- 
2.14.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [dbus RFC 11/11] main: add support for all libvirt drivers
Posted by Daniel P. Berrange 7 years, 3 months ago
On Mon, Jan 22, 2018 at 06:16:09PM +0100, Pavel Hrdina wrote:
> Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
> ---
>  src/main.c | 26 ++++++++++++++++++++++----
>  1 file changed, 22 insertions(+), 4 deletions(-)
> 
> diff --git a/src/main.c b/src/main.c
> index 14c7c18..6421919 100644
> --- a/src/main.c
> +++ b/src/main.c
> @@ -85,13 +85,31 @@ struct virtDBusDriver {
>  };
>  
>  static const struct virtDBusDriver sessionDrivers[] = {
> -    { "qemu:///session",    "/org/libvirt/qemu" },
> -    { "test:///default",    "/org/libvirt/test" },
> +    { "qemu:///session",            "/org/libvirt/qemu" },
> +    { "test:///default",            "/org/libvirt/test" },
> +    { "uml:///session",             "/org/libvirt/uml" },
> +    { "vbox:///session",            "/org/libvirt/vbox" },
> +    { "vmwarefusion:///session",    "/org/libvirt/vmwarefusion" },
> +    { "vmwareplayer:///session",    "/org/libvirt/vmwareplayer" },
> +    { "vmwarews:///session",        "/org/libvirt/vmwarews" },
>  };
>  
>  static const struct virtDBusDriver systemDrivers[] = {
> -    { "qemu:///system",     "/org/libvirt/qemu" },
> -    { "test:///default",    "/org/libvirt/test" },
> +    { "XenApi://localhost/",    "/org/libvirt/XenApi" },

Hmm, lowercase  'xenapi' would match all other paths, but uppercase
matches the URI scheme.

> +    { "bhyve:///system",        "/org/libvirt/bhyve" },
> +    { "esx://localhost/",       "/org/libvirt/esx" },

Not sure this is useful, as I don't think there's any practical way
to manage ESX from the host it runs on, as that would imply being
able to run custom software inside ESX.

> +    { "gsx://localhost/",       "/org/libvirt/gsx" },
> +    { "hyperv://localhost/",    "/org/libvirt/hyperv" },

I don't think this is useful either.

> +    { "lxc:///",                "/org/libvirt/lxc" },
> +    { "openvz:///system",       "/org/libvirt/openvz" },
> +    { "phyp://localhost/",      "/org/libvirt/phyp" },

IIUC, phyp is also always a remotely executing driver, which needs
to ssh into the hypervisor.

> +    { "qemu:///system",         "/org/libvirt/qemu" },
> +    { "test:///default",        "/org/libvirt/test" },
> +    { "uml:///system",          "/org/libvirt/uml" },
> +    { "vbox:///system",         "/org/libvirt/vbox" },
> +    { "vpx://localhost/",       "/org/libvirt/vpx" },

Same as ESX - remote only.

> +    { "vz:///system",           "/org/libvirt/vz" },
> +    { "xen:///",                "/org/libvirt/xen" },
>  };

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [dbus RFC 11/11] main: add support for all libvirt drivers
Posted by Pavel Hrdina 7 years, 3 months ago
On Tue, Jan 23, 2018 at 10:12:26AM +0000, Daniel P. Berrange wrote:
> On Mon, Jan 22, 2018 at 06:16:09PM +0100, Pavel Hrdina wrote:
> > Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
> > ---
> >  src/main.c | 26 ++++++++++++++++++++++----
> >  1 file changed, 22 insertions(+), 4 deletions(-)
> > 
> > diff --git a/src/main.c b/src/main.c
> > index 14c7c18..6421919 100644
> > --- a/src/main.c
> > +++ b/src/main.c
> > @@ -85,13 +85,31 @@ struct virtDBusDriver {
> >  };
> >  
> >  static const struct virtDBusDriver sessionDrivers[] = {
> > -    { "qemu:///session",    "/org/libvirt/qemu" },
> > -    { "test:///default",    "/org/libvirt/test" },
> > +    { "qemu:///session",            "/org/libvirt/qemu" },
> > +    { "test:///default",            "/org/libvirt/test" },
> > +    { "uml:///session",             "/org/libvirt/uml" },
> > +    { "vbox:///session",            "/org/libvirt/vbox" },
> > +    { "vmwarefusion:///session",    "/org/libvirt/vmwarefusion" },
> > +    { "vmwareplayer:///session",    "/org/libvirt/vmwareplayer" },
> > +    { "vmwarews:///session",        "/org/libvirt/vmwarews" },
> >  };
> >  
> >  static const struct virtDBusDriver systemDrivers[] = {
> > -    { "qemu:///system",     "/org/libvirt/qemu" },
> > -    { "test:///default",    "/org/libvirt/test" },
> > +    { "XenApi://localhost/",    "/org/libvirt/XenApi" },
> 
> Hmm, lowercase  'xenapi' would match all other paths, but uppercase
> matches the URI scheme.

There is another "issue" with the naming, best practices for D-Bus
object names is to have the first letter uppercase, e.g.
"/org/libvirt/Qemu", but that feels strange.

> > +    { "bhyve:///system",        "/org/libvirt/bhyve" },
> > +    { "esx://localhost/",       "/org/libvirt/esx" },
> 
> Not sure this is useful, as I don't think there's any practical way
> to manage ESX from the host it runs on, as that would imply being
> able to run custom software inside ESX.
> 
> > +    { "gsx://localhost/",       "/org/libvirt/gsx" },
> > +    { "hyperv://localhost/",    "/org/libvirt/hyperv" },
> 
> I don't think this is useful either.
> 
> > +    { "lxc:///",                "/org/libvirt/lxc" },
> > +    { "openvz:///system",       "/org/libvirt/openvz" },
> > +    { "phyp://localhost/",      "/org/libvirt/phyp" },
> 
> IIUC, phyp is also always a remotely executing driver, which needs
> to ssh into the hypervisor.
> 
> > +    { "qemu:///system",         "/org/libvirt/qemu" },
> > +    { "test:///default",        "/org/libvirt/test" },
> > +    { "uml:///system",          "/org/libvirt/uml" },
> > +    { "vbox:///system",         "/org/libvirt/vbox" },
> > +    { "vpx://localhost/",       "/org/libvirt/vpx" },
> 
> Same as ESX - remote only.

I've basically included all the drivers because I don't know how
exactly some of them works.  I'm OK with dropping the ones that are
not useful (esx, gsx, vpx, hyperv and phyp).

I'll send a v2 of this patch.

Thanks,

Pavel
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [dbus RFC 11/11] main: add support for all libvirt drivers
Posted by Daniel P. Berrange 7 years, 3 months ago
On Tue, Jan 23, 2018 at 12:37:53PM +0100, Pavel Hrdina wrote:
> On Tue, Jan 23, 2018 at 10:12:26AM +0000, Daniel P. Berrange wrote:
> > On Mon, Jan 22, 2018 at 06:16:09PM +0100, Pavel Hrdina wrote:
> > > Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
> > > ---
> > >  src/main.c | 26 ++++++++++++++++++++++----
> > >  1 file changed, 22 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/src/main.c b/src/main.c
> > > index 14c7c18..6421919 100644
> > > --- a/src/main.c
> > > +++ b/src/main.c
> > > @@ -85,13 +85,31 @@ struct virtDBusDriver {
> > >  };
> > >  
> > >  static const struct virtDBusDriver sessionDrivers[] = {
> > > -    { "qemu:///session",    "/org/libvirt/qemu" },
> > > -    { "test:///default",    "/org/libvirt/test" },
> > > +    { "qemu:///session",            "/org/libvirt/qemu" },
> > > +    { "test:///default",            "/org/libvirt/test" },
> > > +    { "uml:///session",             "/org/libvirt/uml" },
> > > +    { "vbox:///session",            "/org/libvirt/vbox" },
> > > +    { "vmwarefusion:///session",    "/org/libvirt/vmwarefusion" },
> > > +    { "vmwareplayer:///session",    "/org/libvirt/vmwareplayer" },
> > > +    { "vmwarews:///session",        "/org/libvirt/vmwarews" },
> > >  };
> > >  
> > >  static const struct virtDBusDriver systemDrivers[] = {
> > > -    { "qemu:///system",     "/org/libvirt/qemu" },
> > > -    { "test:///default",    "/org/libvirt/test" },
> > > +    { "XenApi://localhost/",    "/org/libvirt/XenApi" },
> > 
> > Hmm, lowercase  'xenapi' would match all other paths, but uppercase
> > matches the URI scheme.
> 
> There is another "issue" with the naming, best practices for D-Bus
> object names is to have the first letter uppercase, e.g.
> "/org/libvirt/Qemu", but that feels strange.

Agree that Qemu is wierd, but I think it would be ok if we fully uppercased
acronyms in the "natural" manner. eg  QEMU rather than Qemu.

So we could have XenAPI, BHyve, ESX, GSX, HyperV, LXC, OpenVZ, PHyp,
QEMU, Test, UML, VBox, VZ



Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list