mirror of https://gitee.com/openkylin/libvirt.git
interface: introduce virtinterfaced daemon
The virtinterfaced daemon will be responsible for providing the interface API driver functionality. The interface driver is still loaded by the main libvirtd daemon at this stage, so virtinterfaced must not be running at the same time. Reviewed-by: Christophe de Dinechin <dinechin@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
1c27cef1e3
commit
62d817a328
|
@ -120,6 +120,9 @@
|
|||
/src/admin/admin_server_dispatch_stubs.h
|
||||
/src/esx/*.generated.*
|
||||
/src/hyperv/*.generated.*
|
||||
/src/interface/test_virtinterfaced.aug
|
||||
/src/interface/virtinterfaced.aug
|
||||
/src/interface/virtinterfaced.conf
|
||||
/src/libvirt*.def
|
||||
/src/libvirt.syms
|
||||
/src/libvirt_access.syms
|
||||
|
@ -176,6 +179,7 @@
|
|||
/src/util/virkeycodetable*.h
|
||||
/src/util/virkeynametable*.h
|
||||
/src/virt-aa-helper
|
||||
/src/virtinterfaced
|
||||
/src/virtlockd
|
||||
/src/virtlogd
|
||||
/src/virtnetworkd
|
||||
|
|
|
@ -1609,6 +1609,14 @@ exit 0
|
|||
%ghost %{_sysconfdir}/libvirt/nwfilter/*.xml
|
||||
|
||||
%files daemon-driver-interface
|
||||
%config(noreplace) %{_sysconfdir}/libvirt/virtinterfaced.conf
|
||||
%{_datadir}/augeas/lenses/virtinterfaced.aug
|
||||
%{_datadir}/augeas/lenses/tests/test_virtinterfaced.aug
|
||||
%{_unitdir}/virtinterfaced.service
|
||||
%{_unitdir}/virtinterfaced.socket
|
||||
%{_unitdir}/virtinterfaced-ro.socket
|
||||
%{_unitdir}/virtinterfaced-admin.socket
|
||||
%attr(0755, root, root) %{_sbindir}/virtinterfaced
|
||||
%{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so
|
||||
|
||||
%files daemon-driver-network
|
||||
|
|
|
@ -41,4 +41,67 @@ libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
|
|||
libvirt_driver_interface_la_SOURCES += $(INTERFACE_DRIVER_UDEV_SOURCES)
|
||||
endif WITH_UDEV
|
||||
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
|
||||
|
||||
sbin_PROGRAMS += virtinterfaced
|
||||
|
||||
nodist_conf_DATA += interface/virtinterfaced.conf
|
||||
augeas_DATA += interface/virtinterfaced.aug
|
||||
augeastest_DATA += interface/test_virtinterfaced.aug
|
||||
CLEANFILES += interface/virtinterfaced.aug
|
||||
|
||||
virtinterfaced_SOURCES = $(REMOTE_DAEMON_SOURCES)
|
||||
virtinterfaced_CFLAGS = \
|
||||
$(REMOTE_DAEMON_CFLAGS) \
|
||||
-DDAEMON_NAME="\"virtinterfaced\"" \
|
||||
-DMODULE_NAME="\"interface\"" \
|
||||
$(NULL)
|
||||
virtinterfaced_LDFLAGS = $(REMOTE_DAEMON_LD_FLAGS)
|
||||
virtinterfaced_LDADD = $(REMOTE_DAEMON_LD_ADD)
|
||||
|
||||
SYSTEMD_UNIT_FILES += \
|
||||
virtinterfaced.service \
|
||||
virtinterfaced.socket \
|
||||
virtinterfaced-ro.socket \
|
||||
virtinterfaced-admin.socket \
|
||||
$(NULL)
|
||||
SYSTEMD_UNIT_FILES_IN += \
|
||||
interface/virtinterfaced.service.in \
|
||||
$(NULL)
|
||||
|
||||
VIRTINTERFACED_UNIT_VARS = \
|
||||
$(VIRTD_UNIT_VARS) \
|
||||
-e 's|[@]name[@]|Libvirt interface|g' \
|
||||
-e 's|[@]service[@]|virtinterfaced|g' \
|
||||
-e 's|[@]sockprefix[@]|virtinterfaced|g' \
|
||||
$(NULL)
|
||||
|
||||
virtinterfaced.service: interface/virtinterfaced.service.in $(top_builddir)/config.status
|
||||
$(AM_V_GEN)$(SED) $(VIRTINTERFACED_UNIT_VARS) $< > $@-t && mv $@-t $@
|
||||
|
||||
virtinterface%.socket: remote/libvirt%.socket.in $(top_builddir)/config.status
|
||||
$(AM_V_GEN)$(SED) $(VIRTINTERFACED_UNIT_VARS) $< > $@-t && mv $@-t $@
|
||||
|
||||
interface/virtinterfaced.conf: remote/libvirtd.conf.in
|
||||
$(AM_V_GEN)$(SED) \
|
||||
-e '/[@]CUT_ENABLE_IP[@]/,/[@]END[@]/d' \
|
||||
-e 's/[@]DAEMON_NAME[@]/virtinterfaced/' \
|
||||
$< > $@
|
||||
|
||||
interface/virtinterfaced.aug: remote/libvirtd.aug.in
|
||||
$(AM_V_GEN)$(SED) \
|
||||
-e '/[@]CUT_ENABLE_IP[@]/,/[@]END[@]/d' \
|
||||
-e 's/[@]DAEMON_NAME[@]/virtinterfaced/' \
|
||||
-e 's/[@]DAEMON_NAME_UC[@]/Virtinterfaced/' \
|
||||
$< > $@
|
||||
|
||||
interface/test_virtinterfaced.aug: remote/test_libvirtd.aug.in \
|
||||
interface/virtinterfaced.conf $(AUG_GENTEST)
|
||||
$(AM_V_GEN)$(AUG_GENTEST) interface/virtinterfaced.conf \
|
||||
$(srcdir)/remote/test_libvirtd.aug.in | \
|
||||
$(SED) \
|
||||
-e '/[@]CUT_ENABLE_IP[@]/,/[@]END[@]/d' \
|
||||
-e 's/[@]DAEMON_NAME[@]/virtinterfaced/' \
|
||||
-e 's/[@]DAEMON_NAME_UC[@]/Virtinterfaced/' \
|
||||
> $@ || rm -f $@
|
||||
|
||||
endif WITH_INTERFACE
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
[Unit]
|
||||
Description=Virtualization interface daemon
|
||||
Conflicts=libvirtd.service
|
||||
Requires=virtinterfaced.socket
|
||||
Requires=virtinterfaced-ro.socket
|
||||
Requires=virtinterfaced-admin.socket
|
||||
After=network.target
|
||||
After=dbus.service
|
||||
After=apparmor.service
|
||||
After=local-fs.target
|
||||
Documentation=man:libvirtd(8)
|
||||
Documentation=https://libvirt.org
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
ExecStart=@sbindir@/virtinterfaced --timeout 120
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Also=virtinterfaced.socket
|
||||
Also=virtinterfaced-ro.socket
|
||||
Also=virtinterfaced-admin.socket
|
Loading…
Reference in New Issue