[libvirt] [PATCH 8/8] Removing probing of secondary drivers
Daniel P. Berrange
berrange at redhat.com
Wed Jan 21 10:15:37 UTC 2015
On Wed, Jan 21, 2015 at 11:08:54AM +0100, Michal Privoznik wrote:
> On 20.01.2015 17:37, Daniel P. Berrange wrote:
> > For stateless, client side drivers, it is never correct to
> > probe for secondary drivers. It is only ever appropriate to
> > use the secondary driver that is associated with the
> > hypervisor in question. As a result the ESX & HyperV drivers
> > have both been forced to do hacks where they register no-op
> > drivers for the ones they don't implement.
> >
> > For stateful, server side drivers, we always just want to
> > use the same built-in shared driver. The exception is
> > virtualbox which is really a stateless driver and so wants
> > to use its own server side secondary drivers. To deal with
> > this virtualbox has to be built as 3 separate loadable
> > modules to allow registration to work in the right order.
> >
> > This can all be simplified by introducing a new struct
> > recording the precise set of secondary drivers each
> > hypervisor driver wants
> >
> > struct _virConnectDriver {
> > virHypervisorDriverPtr hypervisorDriver;
> > virInterfaceDriverPtr interfaceDriver;
> > virNetworkDriverPtr networkDriver;
> > virNodeDeviceDriverPtr nodeDeviceDriver;
> > virNWFilterDriverPtr nwfilterDriver;
> > virSecretDriverPtr secretDriver;
> > virStorageDriverPtr storageDriver;
> > };
> >
> > Instead of registering the hypervisor driver, we now
> > just register a virConnectDriver instead. This allows
> > us to remove all probing of secondary drivers. Once we
> > have chosen the primary driver, we immediately know the
> > correct secondary drivers to use.
> >
> > Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> > ---
> > daemon/libvirtd.c | 19 +-
> > src/Makefile.am | 63 +------
> > src/bhyve/bhyve_driver.c | 14 +-
> > src/check-driverimpls.pl | 3 +-
> > src/datatypes.c | 12 --
> > src/driver-hypervisor.h | 3 -
> > src/driver-interface.h | 9 -
> > src/driver-network.h | 11 +-
> > src/driver-nodedev.h | 8 +-
> > src/driver-nwfilter.h | 13 +-
> > src/driver-secret.h | 12 +-
> > src/driver-storage.h | 12 +-
> > src/driver.h | 54 +++---
> > src/esx/esx_device_monitor.c | 74 --------
> > src/esx/esx_device_monitor.h | 28 ---
> > src/esx/esx_driver.c | 25 +--
> > src/esx/esx_interface_driver.c | 37 +---
> > src/esx/esx_interface_driver.h | 4 +-
> > src/esx/esx_network_driver.c | 37 +---
> > src/esx/esx_network_driver.h | 4 +-
> > src/esx/esx_nwfilter_driver.c | 74 --------
> > src/esx/esx_nwfilter_driver.h | 28 ---
> > src/esx/esx_secret_driver.c | 72 -------
> > src/esx/esx_secret_driver.h | 27 ---
> > src/esx/esx_storage_driver.c | 37 +---
> > src/esx/esx_storage_driver.h | 4 +-
> > src/hyperv/hyperv_device_monitor.c | 71 -------
> > src/hyperv/hyperv_device_monitor.h | 28 ---
> > src/hyperv/hyperv_driver.c | 25 +--
> > src/hyperv/hyperv_interface_driver.c | 71 -------
> > src/hyperv/hyperv_interface_driver.h | 28 ---
> > src/hyperv/hyperv_network_driver.c | 71 -------
> > src/hyperv/hyperv_network_driver.h | 28 ---
> > src/hyperv/hyperv_nwfilter_driver.c | 71 -------
> > src/hyperv/hyperv_nwfilter_driver.h | 28 ---
> > src/hyperv/hyperv_secret_driver.c | 71 -------
> > src/hyperv/hyperv_secret_driver.h | 28 ---
> > src/hyperv/hyperv_storage_driver.c | 71 -------
> > src/hyperv/hyperv_storage_driver.h | 28 ---
> > src/interface/interface_backend_netcf.c | 26 +--
> > src/interface/interface_backend_udev.c | 25 +--
> > src/libvirt.c | 323 ++++++++++++++------------------
> > src/libvirt_private.syms | 14 +-
> > src/libxl/libxl_driver.c | 10 +-
> > src/lxc/lxc_driver.c | 10 +-
> > src/network/bridge_driver.c | 25 +--
> > src/node_device/node_device_driver.c | 10 +-
> > src/node_device/node_device_hal.c | 26 +--
> > src/node_device/node_device_udev.c | 23 +--
> > src/nwfilter/nwfilter_driver.c | 25 +--
> > src/openvz/openvz_driver.c | 12 +-
> > src/phyp/phyp_driver.c | 64 +------
> > src/qemu/qemu_driver.c | 10 +-
> > src/remote/remote_driver.c | 152 ++-------------
> > src/secret/secret_driver.c | 25 +--
> > src/storage/storage_driver.c | 25 +--
> > src/test/test_driver.c | 156 ++-------------
> > src/uml/uml_driver.c | 10 +-
> > src/vbox/vbox_common.c | 1 -
> > src/vbox/vbox_driver.c | 47 ++---
> > src/vbox/vbox_network.c | 32 ----
> > src/vbox/vbox_storage.c | 30 ---
> > src/vmware/vmware_driver.c | 12 +-
> > src/xen/xen_driver.c | 11 +-
> > src/xenapi/xenapi_driver.c | 10 +-
> > tests/qemuxml2argvtest.c | 17 --
> > tests/virdrivermoduletest.c | 18 +-
> > 67 files changed, 336 insertions(+), 2116 deletions(-)
> > delete mode 100644 src/esx/esx_device_monitor.c
> > delete mode 100644 src/esx/esx_device_monitor.h
> > delete mode 100644 src/esx/esx_nwfilter_driver.c
> > delete mode 100644 src/esx/esx_nwfilter_driver.h
> > delete mode 100644 src/esx/esx_secret_driver.c
> > delete mode 100644 src/esx/esx_secret_driver.h
> > delete mode 100644 src/hyperv/hyperv_device_monitor.c
> > delete mode 100644 src/hyperv/hyperv_device_monitor.h
> > delete mode 100644 src/hyperv/hyperv_interface_driver.c
> > delete mode 100644 src/hyperv/hyperv_interface_driver.h
> > delete mode 100644 src/hyperv/hyperv_network_driver.c
> > delete mode 100644 src/hyperv/hyperv_network_driver.h
> > delete mode 100644 src/hyperv/hyperv_nwfilter_driver.c
> > delete mode 100644 src/hyperv/hyperv_nwfilter_driver.h
> > delete mode 100644 src/hyperv/hyperv_secret_driver.c
> > delete mode 100644 src/hyperv/hyperv_secret_driver.h
> > delete mode 100644 src/hyperv/hyperv_storage_driver.c
> > delete mode 100644 src/hyperv/hyperv_storage_driver.h
>
> Instead of finding a needle in haystack (read pointing out line in
> the diff that needs to be fixed), I'm pasting diff that you need to
> squash in. I'm sure you'll get the idea why:
Hehe, thanks. I forgot that we needed an SDK to compile the
parallels driver now. Any idea if that's in Fedora yet ?
Regards,
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