Daniel P. Berrange wrote:
On Mon, Jul 16, 2007 at 08:20:54AM -0700, Dan Smith wrote:
DB> I don't. The API should be hypervisor agnostic. Needing to pass
DB> HV specific attributes to make it works shows we have failed.
In that case, haven't we already failed with virDomainCreate() since
it takes hypervisor-specific XML? Doesn't the presence of
VIR_DEVICE_RW_FORCE imply knowledge of Xen-specific behavior?
The XML is *not* hypervisor specific. There is a subtle difference is between
hypervisor specific concepts, and generic concepts which may only only be
relevant to a sub-set of hypervisors.
How would you handle someone wanting to use tcp:// or ssh:// with
qemu?
If we need to express some choice of data channel, TCP, vs SSH, vs SSL/TLS
then figure out a way to expose that in the API with an hypervisor agnostic
way. Exposing raw QEMU migration URIs is *not* hypervisor agnostic.
Why? If nothing but QEMU support ssh:// then exposing an API to do SSH
migration isn't really hypervisor agnostic. It's an API for QEMU.
If you don't expose raw URIs, then you can never support pluggable
migration transports which I will implement in the not to distant future.
I think there's a balance between being hypervisor agnostic and only
supporting the least common denominator. Whenever there's a possibility
to be common, I think libvirt should strive to provide a common
interface but I still think it's important to unique features of the
particular virtualization solution.
Regards,
Anthony Liguori
Exposing
a flag VIR_CHANNEL_CLEAR, VIR_CHANNEL_SSH, VIR_CHANNEL_TLS is agnostic
because it allows the same syntax to be used regardless of driver. Now some
drivers may only support a subset of channel types, but that's OK.
Dan.
--
Libvir-list mailing list
Libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list