1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-20 07:59:00 +00:00
libvirt/src/logging/meson.build
Oleg Vasilev 69eeef5dfb logging: add log cleanup for obsolete domains
Before, logs from deleted machines have been piling up, since there were
no garbage collection mechanism. Now, virtlogd can be configured to
periodically scan the log folder for orphan logs with no recent modifications
and delete it.

A single chain of recent and rotated logs is deleted in a single transaction.

Signed-off-by: Oleg Vasilev <oleg.vasilev@virtuozzo.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2023-02-06 15:28:51 +01:00

113 lines
2.4 KiB
Meson

log_driver_sources = [
'log_manager.c',
]
log_protocol = 'log_protocol.x'
log_protocol_generated = []
log_protocol_header_generated = custom_target(
'log_protocol.h',
input: log_protocol,
output: 'log_protocol.h',
command: [
genprotocol_prog, rpcgen_prog, '-h', '@INPUT@', '@OUTPUT@'
],
)
log_protocol_generated += log_protocol_header_generated
log_protocol_generated += custom_target(
'log_protocol.c',
input: log_protocol,
output: 'log_protocol.c',
command: [
genprotocol_prog, rpcgen_prog, '-c', '@INPUT@', '@OUTPUT@'
],
)
log_daemon_sources = files(
'log_daemon.c',
'log_daemon_config.c',
'log_daemon_dispatch.c',
'log_handler.c',
'log_cleaner.c',
)
if conf.has('WITH_REMOTE')
log_driver_lib = static_library(
'virt_log_driver',
[
log_driver_sources,
log_protocol_generated,
],
dependencies: [
rpc_dep,
src_dep,
xdr_dep,
],
)
libvirt_libs += log_driver_lib
used_sym_files += 'libvirt_logging.syms'
else
sym_files += 'libvirt_logging.syms'
endif
if conf.has('WITH_LIBVIRTD')
log_daemon_generated = custom_target(
'log_daemon_dispatch_stubs.h',
input: log_protocol,
output: 'log_daemon_dispatch_stubs.h',
command: [
gendispatch_prog, '--mode=server',
'virLogManagerProtocol', 'VIR_LOG_MANAGER_PROTOCOL', '@INPUT@',
],
capture: true,
)
virt_daemons += {
'name': 'virtlogd',
'sources': [
log_daemon_sources,
log_daemon_generated,
log_protocol_generated,
],
'include': [
include_directories('.'),
],
}
virt_conf_files += files('virtlogd.conf')
virt_aug_files += files('virtlogd.aug')
virt_test_aug_files += {
'name': 'test_virtlogd.aug',
'aug': files('test_virtlogd.aug.in'),
'conf': files('virtlogd.conf'),
'test_name': 'virtlogd',
'test_srcdir': meson.current_source_dir(),
'test_builddir': meson.current_build_dir(),
}
virt_daemon_units += {
'service': 'virtlogd',
'service_in': files('virtlogd.service.in'),
'name': '',
'sockprefix': '',
'sockets': [ 'main', 'admin' ],
'socket_in': files('virtlogd.socket.in'),
'socket_admin_in': files('virtlogd-admin.socket.in'),
}
openrc_init_files += {
'name': 'virtlogd',
'in_file': files('virtlogd.init.in'),
}
endif
log_inc_dir = include_directories('.')
log_dep = declare_dependency(
include_directories: log_inc_dir,
sources: log_protocol_header_generated,
)