On 7/14/19 8:03 PM, Cole Robinson wrote:
There's several unresolved RFEs for the <network> bridge
driver that are essentially requests to add XML wrappers
for underlying dnsmasq options.
This series adds a dnsmasq xmlns namespace for <network>
XML that allows passing option strings directly to the
generated dnsmasq config file. It will allow motivated
users to work around libvirt until those types of RFEs
are properly implemented.
This all looks like a reasonable facsimile of the qemu:commandline
stuff, and it worked in my tests (including not creating any problems
with all the existing networks I have on my test system).
My one reservation would be that it will tend to discourage adding
*supported* methods of configuring things that people will instead use
this backdoor to implement. But on the other hand, it makes it possible
to do new things without needing to wait for an officially supported
method (which could take a very long time, or simply never happen, as
we've seen).
(Actually I for some reason thought we already *had* support for the
specific example you used - CNAME records. I guess I had lumped it in
with SRV and TXT records in my memory. It really should be
straightforward to do, and should still be done, but that shouldn't stop
this patch series from going in).
This is for the entire series:
Reviewed-by: Laine Stump <laine(a)laine.org>
Cole Robinson (5):
conf: Add virNetworkXMLOption
conf: Add network xmlopt argument
conf: Add virNetworkXMLNamespace
network: wire up dnsmasq option xmlns
docs: formatnetwork: Document xmlns:dnsmasq
docs/formatnetwork.html.in | 22 +++
docs/schemas/network.rng | 11 ++
src/conf/domain_conf.c | 2 +-
src/conf/network_conf.c | 91 +++++++--
src/conf/network_conf.h | 51 ++++-
src/conf/virnetworkobj.c | 50 +++--
src/conf/virnetworkobj.h | 13 +-
src/esx/esx_network_driver.c | 4 +-
src/libvirt_private.syms | 1 +
src/network/bridge_driver.c | 182 ++++++++++++++++--
src/network/bridge_driver.h | 12 ++
src/network/bridge_driver_platform.h | 2 +
src/qemu/qemu_process.c | 2 +-
src/test/test_driver.c | 11 +-
src/vbox/vbox_network.c | 4 +-
tests/Makefile.am | 14 +-
.../networkxml2confdata/dnsmasq-options.conf | 18 ++
tests/networkxml2confdata/dnsmasq-options.xml | 15 ++
tests/networkxml2conftest.c | 8 +-
tests/networkxml2firewalltest.c | 2 +-
tests/networkxml2xmlin/dnsmasq-options.xml | 15 ++
tests/networkxml2xmlout/dnsmasq-options.xml | 17 ++
tests/networkxml2xmltest.c | 11 +-
tests/networkxml2xmlupdatetest.c | 4 +-
24 files changed, 478 insertions(+), 84 deletions(-)
create mode 100644 tests/networkxml2confdata/dnsmasq-options.conf
create mode 100644 tests/networkxml2confdata/dnsmasq-options.xml
create mode 100644 tests/networkxml2xmlin/dnsmasq-options.xml
create mode 100644 tests/networkxml2xmlout/dnsmasq-options.xml