On 03/24/2010 04:25 PM, Luiz Capitulino wrote:
I see it as a related problem, because what seems to be under discussion
is the quality of our interfaces with humans and tools.
Also, when we were discussing the usuability problems I remember that
you
*WARNING: I might be wrong here, please correct me if so*
you said that you don't push users to libvirt because it's out of sync with
our features.
Yes.
The point is that, even if this true and even if we solve that,
I don't think it will solve the problem of a good experience for a
'single VM user', because libvirt is more than that and people will likely
be annoyed as much as they are today.
I believe this problem is up to us to solve.
With my qemu hat on, I'm happy to ignore libvirt and say we need to own
our interfaces and to compete with libvirt for users.
But with my Linux virtualization hat on, I want to see a single
management interface that users can use without having to make a choice
between libvirt features or libqemu features.
>> Then we make virt-manager optional and this is good
because we can sync
>> features way faster and we don't have to care about _managing_ several
>> VMs, our world in terms of usability and maintainability is about one VM.
>>
>> IMVHO, everything else should be done by third-party tools like libvirt,
>> we just provide the means for it.
>>
>>
> We need to have a common management interface for third party tools.
>
QMP? :-)
Only if QMP is compatible with libvirt. I don't want a user to have to
choose between QMP and libvirt.
> So far, a libqemu.so with a flexible transport that could be
used
> directly by a libvirt user (ala cairo/gdk type interactions) seems like
> the best solution to me.
>
I tend to disagree.
First, I think we should invest our time and effort on the text protocol
business, which is QMP. Having yet another public interface will likely split
efforts a bit and will make clients' life harder (which one should I choose?
What if they get out of sync?). Not to mention that I think Paul has a point,
if QMP is not useful here, why do we have it in the first place (vs. a C library
from the beginning)?
You mentioned dynamic dispatch, but this is useful only for C clients right?
If so, what C clients you expected beyond libvirt?
Users want a C API. I don't agree that libvirt is the only C interface
consumer out there.
Note that libvirt has added
a new events API recently.
The second most important point for me is: why do you believe that
libqemu.so is going to improve things? Do you expect that libvirt will
sync faster?
With GDK and Cairo, when Cairo adds a new feature, GDK doesn't have to
do anything to support it. Users just get a cairo context from GDK and
use the cairo API directly.
GDK provides a higher level interface for 2d operations that is more
platform agnostic, and users can choice to use that or write directly to
the cairo API.
If this is the case, I think it will be as slower as it's
currently, as the problem is not the availability of interfaces, but
most likely community integration.
I like the idea of having a transient qemu-specific API in libvirt,
as suggested by someone in this thread.
I really think what we want is for a libvirt user to be able to call
libqemu functions directly. There shouldn't have to be libvirt specific
functions for every operation we expose.
Regards,
Anthony Liguori