libvirt/m4
Daniel P. Berrangé b18c273a24 remote: enable connecting to the per-driver daemons
Historically URIs handled by the remote driver will always connect to
the libvirtd UNIX socket. There will now be one daemon per driver, and
each of these has its own UNIX sockets to connect to.

It will still be possible to run the traditional monolithic libvirtd
though, which will have the original UNIX socket path.

In addition there is a virproxyd daemon that doesn't run any drivers,
but provides proxying for clients accessing libvirt over IP sockets, or
tunnelling to the legacy libvirtd UNIX socket path.

Finally when running inside a daemon, the remote driver must not reject
connections unconditionally. For example, the QEMU driver needs to be
able to connect to the network driver. The remote driver must thus be
willing to handle connections even when inside the daemon, provided no
local driver is registered.

This refactoring enables the remote driver to be able to connect to the
per-driver daemons. The URI parameter "mode" accepts the values "auto",
"direct" and "legacy" to control which daemons are connected to.

The client side libvirt.conf config file also supports a "remote_mode"
setting which is used if the URI parameter is not set.

If neither the config file or URI parameter set a mode, then "auto"
is used, whereby the client looks to see which sockets actually exist
right now.

The remote driver will only ever spawn the per-driver daemons, or
the legacy libvirtd. It won't ever try to spawn virtproxyd, as
that is only there for IP based connectivity, or for access from
legacy remote clients.

If connecting to a remote host over any kind of ssh tunnel, for now we
must assume only the legacy socket exists. A future patch will introduce
a netcat replacement that is tailored for libvirt to make remote
tunnelling easier.

The configure arg '--with-remote-default-mode=legacy|direct' allows
packagers to set a default at build time. If not given, it will default
to legacy mode.

