On Wed, Dec 01, 2010 at 05:35:38PM +0800, Osier Yang wrote:
Hi, all
We have some new requirements of preferences, I listed
which of them I known, and think is useful as follows:
1) for the path of x509 certificate and keys of client
The path of x509 certificate and keys of client is hard
coded in remote driver. e.g.
/* Defaults for PKI directory. */
# define LIBVIRT_PKI_DIR SYSCONFDIR "/pki"
# define LIBVIRT_CACERT LIBVIRT_PKI_DIR "/CA/cacert.pem"
# define LIBVIRT_CLIENTKEY LIBVIRT_PKI_DIR "/libvirt/private
/clientkey.pem"
# define LIBVIRT_CLIENTCERT LIBVIRT_PKI_DIR "/libvirt/clientcert.pem"
We can't assume one set of certs/keys is suitable for all
URIs, so making this a preference setting doesn't help. There
needs to be a parameter in the URI to specify a cert/key name
to override the defaults on a per-connection basis
2) for default default driver and subdriver for disk image
Another requirement of new preference is default driver and subdriver
for disk images, currently we use "phy" for "driver" in virsh, and
"raw" for "subdriver" in qemu driver by default if user doesn't
specify
them, it causes bugs, though we could say to user "you should use
options --driver and --subdriver", but these two options are optional.
IMHO, the best solution for those bugs is to provide new preferences.
virsh is broken here. It shouldn't be setting the driver if the
user doesn't specify it. The libvirt hypervisor specific drivers
know the correct defaults if omitted, so virsh shouldn't try to
guess this (wrongly) itself.
3) for default NIC and storage type
"Chris Phillips" raised up the requirement not long ago:
http://www.redhat.com/archives/libvirt-users/2010-November/msg00033.html
This doesn't belong in libvirt. See my reply in that thread.
====================
Should we add these new preferences(if they are really neccessary)
in qemu.conf? or create new config file, e.g. The approch Justin
raised up an approch before:
http://www.redhat.com/archives/libvir-list/2010-November/msg00651.html
Though for Justin's approch, IMHO we'd better also to provide a
default config file, e.g. "/etc/libvirt/client.conf".
Library APIs like libvirt shouldn't really rely on preference files,
because such a file would silently change behaviour in ways that
applications using the API may not expect. ie the preference
may work nicely for one app/user of libvirt, but not for another
app. Environment variables would cause similar problems too. Anything
that needs to be configured should be configurable via the APIs or
XML.
Regards,
Daniel