Eventually the default will switch to direct mode. Distros can choose
to do the switch earlier if desired. The main blocker is testing and
suitable SELinux/AppArmor policies.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-08-09 14:06:31 +01:00
..
virt-acl.m4 m4: Fix missing with_acl variable 2017-05-26 11:37:44 +02:00
virt-apparmor.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-arg.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-atomic.m4 configure: move atomic check to its own file 2016-12-21 15:39:38 +01:00
virt-attr.m4 Fix include for xattr.h 2018-08-06 11:50:53 +02:00
virt-audit.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-bash-completion.m4 m4: Don't enable bash-completion by default 2018-01-12 10:43:30 +01:00
virt-blkid.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-capng.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-chrdev-lock-files.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-compile-pie.m4 Fix '-pie' build with clang 2016-02-09 13:29:53 +01:00
virt-compile-warnings.m4 build: bump min required gcc to 4.8 2019-08-07 14:26:12 +01:00
virt-curl.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-dbus.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-debug.m4 configure: move debug check to its own file 2016-12-21 15:39:40 +01:00
virt-default-editor.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-devmapper.m4 m4/virt-devmapper: use LIBVIRT_CHECK_(PKG|LIB) 2016-12-21 15:39:39 +01:00
virt-dlopen.m4 configure: move dlopen check to its own file 2016-12-21 15:39:38 +01:00
virt-driver-bhyve.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-esx.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-hyperv.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-interface.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-libvirtd.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-libxl.m4 libxl: add support for PVH 2018-11-26 16:31:21 -07:00
virt-driver-lxc.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-modules.m4 make: Drop building without driver modules 2017-07-27 12:00:35 +02:00
virt-driver-network.m4 Fix spelling for macOS 2019-04-15 11:09:10 +02:00
virt-driver-openvz.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-phyp.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-qemu.m4 Fix spelling for macOS 2019-04-15 11:09:10 +02:00
virt-driver-remote.m4 remote: enable connecting to the per-driver daemons 2019-08-09 14:06:31 +01:00
virt-driver-test.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-vbox.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-vmware.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-vz.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-driver-xenapi.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-dtrace.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-external-programs.m4 m4: Drop needless string checks 2019-05-17 15:08:59 +02:00
virt-firewalld-zone.m4 configure: selectively install a firewalld 'libvirt' zone 2019-02-01 12:08:37 -05:00
virt-firewalld.m4 configure: change HAVE_FIREWALLD to WITH_FIREWALLD 2019-02-01 12:08:37 -05:00
virt-fuse.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-gluster.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-gnutls.m4 configure: Require GnuTLS 2018-06-05 14:32:03 +02:00
virt-hal.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-host-validate.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-init-script.m4 m4: Simplify LIBVIRT_CHECK_INIT_SCRIPT 2019-03-15 18:36:19 +01:00
virt-lib.m4 m4/virt-arg: Move LIBVIRT_ARG_* macros to their own file 2016-12-22 15:20:05 +01:00
virt-libiscsi.m4 configure: Introduce libiscsi in build system 2018-08-06 12:23:55 +02:00
virt-libnl.m4 configure: move libnl check to its own file 2016-12-21 15:39:39 +01:00
virt-libpcap.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-libssh.m4 rpc: virnetlibsshsession: update deprecated functions 2019-06-21 09:49:24 +02:00
virt-libxml.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-linker-no-indirect.m4 Check for --no-copy-dt-needed linker flag 2013-08-22 16:17:36 +02:00
virt-linker-no-undefined.m4 build: passing the "-z defs" linker flag to prevent undefined symbols 2018-02-09 11:05:10 +00:00
virt-linker-relro.m4 Simplify RELRO_LDFLAGS 2013-08-22 16:17:35 +02:00
virt-loader-nvram.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-login-shell.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-macvtap.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-netcf.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-nls.m4 po: don't install gmo files when --disable-nls is given 2018-06-05 17:36:42 +01:00
virt-nss.m4 Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
virt-numactl.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-numad.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-nwfilter.m4 configure: move nwfilter check to its own file 2016-12-21 15:39:39 +01:00
virt-openwsman.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-parted.m4 m4/virt-parted: use LIBVIRT_CHECK_PKG 2016-12-21 15:39:40 +01:00
virt-pciaccess.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-pm-utils.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-polkit.m4 polkit: reintroduce check for pkcheck 2018-03-25 22:27:22 +02:00
virt-pthread.m4 configure: move pthread check it its own file 2016-12-21 15:39:38 +01:00
virt-readline.m4 m4: readline: Add gross kludge for include path 2019-04-12 16:22:32 +02:00
virt-result.m4 Add some autoconf helper macros for checking for libraries 2013-01-11 11:03:22 +00:00
virt-sanlock.m4 locking: Add support for sanlock_strerror 2017-04-27 11:44:11 +02:00
virt-sasl.m4 m4: sasl: Use pkg-config 2019-04-12 09:16:08 +02:00
virt-secdriver-apparmor.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-secdriver-selinux.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-selinux.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-ssh2.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-storage-dir.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-storage-disk.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-storage-fs.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-storage-gluster.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-storage-iscsi-direct.m4 storage: Implement iscsi_direct pool backend 2018-08-06 12:23:55 +02:00
virt-storage-iscsi.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-storage-lvm.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-storage-mpath.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-storage-rbd.m4 storage: add support for new rbd_list2 method 2019-03-18 15:21:10 +00:00
virt-storage-scsi.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-storage-sheepdog.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-storage-vstorage.m4 configure: Fix copy-paste error in vstorage backend check 2017-01-27 10:37:56 +01:00
virt-storage-zfs.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-sysctl.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-tls-priority.m4 configure: fix indentation in TLS priority result 2017-01-24 17:24:14 +01:00
virt-udev.m4 build: drop check for udev_monitor_set_receive_buffer_size 2019-05-16 16:39:46 +02:00
virt-virtualport.m4 m4/virt-arg: Rename LIBVIRT_ARG_WITH* macros 2016-12-22 15:20:05 +01:00
virt-win-common.m4 configure: move windows common check to its own file 2016-12-21 15:39:39 +01:00
virt-win-cygwin.m4 configure: move Cygwin check to its own file 2016-12-21 15:39:39 +01:00
virt-win-mingw.m4 configure: move MinGW check to its own file 2016-12-21 15:39:39 +01:00
virt-win-symbols.m4 configure: move windows symbols check to its own file 2016-12-21 15:39:39 +01:00
virt-win-windres.m4 configure: move windres check to its own file 2016-12-21 15:39:39 +01:00
virt-wireshark.m4 tools: Drop support for pre-2.4.0 wireshark 2019-02-12 09:22:59 +01:00
virt-xdr.m4 configure: move XDR check to its own file 2016-12-21 15:39:38 +01:00
virt-yajl.m4 m4: Fix check for yajl.pc 2019-07-08 12:01:27 +02:00