diff --git a/CHANGELOG b/CHANGELOG index 7cbff4c..37a6f55 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +* Fri Jan 03 2025 Steven Pritchard - 8.10.1 +- Convert templates from ERB to EPP (#159) + * Thu Jan 02 2025 Steven Pritchard - 8.10.0 - Clean up for rubocop - Fix more use of legacy facts diff --git a/manifests/config.pp b/manifests/config.pp index 14f9502..ff975dd 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -375,16 +375,16 @@ Rsyslog::QueueType $main_msg_queue_type = 'LinkedList', String[1] $main_msg_queue_filename = 'main_msg_queue', Integer[0] $main_msg_queue_max_file_size = 5, - Optional[Integer[0]] $main_msg_queue_size = undef, - Optional[Integer[0]] $main_msg_queue_high_watermark = undef, - Optional[Integer[0]] $main_msg_queue_low_watermark = undef, - Optional[Integer[0]] $main_msg_queue_discardmark = undef, - Optional[Integer[0]] $main_msg_queue_worker_thread_minimum_messages = undef, - Optional[Integer[0]] $main_msg_queue_worker_threads = undef, + Integer[0] $main_msg_queue_size = [Integer(([$facts['memory']['system']['total_bytes'] >> 20, 128].max() * 2048) / 100), 2097152].min(), + Integer[0] $main_msg_queue_high_watermark = round($main_msg_queue_size * 0.9), + Integer[0] $main_msg_queue_low_watermark = round($main_msg_queue_size * 0.7), + Integer[0] $main_msg_queue_discardmark = round($main_msg_queue_size * 0.98), + Integer[0] $main_msg_queue_worker_thread_minimum_messages = Integer($main_msg_queue_size / (([$facts['processors']['count'], 2].max() - 1) * 4)), + Integer[0] $main_msg_queue_worker_threads = [$facts['processors']['count'] - 1, 1].max(), Integer[0] $main_msg_queue_timeout_enqueue = 100, Integer[0] $main_msg_queue_dequeue_slowdown = 0, Rsyslog::Boolean $main_msg_queue_save_on_shutdown = true, - Optional[Integer[0]] $main_msg_queue_max_disk_space = undef, + Variant[Integer[0], String[1]] $main_msg_queue_max_disk_space = "${round($main_msg_queue_size / 1024)}M", Rsyslog::Boolean $repeated_msg_reduction = true, Stdlib::Absolutepath $work_directory = '/var/spool/rsyslog', @@ -424,7 +424,7 @@ Optional[Rsyslog::Options] $extra_imtcp_mod_params = undef, Optional[Rsyslog::Options] $extra_imudp_mod_params = undef, Optional[Rsyslog::Options] $extra_imuxsock_mod_params = undef, - Optional[Rsyslog::Options] $extra_main_queue_params = undef + Optional[Rsyslog::Options] $extra_main_queue_params = undef, ) { assert_private() @@ -536,7 +536,7 @@ | RSYSLOG_CONF file { '/etc/rsyslog.conf': - ensure => 'present', + ensure => file, owner => 'root', group => 'root', mode => '0600', @@ -557,7 +557,7 @@ } rsyslog::rule { '00_simp_pre_logging/global.conf': - content => template("${module_name}/config/pre_logging.conf.erb") + content => epp("${module_name}/config/pre_logging.conf.epp"), } rsyslog::rule { '09_failover_hack/failover_hack.conf': diff --git a/manifests/rule/console.pp b/manifests/rule/console.pp index 56e5669..d5a6210 100644 --- a/manifests/rule/console.pp +++ b/manifests/rule/console.pp @@ -32,13 +32,13 @@ # define rsyslog::rule::console ( String $rule, - Array[String] $users + Array[String] $users, ) { - $_safe_name = regsubst($name,'/','__') + $_safe_name = regsubst($name, '/', '__') rsyslog::rule { "06_simp_console/${_safe_name}.conf": - content => inline_template('if (<%= @rule.split("\n").collect{ |x| x.sub(/^\s+/,"") }.join("\n") %>) then action( type="omusrmsg" - <%= @users.sort.map{|x| user = %(Users="#{x}")}.join("\n ") %> + content => inline_epp('if (<%= $rule.split("\n").map |$x| { $x.lstrip() }.join("\n") %>) then action( type="omusrmsg" + <%= $users.sort.map |$x| { "Users=\"${x}\"" }.join("\n ") %> )' ) } diff --git a/manifests/rule/data_source.pp b/manifests/rule/data_source.pp index b387da0..41ef614 100644 --- a/manifests/rule/data_source.pp +++ b/manifests/rule/data_source.pp @@ -36,12 +36,12 @@ # # The filename that you will be dropping into place. # -define rsyslog::rule::data_source( - String $rule +define rsyslog::rule::data_source ( + String $rule, ) { - $_safe_name = regsubst($name,'/','__') + $_safe_name = regsubst($name, '/', '__') rsyslog::rule { "05_simp_data_sources/${_safe_name}.conf": - content => inline_template('<%= @rule.split("\n").collect{ |x| x.sub(/^\s+/,"") }.join("\n") %>') + content => inline_epp('<%= $rule.split("\n").map |$x| { $x.lstrip() }.join("\n") %>'), } } diff --git a/manifests/rule/drop.pp b/manifests/rule/drop.pp index 54c3de0..25f376d 100644 --- a/manifests/rule/drop.pp +++ b/manifests/rule/drop.pp @@ -34,6 +34,6 @@ $_safe_name = regsubst($name,'/','__') rsyslog::rule { "07_simp_drop_rules/${_safe_name}.conf": - content => inline_template('if (<%= @rule.split("\n").collect{ |x| x.sub(/^\s+/,"") }.join("\n") + ") then stop\n" %>') + content => inline_epp('if (<%= $rule.split("\n").map |$x| { $x.lstrip() }.join("\n") %>) then stop\n" %>') } } diff --git a/manifests/rule/local.pp b/manifests/rule/local.pp index ced31be..c91fe2e 100644 --- a/manifests/rule/local.pp +++ b/manifests/rule/local.pp @@ -181,16 +181,14 @@ Optional[Integer[0]] $queue_dequeue_slowdown = undef, Optional[Integer[0]] $queue_dequeue_time_begin = undef, Optional[Integer[0]] $queue_dequeue_time_end = undef, - Optional[String[1]] $content = undef + Optional[String[1]] $content = undef, ) { - unless ($rule or $content) { fail('You must specify "$rule" if you are not specifying "$content"') } $_safe_name = regsubst($name,'/','__') - if $content { $_content = $content } @@ -235,10 +233,65 @@ } } - $_content = template("${module_name}/rule/local.erb") + $_content = epp( + "${module_name}/rule/local.epp", + 'rule' => $rule, + 'target_log_file' => $target_log_file, + 'stop_processing' => $stop_processing, + 'dyna_file' => $dyna_file, + 'template' => $template, + 'dyna_file_cache_size' => $dyna_file_cache_size, + 'zip_level' => $zip_level, + 'very_robust_zip' => $very_robust_zip, + 'flush_interval' => $flush_interval, + 'async_writing' => $async_writing, + 'flush_on_tx_end' => $flush_on_tx_end, + 'io_buffer_size' => $io_buffer_size, + 'dir_owner' => $dir_owner, + 'dir_owner_num' => $dir_owner_num, + 'dir_group' => $dir_group, + 'dir_group_num' => $dir_group_num, + 'file_owner' => $file_owner, + 'file_owner_num' => $file_owner_num, + 'file_group' => $file_group, + 'file_group_num' => $file_group_num, + 'file_create_mode' => $file_create_mode, + 'dir_create_mode' => $dir_create_mode, + 'fail_on_chown_failure' => $fail_on_chown_failure, + 'create_dirs' => $create_dirs, + 'sync' => $sync, + 'sig_provider' => $sig_provider, + 'cry_provider' => $cry_provider, + 'queue_filename' => $queue_filename, + 'queue_spool_directory' => $queue_spool_directory, + 'queue_size' => $queue_size, + 'queue_dequeue_batch_size' => $queue_dequeue_batch_size, + 'queue_max_disk_space' => $queue_max_disk_space, + 'queue_high_watermark' => $queue_high_watermark, + 'queue_low_watermark' => $queue_low_watermark, + 'queue_full_delay_mark' => $queue_full_delay_mark, + 'queue_light_delay_mark' => $queue_light_delay_mark, + 'queue_discard_mark' => $queue_discard_mark, + 'queue_discard_severity' => $queue_discard_severity, + 'queue_checkpoint_interval' => $queue_checkpoint_interval, + 'queue_sync_queue_files' => $queue_sync_queue_files, + 'queue_type' => $queue_type, + 'queue_worker_threads' => $queue_worker_threads, + 'queue_timeout_shutdown' => $queue_timeout_shutdown, + 'queue_timeout_action_completion' => $queue_timeout_action_completion, + 'queue_timeout_enqueue' => $queue_timeout_enqueue, + 'queue_timeout_worker_thread_shutdown' => $queue_timeout_worker_thread_shutdown, + 'queue_worker_thread_minimum_messages' => $queue_worker_thread_minimum_messages, + 'queue_max_file_size' => $queue_max_file_size, + 'queue_save_on_shutdown' => $queue_save_on_shutdown, + 'queue_dequeue_slowdown' => $queue_dequeue_slowdown, + 'queue_dequeue_time_begin' => $queue_dequeue_time_begin, + 'queue_dequeue_time_end' => $queue_dequeue_time_end, + 'safe_name' => $_safe_name, + ) } rsyslog::rule { "99_simp_local/${_safe_name}.conf": - content => $_content + content => $_content, } } diff --git a/manifests/rule/other.pp b/manifests/rule/other.pp index f47c5b1..1e42cb5 100644 --- a/manifests/rule/other.pp +++ b/manifests/rule/other.pp @@ -33,11 +33,11 @@ #fine: rsyslog::rule::other # define rsyslog::rule::other ( - String $rule + String $rule, ) { - $_safe_name = regsubst($name,'/','__') + $_safe_name = regsubst($name, '/', '__') rsyslog::rule { "20_simp_other/${_safe_name}.conf": - content => inline_template('<%= @rule.split("\n").collect{ |x| x.sub(/^\s+/,"") }.join("\n") %>') + content => inline_epp('<%= $rule.split("\n").map |$x| { $x.lstrip() }.join("\n") %>'), } } diff --git a/manifests/rule/remote.pp b/manifests/rule/remote.pp index 1e79f29..f4bee17 100644 --- a/manifests/rule/remote.pp +++ b/manifests/rule/remote.pp @@ -238,7 +238,7 @@ Optional[Integer[0]] $queue_dequeue_slowdown = undef, Optional[Integer[0]] $queue_dequeue_time_begin = undef, Optional[Integer[0]] $queue_dequeue_time_end = undef, - Optional[String[1]] $content = undef + Optional[String[1]] $content = undef, ) { include 'rsyslog' @@ -275,7 +275,7 @@ } else { $_queue_spool_directory = $rsyslog::queue_spool_directory - } + } # FIXME: This appears to be unused $_use_tls = ( $rsyslog::enable_tls_logging and $dest_type != 'udp' ) @@ -287,7 +287,7 @@ } if $_use_tls { - if $stream_driver_permitted_peers { + if $stream_driver_permitted_peers { $_stream_driver_permitted_peers = $stream_driver_permitted_peers } else { # If $stream_driver_permitted_peers is not defined, then determine if @@ -311,6 +311,8 @@ } } } + } else { + $_stream_driver_permitted_peers = undef } # Basic validation for the action queue parameters @@ -349,10 +351,63 @@ } } - $_content = template("${module_name}/rule/remote.erb") + $_content = epp( + "${module_name}/rule/remote.epp", + 'rule' => $rule, + 'stop_processing' => $stop_processing, + 'template' => $template, + 'dest' => $_dest, + 'dest_type' => $dest_type, + 'failover_log_servers' => $_failover_servers, + 'tcp_framing' => $tcp_framing, + 'zip_level' => $zip_level, + 'max_error_messages' => $max_error_messages, + 'compression_mode' => $compression_mode, + 'compression_stream_flush_on_tx_end' => $compression_stream_flush_on_tx_end, + 'rebind_interval' => $rebind_interval, + 'keep_alive' => $keep_alive, + 'keep_alive_probes' => $keep_alive_probes, + 'keep_alive_interval' => $keep_alive_interval, + 'keep_alive_time' => $keep_alive_time, + 'action_resume_interval' => $action_resume_interval, + 'action_resume_retry_count' => $action_resume_retry_count, + 'stream_driver' => $stream_driver, + 'stream_driver_mode' => $stream_driver_mode, + 'stream_driver_auth_mode' => $stream_driver_auth_mode, + 'stream_driver_permitted_peers' => $_stream_driver_permitted_peers, + 'resend_last_msg_on_reconnect' => $resend_last_msg_on_reconnect, + 'udp_send_to_all' => $udp_send_to_all, + 'queue_filename' => $_queue_filename, + 'queue_spool_directory' => $_queue_spool_directory, + 'queue_size' => $queue_size, + 'queue_dequeue_batch_size' => $queue_dequeue_batch_size, + 'queue_max_disk_space' => $queue_max_disk_space, + 'queue_high_watermark' => $queue_high_watermark, + 'queue_low_watermark' => $queue_low_watermark, + 'queue_full_delay_mark' => $queue_full_delay_mark, + 'queue_light_delay_mark' => $queue_light_delay_mark, + 'queue_discard_mark' => $queue_discard_mark, + 'queue_discard_severity' => $queue_discard_severity, + 'queue_checkpoint_interval' => $queue_checkpoint_interval, + 'queue_sync_queue_files' => $queue_sync_queue_files, + 'queue_type' => $queue_type, + 'queue_worker_threads' => $queue_worker_threads, + 'queue_timeout_shutdown' => $queue_timeout_shutdown, + 'queue_timeout_action_completion' => $queue_timeout_action_completion, + 'queue_timeout_enqueue' => $queue_timeout_enqueue, + 'queue_timeout_worker_thread_shutdown' => $queue_timeout_worker_thread_shutdown, + 'queue_worker_thread_minimum_messages' => $queue_worker_thread_minimum_messages, + 'queue_max_file_size' => $queue_max_file_size, + 'queue_save_on_shutdown' => $queue_save_on_shutdown, + 'queue_dequeue_slowdown' => $queue_dequeue_slowdown, + 'queue_dequeue_time_begin' => $queue_dequeue_time_begin, + 'queue_dequeue_time_end' => $queue_dequeue_time_end, + 'safe_name' => $_safe_name, + 'use_tls' => $_use_tls, + ) } rsyslog::rule { "10_simp_remote/${_safe_name}.conf": - content => $_content + content => $_content, } } diff --git a/metadata.json b/metadata.json index 99e52b3..c71d43b 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "simp-rsyslog", - "version": "8.10.0", + "version": "8.10.1", "author": "SIMP Team", "summary": "A puppet module to support RSyslog version 8.", "license": "Apache-2.0", diff --git a/templates/config/pre_logging.conf.epp b/templates/config/pre_logging.conf.epp new file mode 100644 index 0000000..fc42ef9 --- /dev/null +++ b/templates/config/pre_logging.conf.epp @@ -0,0 +1,218 @@ +<% + # Create a translation hash for mishmash of true/false/on/off configuration + # values allowed in previous versions of code + $t_bool_xlat = { + true => 'on', + false => 'off', + 'on' => 'on', + 'off' => 'off' + } +-%> +<% +# Notes for maintainers about legacy globals: +# - $UMASK may be able to be replaced with global(umask="xxx") when support for +# rsyslog 8.24.0 (EL7) is dropped. It was first added to global() in 8.26.0. +# - $EscapeControlCharactersOnReceive and $ControlCharacterEscapePrefix are +# supposed to only affect input modules that support them. +# - The input modules we configure do not advertise that they use them, +# so these parameters may be OBE. +# - $RepeatedMsgReduction is no longer recommended, so we may want to omit it, +# especially since users can add it back in with extra_legacy_globals, if they +# want it. +-%> +$UMASK <%= $rsyslog::config::umask %> +$RepeatedMsgReduction <%= $t_bool_xlat[$rsyslog::config::repeated_msg_reduction] %> +<% if $rsyslog::config::extra_legacy_globals { -%> +<% $rsyslog::config::extra_legacy_globals.each |$name, $value| { -%> +$<%= $name %> <%= $value %> +<% } -%> +<% } -%> + +<% +# WARNING: global() does not always behave as expected! +# There is some internal rsyslog behavior WRT the settings that dictates +# whether specific settings actually take effect. Ordering and grouping make a +# difference. Had to empirically play around with ordering and grouping to +# get the globals we configure to work: +# +# - localHostname did not work when included in the first global(). Didn't +# matter whether it was first in the list or last in the list. +# - localHostname did not work when specified in its own global() before the +# first global(). +# - defaultNetstreamDriver* globals did not work when included in the first +# global(). +# - defaultNetstreamDriver* globals did not work when specified in a separate +# global() before the first global(). +-%> +global( + preserveFQDN="<%= $t_bool_xlat[$rsyslog::config::preserve_fqdn] %>" + dropMsgsWithMaliciousDnsPTRRecords="<%= $t_bool_xlat[$rsyslog::config::drop_msgs_with_malicious_dns_ptr_records] %>" + workDirectory="<%= $rsyslog::config::work_directory %>" + net.permitACLWarning="<%= $t_bool_xlat[$rsyslog::config::net_permit_acl_warning] %>" + net.enableDNS="<%= $t_bool_xlat[$rsyslog::config::net_enable_dns] %>" + parser.escapeControlCharactersOnReceive="<%= $t_bool_xlat[$rsyslog::config::escape_control_characters_on_receive] %>" + parser.controlCharacterEscapePrefix="<%= $rsyslog::config::control_character_escape_prefix %>" +) + +global(localHostname="<%= $rsyslog::config::localhostname %>") +<% if $rsyslog::config::_enable_tls_logging or $rsyslog::config::_tls_tcp_server { -%> +global( + defaultNetstreamDriverCertFile="<%= $rsyslog::config::default_net_stream_driver_cert_file %>" + defaultNetstreamDriver="<%= $rsyslog::config::default_net_stream_driver %>" + defaultNetstreamDriverCAFile="<%= $rsyslog::config::default_net_stream_driver_ca_file %>" + defaultNetstreamDriverKeyFile="<%= $rsyslog::config::default_net_stream_driver_key_file %>" +) +<% } -%> +<% if $rsyslog::config::extra_global_params { -%> + +<% $rsyslog::config::extra_global_params.each |$name, $value| { -%> +global(<%= $name %>="<%= $value %>") +<% } -%> +<% } -%> + +module(load="builtin:omfile" template="<%= $rsyslog::config::_default_file_template %>") +module(load="builtin:omfwd" template="<%= $rsyslog::config::default_forward_template %>") + +<% if $rsyslog::config::extra_imklog_mod_params { -%> +module(load="imklog" +<% $rsyslog::config::extra_imklog_mod_params.each |$name, $value| { -%> + <%= $name %>="<%= $value %>" +<% } -%> +) +<% } else { -%> +module(load="imklog") +<% } -%> + +module(load="imuxsock" + SysSock.IgnoreTimestamp="<%= $t_bool_xlat[$rsyslog::config::syssock_ignore_timestamp] %>" + SysSock.IgnoreOwnMessages="<%= $t_bool_xlat[$rsyslog::config::syssock_ignore_own_messages] %>" + SysSock.Use="<%= $t_bool_xlat[$rsyslog::config::syssock_use] %>" +<% if $rsyslog::config::syssock_name { -%> + SysSock.Name="<%= $rsyslog::config::syssock_name %>" +<% } -%> + SysSock.FlowControl="<%= $t_bool_xlat[$rsyslog::config::syssock_flow_control] %>" + SysSock.UsePIDFromSystem="<%= $t_bool_xlat[$rsyslog::config::syssock_use_pid_from_system] %>" + SysSock.RateLimit.Interval="<%= $rsyslog::config::syssock_rate_limit_interval %>" + SysSock.RateLimit.Burst="<%= $rsyslog::config::syssock_rate_limit_burst %>" + SysSock.RateLimit.Severity="<%= $rsyslog::config::syssock_rate_limit_severity %>" + SysSock.UseSysTimeStamp="<%= $t_bool_xlat[$rsyslog::config::syssock_use_sys_timestamp] %>" + SysSock.Annotate="<%= $t_bool_xlat[$rsyslog::config::syssock_annotate] %>" + SysSock.ParseTrusted="<%= $t_bool_xlat[$rsyslog::config::syssock_parse_trusted] %>" + SysSock.Unlink="<%= $t_bool_xlat[$rsyslog::config::syssock_unlink] %>" +<% if $rsyslog::config::extra_imuxsock_mod_params { -%> +<% $rsyslog::config::extra_imuxsock_mod_params.each |$name, $value| { -%> + <%= $name %>="<%= $value %>" +<% } -%> +<% } -%> +) +<% if $rsyslog::config::read_journald { -%> + +module(load="imjournal" + StateFile="imjournal.state" +<% if $rsyslog::config::extra_imjournal_mod_params { -%> +<% $rsyslog::config::extra_imjournal_mod_params.each |$name, $value| { -%> + <%= $name %>="<%= $value %>" +<% } -%> +<% } -%> +) +<% } -%> + +<% if $rsyslog::config::extra_imfile_mod_params { -%> +module(load="imfile" +<% $rsyslog::config::extra_imfile_mod_params.each |$name, $value| { -%> + <%= $name %>="<%= $value %>" +<% } -%> +) +<% } else { -%> +module(load="imfile") +<% } -%> +<% if $rsyslog::config::_tls_tcp_server { -%> + +<% if $rsyslog::config::extra_imptcp_mod_params { -%> +module(load="imptcp" +<% $rsyslog::config::extra_imptcp_mod_params.each |$name, $value| { -%> + <%= $name %>="<%= $value %>" +<% } -%> +) +<% } else { -%> +module(load="imptcp") +<% } -%> +input(type="imptcp" port="<%= $rsyslog::config::_tcp_listen_port %>") + +module(load="imtcp" + StreamDriver.Mode="<%= $rsyslog::config::imtcp_stream_driver_mode %>" + StreamDriver.AuthMode="<%= $rsyslog::config::_imtcp_stream_driver_auth_mode %>" + PermittedPeer=[<%= $rsyslog::config::tls_input_tcp_server_stream_driver_permitted_peers.map |$x| { "\"${x}\"" }.join(',') %>] + MaxSessions="<%= $rsyslog::config::tls_tcp_max_sessions %>" +<% unless $rsyslog::config::keep_alive =~ Undef { -%> + KeepAlive="<%= $t_bool_xlat[$rsyslog::config::keep_alive] %>" +<% if $rsyslog::config::keep_alive_probes { -%> + KeepAliveProbes="<%= $rsyslog::config::keep_alive_probes %>" +<% } -%> +<% if $rsyslog::config::keep_alive_time { -%> + KeepAliveTime="<%= $rsyslog::config::keep_alive_time %>" +<% } -%> +<% } -%> +<% if $rsyslog::config::extra_imtcp_mod_params { -%> +<% $rsyslog::config::extra_imtcp_mod_params.each |$name, $value| { -%> + <%= $name %>="<%= $value %>" +<% } -%> +<% } -%> +) +input(type="imtcp" port="<%= $rsyslog::config::_tls_tcp_listen_port %>") +<% } elsif $rsyslog::config::_tcp_server { -%> + +<% if $rsyslog::config::keep_alive !~ Undef or $rsyslog::config::extra_imtcp_mod_params { -%> +module(load="imtcp" +<% unless $rsyslog::config::keep_alive =~ Undef { -%> + KeepAlive="<%= $t_bool_xlat[$rsyslog::config::keep_alive] %>" +<% if $rsyslog::config::keep_alive_probes { -%> + KeepAliveProbes="<%= $rsyslog::config::keep_alive_probes %>" +<% } -%> +<% if $rsyslog::config::keep_alive_time { -%> + KeepAliveTime="<%= $rsyslog::config::keep_alive_time %>" +<% } -%> +<% } -%> +<% $rsyslog::config::extra_imtcp_mod_params.each |$name, $value| { -%> + <%= $name %>="<%= $value %>" +<% } -%> +) +<% } else { -%> +module(load="imtcp") +<% } -%> +input(type="imtcp" port="<%= $rsyslog::config::_tcp_listen_port %>") +<% } -%> +<% if $rsyslog::config::_udp_server { -%> + +<% if $rsyslog::config::extra_imudp_mod_params { -%> +module(load="imudp" +<% $rsyslog::config::extra_imudp_mod_params.each |$name, $value| { -%> + <%= $name %>="<%= $value %>" +<% } -%> +) +<% } else { -%> +module(load="imudp") +<% } -%> +input(type="imudp" port="<%= $rsyslog::config::_udp_listen_port %>") +<% } -%> + +main_queue( + queue.type="<%= $rsyslog::config::main_msg_queue_type %>" + queue.filename="<%= $rsyslog::config::main_msg_queue_filename %>" + queue.maxfilesize="<%= $rsyslog::config::main_msg_queue_max_file_size %>M" + queue.size="<%= $rsyslog::config::main_msg_queue_size %>" + queue.highwatermark="<%= $rsyslog::config::main_msg_queue_high_watermark %>" + queue.lowwatermark="<%= $rsyslog::config::main_msg_queue_low_watermark %>" + queue.discardmark="<%= $rsyslog::config::main_msg_queue_discardmark %>" + queue.workerthreadminimummessages="<%= $rsyslog::config::main_msg_queue_worker_thread_minimum_messages %>" + queue.workerthreads="<%= $rsyslog::config::main_msg_queue_worker_threads %>" + queue.timeoutenqueue="<%= $rsyslog::config::main_msg_queue_timeout_enqueue %>" + queue.dequeueslowdown="<%= $rsyslog::config::main_msg_queue_dequeue_slowdown %>" + queue.saveonshutdown="<%= $t_bool_xlat[$rsyslog::config::main_msg_queue_save_on_shutdown] %>" + queue.maxdiskspace="<%= $rsyslog::config::main_msg_queue_max_disk_space %>" +<% if $rsyslog::config::extra_main_queue_params { -%> +<% $rsyslog::config::extra_main_queue_params.each |$name, $value| { -%> + <%= $name %>="<%= $value %>" +<% } -%> +<% } -%> +) diff --git a/templates/config/pre_logging.conf.erb b/templates/config/pre_logging.conf.erb deleted file mode 100644 index 723c46d..0000000 --- a/templates/config/pre_logging.conf.erb +++ /dev/null @@ -1,259 +0,0 @@ -<% - unless @main_msg_queue_size - # The number of 512 byte messages that can fit into 1% of the total system memory. Or 2 gig max. - _main_msg_queue_size = [(([@facts['memory']['system']['total_bytes'].to_i >> 20, 128].max * 1048576 * 0.01)/512).to_i, 2097152].min - else - _main_msg_queue_size = @main_msg_queue_size - end - - _main_msg_queue_high_watermark = @main_msg_queue_high_watermark - unless @main_msg_queue_high_watermark - _main_msg_queue_high_watermark = (_main_msg_queue_size * 0.90).round - end - - _main_msg_queue_low_watermark = @main_msg_queue_low_watermark - unless @main_msg_queue_low_watermark - _main_msg_queue_low_watermark = (_main_msg_queue_size * 0.70).round - end - - if @main_msg_queue_discardmark - _main_msg_queue_discardmark = @main_msg_queue_discardmark - else - if !@main_msg_queue_discardmark || (_main_msg_queue_discardmark < _main_msg_queue_high_watermark) - _main_msg_queue_discardmark = (_main_msg_queue_size * 0.98).round - end - end - - _main_msg_queue_worker_thread_minimum_messages = @main_msg_queue_worker_thread_minimum_messages - unless @main_msg_queue_worker_thread_minimum_messages - _main_msg_queue_worker_thread_minimum_messages = - _main_msg_queue_size / (([@facts['processors']['count'].to_i, 2].max - 1)*4) - end - - _main_msg_queue_worker_threads = @main_msg_queue_worker_threads - unless @main_msg_queue_worker_threads - _main_msg_queue_worker_threads = [@facts['processors']['count'].to_i - 1, 1].max - end - - _main_msg_queue_max_disk_space = @main_msg_queue_max_disk_space - unless @main_msg_queue_max_disk_space - _main_msg_queue_max_disk_space = "#{(_main_msg_queue_size / 1024).round}M" - end - - # Create a translation hash for mishmash of true/false/on/off configuration - # values allowed in previous versions of code - t_bool_xlat = { - true => 'on', - false => 'off', - 'on' => 'on', - 'off' => 'off' - } --%> -<% -# Notes for maintainers about legacy globals: -# - $UMASK may be able to be replaced with global(umask="xxx") when support for -# rsyslog 8.24.0 (EL7) is dropped. It was first added to global() in 8.26.0. -# - $EscapeControlCharactersOnReceive and $ControlCharacterEscapePrefix are -# supposed to only affect input modules that support them. -# - The input modules we configure do not advertise that they use them, -# so these parameters may be OBE. -# - $RepeatedMsgReduction is no longer recommended, so we may want to omit it, -# especially since users can add it back in with extra_legacy_globals, if they -# want it. --%> -$UMASK <%= @umask %> -$RepeatedMsgReduction <%= t_bool_xlat[@repeated_msg_reduction] %> -<% if @extra_legacy_globals -%> -<% @extra_legacy_globals.each do |name,value| -%> -$<%= name %> <%= value %> -<% end -%> -<% end -%> - -<% -# WARNING: global() does not always behave as expected! -# There is some internal rsyslog behavior WRT the settings that dictates -# whether specific settings actually take effect. Ordering and grouping make a -# difference. Had to empirically play around with ordering and grouping to -# get the globals we configure to work: -# -# - localHostname did not work when included in the first global(). Didn't -# matter whether it was first in the list or last in the list. -# - localHostname did not work when specified in its own global() before the -# first global(). -# - defaultNetstreamDriver* globals did not work when included in the first -# global(). -# - defaultNetstreamDriver* globals did not work when specified in a separate -# global() before the first global(). --%> -global( - preserveFQDN="<%= t_bool_xlat[@preserve_fqdn] %>" - dropMsgsWithMaliciousDnsPTRRecords="<%= t_bool_xlat[@drop_msgs_with_malicious_dns_ptr_records] %>" - workDirectory="<%= @work_directory %>" - net.permitACLWarning="<%= t_bool_xlat[@net_permit_acl_warning] %>" - net.enableDNS="<%= t_bool_xlat[@net_enable_dns] %>" - parser.escapeControlCharactersOnReceive="<%= t_bool_xlat[@escape_control_characters_on_receive] %>" - parser.controlCharacterEscapePrefix="<%= @control_character_escape_prefix %>" -) - -global(localHostname="<%= @localhostname %>") -<% if @_enable_tls_logging || @_tls_tcp_server -%> -global( - defaultNetstreamDriverCertFile="<%= @default_net_stream_driver_cert_file %>" - defaultNetstreamDriver="<%= @default_net_stream_driver %>" - defaultNetstreamDriverCAFile="<%= @default_net_stream_driver_ca_file %>" - defaultNetstreamDriverKeyFile="<%= @default_net_stream_driver_key_file %>" -) -<% end -%> -<% if @extra_global_params -%> - -<% @extra_global_params.each do |name,value| -%> -global(<%= name %>="<%= value %>") -<% end -%> -<% end -%> - -module(load="builtin:omfile" template="<%= @_default_file_template %>") -module(load="builtin:omfwd" template="<%= @default_forward_template %>") - -<% if @extra_imklog_mod_params -%> -module(load="imklog" -<% @extra_imklog_mod_params.each do |name,value| -%> - <%= name %>="<%= value %>" -<% end -%> -) -<% else -%> -module(load="imklog") -<% end -%> - -module(load="imuxsock" - SysSock.IgnoreTimestamp="<%= t_bool_xlat[@syssock_ignore_timestamp] %>" - SysSock.IgnoreOwnMessages="<%= t_bool_xlat[@syssock_ignore_own_messages] %>" - SysSock.Use="<%= t_bool_xlat[@syssock_use] %>" -<% if @syssock_name -%> - SysSock.Name="<%= @syssock_name %>" -<% end -%> - SysSock.FlowControl="<%= t_bool_xlat[@syssock_flow_control] %>" - SysSock.UsePIDFromSystem="<%= t_bool_xlat[@syssock_use_pid_from_system] %>" - SysSock.RateLimit.Interval="<%= @syssock_rate_limit_interval %>" - SysSock.RateLimit.Burst="<%= @syssock_rate_limit_burst %>" - SysSock.RateLimit.Severity="<%= @syssock_rate_limit_severity %>" - SysSock.UseSysTimeStamp="<%= t_bool_xlat[@syssock_use_sys_timestamp] %>" - SysSock.Annotate="<%= t_bool_xlat[@syssock_annotate] %>" - SysSock.ParseTrusted="<%= t_bool_xlat[@syssock_parse_trusted] %>" - SysSock.Unlink="<%= t_bool_xlat[@syssock_unlink] %>" -<% if @extra_imuxsock_mod_params -%> -<% @extra_imuxsock_mod_params.each do |name,value| -%> - <%= name %>="<%= value %>" -<% end -%> -<% end -%> -) -<% if @read_journald -%> - -module(load="imjournal" - StateFile="imjournal.state" -<% if @extra_imjournal_mod_params -%> -<% @extra_imjournal_mod_params.each do |name,value| -%> - <%= name %>="<%= value %>" -<% end -%> -<% end -%> -) -<% end -%> - -<% if @extra_imfile_mod_params -%> -module(load="imfile" -<% @extra_imfile_mod_params.each do |name,value| -%> - <%= name %>="<%= value %>" -<% end -%> -) -<% else -%> -module(load="imfile") -<% end -%> -<% if @_tls_tcp_server -%> - -<% if @extra_imptcp_mod_params -%> -module(load="imptcp" -<% @extra_imptcp_mod_params.each do |name,value| -%> - <%= name %>="<%= value %>" -<% end -%> -) -<% else -%> -module(load="imptcp") -<% end -%> -input(type="imptcp" port="<%= @_tcp_listen_port %>") - -module(load="imtcp" - StreamDriver.Mode="<%= @imtcp_stream_driver_mode %>" - StreamDriver.AuthMode="<%= @_imtcp_stream_driver_auth_mode %>" - PermittedPeer=[<%= @tls_input_tcp_server_stream_driver_permitted_peers.map{|x| %Q{"#{x}"}}.join(',') %>] - MaxSessions="<%= @tls_tcp_max_sessions %>" -<% unless @keep_alive.nil? -%> - KeepAlive="<%= t_bool_xlat[@keep_alive] %>" -<% if @keep_alive_probes -%> - KeepAliveProbes="<%= @keep_alive_probes %>" -<% end -%> -<% if @keep_alive_time -%> - KeepAliveTime="<%= @keep_alive_time %>" -<% end -%> -<% end -%> -<% if @extra_imtcp_mod_params -%> -<% @extra_imtcp_mod_params.each do |name,value| -%> - <%= name %>="<%= value %>" -<% end -%> -<% end -%> -) -input(type="imtcp" port="<%= @_tls_tcp_listen_port %>") -<% elsif @_tcp_server -%> - -<% if !@keep_alive.nil? || @extra_imtcp_mod_params -%> -module(load="imtcp" -<% unless @keep_alive.nil? -%> - KeepAlive="<%= t_bool_xlat[@keep_alive] %>" -<% if @keep_alive_probes -%> - KeepAliveProbes="<%= @keep_alive_probes %>" -<% end -%> -<% if @keep_alive_time -%> - KeepAliveTime="<%= @keep_alive_time %>" -<% end -%> -<% end -%> -<% @extra_imtcp_mod_params.each do |name,value| -%> - <%= name %>="<%= value %>" -<% end -%> -) -<% else -%> -module(load="imtcp") -<% end -%> -input(type="imtcp" port="<%= @_tcp_listen_port %>") -<% end -%> -<% if @_udp_server -%> - -<% if @extra_imudp_mod_params -%> -module(load="imudp" -<% @extra_imudp_mod_params.each do |name,value| -%> - <%= name %>="<%= value %>" -<% end -%> -) -<% else -%> -module(load="imudp") -<% end -%> -input(type="imudp" port="<%= @_udp_listen_port %>") -<% end -%> - -main_queue( - queue.type="<%= @main_msg_queue_type %>" - queue.filename="<%= @main_msg_queue_filename %>" - queue.maxfilesize="<%= @main_msg_queue_max_file_size %>M" - queue.size="<%= _main_msg_queue_size %>" - queue.highwatermark="<%= _main_msg_queue_high_watermark %>" - queue.lowwatermark="<%= _main_msg_queue_low_watermark %>" - queue.discardmark="<%= _main_msg_queue_discardmark %>" - queue.workerthreadminimummessages="<%= _main_msg_queue_worker_thread_minimum_messages %>" - queue.workerthreads="<%= _main_msg_queue_worker_threads %>" - queue.timeoutenqueue="<%= @main_msg_queue_timeout_enqueue %>" - queue.dequeueslowdown="<%= @main_msg_queue_dequeue_slowdown %>" - queue.saveonshutdown="<%= t_bool_xlat[@main_msg_queue_save_on_shutdown] %>" - queue.maxdiskspace="<%= _main_msg_queue_max_disk_space %>" -<% if @extra_main_queue_params -%> -<% @extra_main_queue_params.each do |name,value| -%> - <%= name %>="<%= value %>" -<% end -%> -<% end -%> -) diff --git a/templates/rule/local.epp b/templates/rule/local.epp new file mode 100644 index 0000000..d4a086e --- /dev/null +++ b/templates/rule/local.epp @@ -0,0 +1,227 @@ +<% | + Optional[String[1]] $rule, + Optional[Stdlib::Absolutepath] $target_log_file, + Boolean $stop_processing, + Optional[String[1]] $dyna_file, + Optional[String[1]] $template, + Integer[0] $dyna_file_cache_size, + Integer[0,9] $zip_level, + Boolean $very_robust_zip, + Integer[0] $flush_interval, + Boolean $async_writing, + Boolean $flush_on_tx_end, + Optional[Integer[0]] $io_buffer_size, + Optional[String[1]] $dir_owner, + Optional[Integer[0]] $dir_owner_num, + Optional[String[1]] $dir_group, + Optional[Integer[0]] $dir_group_num, + Optional[String[1]] $file_owner, + Optional[Integer[0]] $file_owner_num, + Optional[String[1]] $file_group, + Optional[Integer[0]] $file_group_num, + Stdlib::Filemode $file_create_mode, + Stdlib::Filemode $dir_create_mode, + Boolean $fail_on_chown_failure, + Boolean $create_dirs, + Boolean $sync, + Optional[String[1]] $sig_provider, + Optional[String[1]] $cry_provider, + Optional[Stdlib::Absolutepath] $queue_filename, + Optional[Stdlib::Absolutepath] $queue_spool_directory, + Optional[Integer[0]] $queue_size, + Optional[Integer[0]] $queue_dequeue_batch_size, + Optional[Integer[0]] $queue_max_disk_space, + Optional[Integer[0]] $queue_high_watermark, + Optional[Integer[0]] $queue_low_watermark, + Optional[Integer[0]] $queue_full_delay_mark, + Optional[Integer[0]] $queue_light_delay_mark, + Optional[Integer[0]] $queue_discard_mark, + Optional[Integer[0]] $queue_discard_severity, + Optional[Integer[0]] $queue_checkpoint_interval, + Boolean $queue_sync_queue_files, + Rsyslog::QueueType $queue_type, + Optional[Integer[0]] $queue_worker_threads, + Optional[Integer[0]] $queue_timeout_shutdown, + Optional[Integer[0]] $queue_timeout_action_completion, + Optional[Integer[0]] $queue_timeout_enqueue, + Optional[Integer[0]] $queue_timeout_worker_thread_shutdown, + Optional[Integer[0]] $queue_worker_thread_minimum_messages, + Optional[String[1]] $queue_max_file_size, + Boolean $queue_save_on_shutdown, + Optional[Integer[0]] $queue_dequeue_slowdown, + Optional[Integer[0]] $queue_dequeue_time_begin, + Optional[Integer[0]] $queue_dequeue_time_end, + String[1] $safe_name, +| -%> +<% + $bool_xlat = { + true => 'on', + false => 'off' + } +-%> +<% + if $dyna_file { + if $dyna_file !~ /^\// { + $dynafile = $dyna_file + } else { + # Assume that we need to create a template! + $dynafile = $safe_name +-%> +template(name="<%= $safe_name %>" type="string" string="<%= $dyna_file %>") +<% + } + } +-%> + +if (<%= $rule.split("\n").map |$x| { $x.lstrip() }.join("\n") %>) then { + action( + type="omfile" +<% if $target_log_file { -%> + file="<%= $target_log_file %>" +<% } -%> +<% if $dyna_file { -%> + dynaFile="<%= $dynafile %>" +<% } -%> +<% if $template { -%> + template="<%= $template %>" +<% } -%> +<% if $dyna_file_cache_size { -%> + dynaFileCacheSize="<%= $dyna_file_cache_size %>" +<% } -%> +<% if $zip_level { -%> + zipLevel="<%= $zip_level %>" +<% } -%> +<% if $very_robust_zip { -%> + veryRobustZip="on" +<% } -%> +<% if $flush_interval { -%> + flushInterval="<%= $flush_interval %>" +<% } -%> +<% if $async_writing { -%> + asyncWriting="on" +<% } -%> +<% if $flush_on_tx_end { -%> + flushOnTXEnd="on" +<% } -%> +<% if $io_buffer_size { -%> + ioBufferSize="<%= $io_buffer_size %>" +<% } -%> +<% if $dir_owner { -%> + dirOwner="<%= $dir_owner %>" +<% } -%> +<% if $dir_owner_num { -%> + dirOwnerNum="<%= $dir_owner_num %>" +<% } -%> +<% if $dir_group { -%> + dirGroup="<%= $dir_group %>" +<% } -%> +<% if $dir_group_num { -%> + dirGroupNum="<%= $dir_group_num %>" +<% } -%> +<% if $file_owner { -%> + fileOwner="<%= $file_owner %>" +<% } -%> +<% if $file_owner_num { -%> + fileOwnerNum="<%= $file_owner_num %>" +<% } -%> +<% if $file_group { -%> + fileGroup="<%= $file_group %>" +<% } -%> +<% if $file_group_num { -%> + fileGroupNum="<%= $file_group_num %>" +<% } -%> +<% if $file_create_mode { -%> + fileCreateMode="<%= $file_create_mode %>" +<% } -%> +<% if $dir_create_mode { -%> + dirCreateMode="<%= $dir_create_mode %>" +<% } -%> +<% if $fail_on_chown_failure { -%> + failOnChownFailure="on" +<% } -%> +<% if $create_dirs { -%> + createDirs="on" +<% } -%> +<% if $sync { -%> + sync="on" +<% } -%> +<% if $sig_provider { -%> + sig.provider="<%= $sig_provider %>" +<% } -%> +<% if $cry_provider { -%> + cry.provider="<%= $cry_provider %>" +<% } -%> +<% if $queue_filename { -%> + queue.filename="<%= $queue_filename %>" +<% } -%> +<% if $queue_spool_directory { -%> + queue.spoolDirectory="<%= $queue_spool_directory %>" +<% } -%> +<% if $queue_size { -%> + queue.size="<%= $queue_size %>" +<% } -%> +<% if $queue_dequeue_batch_size { -%> + queue.dequeuebatchsize="<%= $queue_dequeue_batch_size %>" +<% } -%> +<% if $queue_max_disk_space { -%> + queue.maxdiskspace="<%= $queue_max_disk_space %>" +<% } -%> +<% if $queue_high_watermark { -%> + queue.highwatermark="<%= $queue_high_watermark %>" +<% } -%> +<% if $queue_low_watermark { -%> + queue.lowwatermark="<%= $queue_low_watermark %>" +<% } -%> +<% if $queue_full_delay_mark { -%> + queue.fulldelaymark="<%= $queue_full_delay_mark %>" +<% } -%> +<% if $queue_light_delay_mark { -%> + queue.lightdelaymark="<%= $queue_light_delay_mark %>" +<% } -%> +<% if $queue_discard_mark { -%> + queue.discardmark="<%= $queue_discard_mark %>" +<% } -%> +<% if $queue_discard_severity { -%> + queue.discardseverity="<%= $queue_discard_severity %>" +<% } -%> +<% if $queue_checkpoint_interval { -%> + queue.checkpointinterval="<%= $queue_checkpoint_interval %>" +<% } -%> + queue.syncqueuefiles="<%= $bool_xlat[$queue_sync_queue_files] %>" + queue.type="<%= $queue_type %>" +<% if $queue_worker_threads { -%> + queue.workerthreads="<%= $queue_worker_threads %>" +<% } -%> +<% if $queue_timeout_shutdown { -%> + queue.timeoutshutdown="<%= $queue_timeout_shutdown %>" +<% } -%> +<% if $queue_timeout_action_completion { -%> + queue.timeoutactioncompletion="<%= $queue_timeout_action_completion %>" +<% } -%> +<% if $queue_timeout_enqueue { -%> + queue.timeoutenqueue="<%= $queue_timeout_enqueue %>" +<% } -%> +<% if $queue_timeout_worker_thread_shutdown { -%> + queue.timeoutworkerthreadshutdown="<%= $queue_timeout_worker_thread_shutdown %>" +<% } -%> +<% if $queue_worker_thread_minimum_messages { -%> + queue.workerthreadminimummessages="<%= $queue_worker_thread_minimum_messages %>" +<% } -%> +<% if $queue_max_file_size { -%> + queue.maxfilesize="<%= $queue_max_file_size %>" +<% } -%> + queue.saveonshutdown="<%= $bool_xlat[$queue_save_on_shutdown] %>" +<% if $queue_dequeue_slowdown { -%> + queue.dequeueslowdown="<%= $queue_dequeue_slowdown %>" +<% } -%> +<% if $queue_dequeue_time_begin { -%> + queue.dequeuetimebegin="<%= $queue_dequeue_time_begin %>" +<% } -%> +<% if $queue_dequeue_time_end { -%> + queue.dequeuetimeend="<%= $queue_dequeue_time_end %>" +<% } -%> + ) +<% if $stop_processing { -%> + stop +<% } -%> +} diff --git a/templates/rule/local.erb b/templates/rule/local.erb deleted file mode 100644 index 2863c22..0000000 --- a/templates/rule/local.erb +++ /dev/null @@ -1,172 +0,0 @@ -<% - _bool_xlat = { - true => 'on', - false => 'off' - } --%> -<% - if @dyna_file - if @dyna_file !~ /^\// - dynafile = @dyna_file - else - # Assume that we need to create a template! - dynafile = @_safe_name --%> -template(name="<%= @_safe_name %>" type="string" string="<%= @dyna_file %>") -<% - end - end --%> - -if (<%= @rule.split("\n").collect{ |x| x.sub(/^\s+/,"") }.join("\n") %>) then { - action( - type="omfile" -<% if @target_log_file -%> - file="<%= @target_log_file %>" -<% end -%> -<% if @dyna_file -%> - dynaFile="<%= dynafile %>" -<% end -%> -<% if @template -%> - template="<%= @template %>" -<% end -%> -<% if @dyna_file_cache_size -%> - dynaFileCacheSize="<%= @dyna_file_cache_size %>" -<% end -%> -<% if @zip_level -%> - zipLevel="<%= @zip_level %>" -<% end -%> -<% if @very_robust_zip -%> - veryRobustZip="on" -<% end -%> -<% if @flush_interval -%> - flushInterval="<%= @flush_interval %>" -<% end -%> -<% if @async_writing -%> - asyncWriting="on" -<% end -%> -<% if @flush_on_tx_end -%> - flushOnTXEnd="on" -<% end -%> -<% if @io_buffer_size -%> - ioBufferSize="<%= @io_buffer_size %>" -<% end -%> -<% if @dir_owner -%> - dirOwner="<%= @dir_owner %>" -<% end -%> -<% if @dir_owner_num -%> - dirOwnerNum="<%= @dir_owner_num %>" -<% end -%> -<% if @dir_group -%> - dirGroup="<%= @dir_group %>" -<% end -%> -<% if @dir_group_num -%> - dirGroupNum="<%= @dir_group_num %>" -<% end -%> -<% if @file_owner -%> - fileOwner="<%= @file_owner %>" -<% end -%> -<% if @file_owner_num -%> - fileOwnerNum="<%= @file_owner_num %>" -<% end -%> -<% if @file_group -%> - fileGroup="<%= @file_group %>" -<% end -%> -<% if @file_group_num -%> - fileGroupNum="<%= @file_group_num %>" -<% end -%> -<% if @file_create_mode -%> - fileCreateMode="<%= @file_create_mode %>" -<% end -%> -<% if @dir_create_mode -%> - dirCreateMode="<%= @dir_create_mode %>" -<% end -%> -<% if @fail_on_chown_failure -%> - failOnChownFailure="on" -<% end -%> -<% if @create_dirs -%> - createDirs="on" -<% end -%> -<% if @sync -%> - sync="on" -<% end -%> -<% if @sig_provider -%> - sig.provider="<%= @sig_provider %>" -<% end -%> -<% if @cry_provider -%> - cry.provider="<%= @cry_provider %>" -<% end -%> -<% if @queue_filename -%> - queue.filename="<%= @queue_filename %>" -<% end -%> -<% if @queue_spool_directory -%> - queue.spoolDirectory="<%= @queue_spool_directory %>" -<% end -%> -<% if @queue_size -%> - queue.size="<%= @queue_size %>" -<% end -%> -<% if @queue_dequeue_batch_size -%> - queue.dequeuebatchsize="<%= @queue_dequeue_batch_size %>" -<% end -%> -<% if @queue_max_disk_space -%> - queue.maxdiskspace="<%= @queue_max_disk_space %>" -<% end -%> -<% if @queue_high_watermark -%> - queue.highwatermark="<%= @queue_high_watermark %>" -<% end -%> -<% if @queue_low_watermark -%> - queue.lowwatermark="<%= @queue_low_watermark %>" -<% end -%> -<% if @queue_full_delay_mark -%> - queue.fulldelaymark="<%= @queue_full_delay_mark %>" -<% end -%> -<% if @queue_light_delay_mark -%> - queue.lightdelaymark="<%= @queue_light_delay_mark %>" -<% end -%> -<% if @queue_discard_mark -%> - queue.discardmark="<%= @queue_discard_mark %>" -<% end -%> -<% if @queue_discard_severity -%> - queue.discardseverity="<%= @queue_discard_severity %>" -<% end -%> -<% if @queue_checkpoint_interval -%> - queue.checkpointinterval="<%= @queue_checkpoint_interval %>" -<% end -%> - queue.syncqueuefiles="<%= _bool_xlat[@queue_sync_queue_files] %>" - queue.type="<%= @queue_type %>" -<% if @queue_worker_threads -%> - queue.workerthreads="<%= @queue_worker_threads %>" -<% end -%> -<% if @queue_timeout_shutdown -%> - queue.timeoutshutdown="<%= @queue_timeout_shutdown %>" -<% end -%> -<% if @queue_timeout_action_completion -%> - queue.timeoutactioncompletion="<%= @queue_timeout_action_completion %>" -<% end -%> -<% if @queue_timeout_enqueue -%> - queue.timeoutenqueue="<%= @queue_timeout_enqueue %>" -<% end -%> -<% if @queue_timeout_worker_thread_shutdown -%> - queue.timeoutworkerthreadshutdown="<%= @queue_timeout_worker_thread_shutdown %>" -<% end -%> -<% if @queue_worker_thread_minimum_messages -%> - queue.workerthreadminimummessages="<%= @queue_worker_thread_minimum_messages %>" -<% end -%> -<% if @queue_max_file_size -%> - queue.maxfilesize="<%= @queue_max_file_size %>" -<% end -%> - queue.saveonshutdown="<%= _bool_xlat[@queue_save_on_shutdown] %>" -<% if @queue_dequeue_slowdown -%> - queue.dequeueslowdown="<%= @queue_dequeue_slowdown %>" -<% end -%> -<% if @queue_dequeue_time_begin -%> - queue.dequeuetimebegin="<%= @queue_dequeue_time_begin %>" -<% end -%> -<% if @queue_dequeue_time_end -%> - queue.dequeuetimeend="<%= @queue_dequeue_time_end %>" -<% end -%> - ) -<% if @stop_processing -%> - stop -<% end -%> -} diff --git a/templates/rule/remote.epp b/templates/rule/remote.epp new file mode 100644 index 0000000..7fa526c --- /dev/null +++ b/templates/rule/remote.epp @@ -0,0 +1,344 @@ +<% | + Optional[String[1]] $rule, + Boolean $stop_processing, + Optional[String[1]] $template, + Simplib::Netlist $dest, + Enum['tcp','udp','relp'] $dest_type, + Simplib::Netlist $failover_log_servers, + Enum['traditional','octet-counted'] $tcp_framing, + Integer[0,9] $zip_level, + Integer[0] $max_error_messages, + Enum['none','single','stream:always'] $compression_mode, + Boolean $compression_stream_flush_on_tx_end, + Optional[Integer[0]] $rebind_interval, + Optional[Boolean] $keep_alive, + Optional[Integer[0]] $keep_alive_probes, + Optional[Integer[0]] $keep_alive_interval, + Optional[Integer[0]] $keep_alive_time, + Integer[0] $action_resume_interval, # FIXME: Unused parameter + Integer[-1] $action_resume_retry_count, + Optional[String[1]] $stream_driver, + Integer[0] $stream_driver_mode, + String $stream_driver_auth_mode, + Optional[String[1]] $stream_driver_permitted_peers, + Boolean $resend_last_msg_on_reconnect, + Boolean $udp_send_to_all, # FIXME: Unused parameter + String[1] $queue_filename, + Optional[Stdlib::Absolutepath] $queue_spool_directory, # FIXME: Unused parameter + Optional[Integer[0]] $queue_size, + Optional[Integer[0]] $queue_dequeue_batch_size, + Optional[Integer[0]] $queue_max_disk_space, + Optional[Integer[0]] $queue_high_watermark, + Optional[Integer[0]] $queue_low_watermark, + Optional[Integer[0]] $queue_full_delay_mark, + Optional[Integer[0]] $queue_light_delay_mark, + Optional[Integer[0]] $queue_discard_mark, + Optional[Integer[0]] $queue_discard_severity, + Optional[Integer[0]] $queue_checkpoint_interval, + Boolean $queue_sync_queue_files, + Rsyslog::QueueType $queue_type, + Optional[Integer[0]] $queue_worker_threads, + Optional[Integer[0]] $queue_timeout_shutdown, + Optional[Integer[0]] $queue_timeout_action_completion, + Optional[Integer[0]] $queue_timeout_enqueue, + Optional[Integer[0]] $queue_timeout_worker_thread_shutdown, + Optional[Integer[0]] $queue_worker_thread_minimum_messages, + Optional[String[1]] $queue_max_file_size, + Boolean $queue_save_on_shutdown, + Optional[Integer[0]] $queue_dequeue_slowdown, + Optional[Integer[0]] $queue_dequeue_time_begin, + Optional[Integer[0]] $queue_dequeue_time_end, + String[1] $safe_name, + Boolean $use_tls, +| -%> +<% + $bool_xlat = { + true => 'on', + false => 'off' + } +-%> +ruleset( + name="ruleset_<%= $safe_name %>" + queue.filename="<%= $queue_filename %>" +<% if $queue_size { -%> + queue.size="<%= $queue_size %>" +<% } -%> +<% if $queue_dequeue_batch_size { -%> + queue.dequeuebatchsize="<%= $queue_dequeue_batch_size %>" +<% } -%> +<% if $queue_max_disk_space { -%> + queue.maxdiskspace="<%= $queue_max_disk_space %>" +<% } -%> +<% if $queue_high_watermark { -%> + queue.highwatermark="<%= $queue_high_watermark %>" +<% } -%> +<% if $queue_low_watermark { -%> + queue.lowwatermark="<%= $queue_low_watermark %>" +<% } -%> +<% if $queue_full_delay_mark { -%> + queue.fulldelaymark="<%= $queue_full_delay_mark %>" +<% } -%> +<% if $queue_light_delay_mark { -%> + queue.lightdelaymark="<%= $queue_light_delay_mark %>" +<% } -%> +<% if $queue_discard_mark { -%> + queue.discardmark="<%= $queue_discard_mark %>" +<% } -%> +<% if $queue_discard_severity { -%> + queue.discardseverity="<%= $queue_discard_severity %>" +<% } -%> +<% if $queue_checkpoint_interval { -%> + queue.checkpointinterval="<%= $queue_checkpoint_interval %>" +<% } -%> + queue.syncqueuefiles="<%= $bool_xlat[$queue_sync_queue_files] %>" + queue.type="<%= $queue_type %>" +<% if $queue_worker_threads { -%> + queue.workerthreads="<%= $queue_worker_threads %>" +<% } -%> +<% if $queue_timeout_shutdown { -%> + queue.timeoutshutdown="<%= $queue_timeout_shutdown %>" +<% } -%> +<% if $queue_timeout_action_completion { -%> + queue.timeoutactioncompletion="<%= $queue_timeout_action_completion %>" +<% } -%> +<% if $queue_timeout_enqueue { -%> + queue.timeoutenqueue="<%= $queue_timeout_enqueue %>" +<% } -%> +<% if $queue_timeout_worker_thread_shutdown { -%> + queue.timeoutworkerthreadshutdown="<%= $queue_timeout_worker_thread_shutdown %>" +<% } -%> +<% if $queue_worker_thread_minimum_messages { -%> + queue.workerthreadminimummessages="<%= $queue_worker_thread_minimum_messages %>" +<% } -%> +<% if $queue_max_file_size { -%> + queue.maxfilesize="<%= $queue_max_file_size %>" +<% } -%> + queue.saveonshutdown="<%= $bool_xlat[$queue_save_on_shutdown] %>" +<% if $queue_dequeue_slowdown { -%> + queue.dequeueslowdown="<%= $queue_dequeue_slowdown %>" +<% } -%> +<% if $queue_dequeue_time_begin { -%> + queue.dequeuetimebegin="<%= $queue_dequeue_time_begin %>" +<% } -%> +<% if $queue_dequeue_time_end { -%> + queue.dequeuetimeend="<%= $queue_dequeue_time_end %>" +<% } -%> +) { +<% $dest.each |$dst| { + $d = $dst.split(':') + $host = $d[0] + if $d[1] !~ Undef and $d[1] !~ /^$/ { + $port = $d[1] + } elsif $use_tls { + $port = '6514' + } else { + $port = '514' + } +-%> + action( + type="omfwd" +<% if $template { -%> + template="<%= $template %>" +<% } -%> + protocol="<%= $dest_type %>" + target="<%= $host %>" + port="<%= $port %>" +<% if $tcp_framing { -%> + TCP_Framing="<%= $tcp_framing %>" +<% } -%> +<% if $zip_level { -%> + ZipLevel="<%= $zip_level %>" +<% } -%> +<% if $max_error_messages { -%> + maxErrorMessages="<%= $max_error_messages %>" +<% } -%> +<% if $compression_mode { -%> + compression.mode="<%= $compression_mode %>" +<% } -%> + compression.stream.flushOnTXEnd="<%= $bool_xlat[$compression_stream_flush_on_tx_end] %>" +<% if $keep_alive { -%> + KeepAlive="<%= $bool_xlat[$keep_alive] %>" +<% if $keep_alive_probes { -%> + KeepAlive.Probes="<%= $keep_alive_probes %>" +<% } -%> +<% if $keep_alive_interval { -%> + KeepAlive.Interval="<%= $keep_alive_interval %>" +<% } -%> +<% if $keep_alive_time { -%> + KeepAlive.Time="<%= $keep_alive_time %>" +<% } -%> +<% } -%> +<% if $rebind_interval { -%> + RebindInterval="<%= $rebind_interval %>" +<% } -%> +<% if $use_tls { -%> +<% if $stream_driver { -%> + StreamDriver="<%= $stream_driver %>" +<% } -%> +<% if $stream_driver_mode { -%> + StreamDriverMode="<%= $stream_driver_mode %>" +<% } -%> +<% if $stream_driver_auth_mode { -%> + StreamDriverAuthMode="<%= $stream_driver_auth_mode %>" +<% } -%> +<% if $stream_driver_permitted_peers { + $permitted_peers = $stream_driver_permitted_peers + } else { + $permitted_peers = $host + } +-%> + StreamDriverPermittedPeers="<%= $permitted_peers %>" +<% } -%> + ResendLastMSGOnReconnect="<%= $bool_xlat[$resend_last_msg_on_reconnect] %>" + ) +<% } -%> +<% + if $failover_log_servers.count() > 0 { + $final_host = $failover_log_servers[-1] + $failover_log_servers.each |$s_target| { + $src = $s_target.split(':') + $s_host = $src[0] + if $src[1] !~ Undef and $src[1] !~ /^$/ { + $s_port = $src[1] + } elsif $use_tls { + $s_port = '6514' + } else { + $s_port = '514' + } +-%> + + action( + type="omfwd" +<% if $template { -%> + template="<%= $template %>" +<% } -%> + protocol="<%= $dest_type %>" + target="<%= $s_host %>" + port="<%= $s_port %>" +<% if $s_target == $final_host { -%> +# NOTE: This must exist for the last failover host so that we can queue logs to disk when needed. + queue.filename="<%= $queue_filename %>_action" +<% if $queue_size { -%> + queue.size="<%= $queue_size %>" +<% } -%> +<% if $queue_dequeue_batch_size { -%> + queue.dequeuebatchsize="<%= $queue_dequeue_batch_size %>" +<% } -%> +<% if $queue_max_disk_space { -%> + queue.maxdiskspace="<%= $queue_max_disk_space %>" +<% } -%> +<% if $queue_high_watermark { -%> + queue.highwatermark="<%= $queue_high_watermark %>" +<% } -%> +<% if $queue_low_watermark { -%> + queue.lowwatermark="<%= $queue_low_watermark %>" +<% } -%> +<% if $queue_full_delay_mark { -%> + queue.fulldelaymark="<%= $queue_full_delay_mark %>" +<% } -%> +<% if $queue_light_delay_mark { -%> + queue.lightdelaymark="<%= $queue_light_delay_mark %>" +<% } -%> +<% if $queue_discard_mark { -%> + queue.discardmark="<%= $queue_discard_mark %>" +<% } -%> +<% if $queue_discard_severity { -%> + queue.discardseverity="<%= $queue_discard_severity %>" +<% } -%> +<% if $queue_checkpoint_interval { -%> + queue.checkpointinterval="<%= $queue_checkpoint_interval %>" +<% } -%> + queue.syncqueuefiles="<%= $bool_xlat[$queue_sync_queue_files] %>" + queue.type="LinkedList" +<% if $queue_worker_threads { -%> + queue.workerthreads="<%= $queue_worker_threads %>" +<% } -%> +<% if $queue_timeout_shutdown { -%> + queue.timeoutshutdown="<%= $queue_timeout_shutdown %>" +<% } -%> +<% if $queue_timeout_action_completion { -%> + queue.timeoutactioncompletion="<%= $queue_timeout_action_completion %>" +<% } -%> +<% if $queue_timeout_enqueue { -%> + queue.timeoutenqueue="<%= $queue_timeout_enqueue %>" +<% } -%> +<% if $queue_timeout_worker_thread_shutdown { -%> + queue.timeoutworkerthreadshutdown="<%= $queue_timeout_worker_thread_shutdown %>" +<% } -%> +<% if $queue_worker_thread_minimum_messages { -%> + queue.workerthreadminimummessages="<%= $queue_worker_thread_minimum_messages %>" +<% } -%> +<% if $queue_max_file_size { -%> + queue.maxfilesize="<%= $queue_max_file_size %>" +<% } -%> + queue.saveonshutdown="<%= $bool_xlat[$queue_save_on_shutdown] %>" +<% if $queue_dequeue_slowdown { -%> + queue.dequeueslowdown="<%= $queue_dequeue_slowdown %>" +<% } -%> +<% if $queue_dequeue_time_begin { -%> + queue.dequeuetimebegin="<%= $queue_dequeue_time_begin %>" +<% } -%> +<% if $queue_dequeue_time_end { -%> + queue.dequeuetimeend="<%= $queue_dequeue_time_end %>" +<% } -%> +<% } -%> +<% if $tcp_framing { -%> + TCP_Framing="<%= $tcp_framing %>" +<% } -%> +<% if $zip_level { -%> + ZipLevel="<%= $zip_level %>" +<% } -%> +<% if $max_error_messages { -%> + maxErrorMessages="<%= $max_error_messages %>" +<% } -%> +<% if $compression_mode { -%> + compression.mode="<%= $compression_mode %>" +<% } -%> + compression.stream.flushOnTXEnd="<%= $bool_xlat[$compression_stream_flush_on_tx_end] %>" +<% if $keep_alive { -%> + KeepAlive="<%= $bool_xlat[$keep_alive] %>" +<% if $keep_alive_probes { -%> + KeepAlive.Probes="<%= $keep_alive_probes %>" +<% } -%> +<% if $keep_alive_interval { -%> + KeepAlive.Interval="<%= $keep_alive_interval %>" +<% } -%> +<% if $keep_alive_time { -%> + KeepAlive.Time="<%= $keep_alive_time %>" +<% } -%> +<% } -%> +<% if $rebind_interval { -%> + RebindInterval="<%= $rebind_interval %>" +<% } -%> +<% if $use_tls { -%> +<% if $stream_driver { -%> + StreamDriver="<%= $stream_driver %>" +<% } -%> +<% if $stream_driver_mode { -%> + StreamDriverMode="<%= $stream_driver_mode %>" +<% } -%> +<% if $stream_driver_auth_mode { -%> + StreamDriverAuthMode="<%= $stream_driver_auth_mode %>" +<% } -%> +<% if $stream_driver_permitted_peers { + $permitted_peers = $stream_driver_permitted_peers + } else { + $permitted_peers = $s_host + } +-%> + StreamDriverPermittedPeers="<%= $permitted_peers %>" +<% } -%> + ResendLastMSGOnReconnect="<%= $bool_xlat[$resend_last_msg_on_reconnect] %>" + action.resumeRetryCount="<%= $action_resume_retry_count %>" + action.execOnlyWhenPreviousIsSuspended="on" + ) +<% + } + } +-%> +<% if $stop_processing { -%> + stop +<% } -%> +} + +if (<%= $rule.split("\n").map |$x| { $x.lstrip() }.join("\n") %>) then call ruleset_<%= $safe_name %> diff --git a/templates/rule/remote.erb b/templates/rule/remote.erb deleted file mode 100644 index 0bf5831..0000000 --- a/templates/rule/remote.erb +++ /dev/null @@ -1,290 +0,0 @@ -<% - _bool_xlat = { - true => 'on', - false => 'off' - } --%> -ruleset( - name="ruleset_<%= @_safe_name %>" - queue.filename="<%= @_queue_filename %>" -<% if @queue_size -%> - queue.size="<%= @queue_size %>" -<% end -%> -<% if @queue_dequeue_batch_size -%> - queue.dequeuebatchsize="<%= @queue_dequeue_batch_size %>" -<% end -%> -<% if @queue_max_disk_space -%> - queue.maxdiskspace="<%= @queue_max_disk_space %>" -<% end -%> -<% if @queue_high_watermark -%> - queue.highwatermark="<%= @queue_high_watermark %>" -<% end -%> -<% if @queue_low_watermark -%> - queue.lowwatermark="<%= @queue_low_watermark %>" -<% end -%> -<% if @queue_full_delay_mark -%> - queue.fulldelaymark="<%= @queue_full_delay_mark %>" -<% end -%> -<% if @queue_light_delay_mark -%> - queue.lightdelaymark="<%= @queue_light_delay_mark %>" -<% end -%> -<% if @queue_discard_mark -%> - queue.discardmark="<%= @queue_discard_mark %>" -<% end -%> -<% if @queue_discard_severity -%> - queue.discardseverity="<%= @queue_discard_severity %>" -<% end -%> -<% if @queue_checkpoint_interval -%> - queue.checkpointinterval="<%= @queue_checkpoint_interval %>" -<% end -%> - queue.syncqueuefiles="<%= _bool_xlat[@queue_sync_queue_files] %>" - queue.type="<%= @queue_type %>" -<% if @queue_worker_threads -%> - queue.workerthreads="<%= @queue_worker_threads %>" -<% end -%> -<% if @queue_timeout_shutdown -%> - queue.timeoutshutdown="<%= @queue_timeout_shutdown %>" -<% end -%> -<% if @queue_timeout_action_completion -%> - queue.timeoutactioncompletion="<%= @queue_timeout_action_completion %>" -<% end -%> -<% if @queue_timeout_enqueue -%> - queue.timeoutenqueue="<%= @queue_timeout_enqueue %>" -<% end -%> -<% if @queue_timeout_worker_thread_shutdown -%> - queue.timeoutworkerthreadshutdown="<%= @queue_timeout_worker_thread_shutdown %>" -<% end -%> -<% if @queue_worker_thread_minimum_messages -%> - queue.workerthreadminimummessages="<%= @queue_worker_thread_minimum_messages %>" -<% end -%> -<% if @queue_max_file_size -%> - queue.maxfilesize="<%= @queue_max_file_size %>" -<% end -%> - queue.saveonshutdown="<%= _bool_xlat[@queue_save_on_shutdown] %>" -<% if @queue_dequeue_slowdown -%> - queue.dequeueslowdown="<%= @queue_dequeue_slowdown %>" -<% end -%> -<% if @queue_dequeue_time_begin -%> - queue.dequeuetimebegin="<%= @queue_dequeue_time_begin %>" -<% end -%> -<% if @queue_dequeue_time_end -%> - queue.dequeuetimeend="<%= @queue_dequeue_time_end %>" -<% end -%> -) { -<% @_dest.each do |dest| -%> -<% _host,_port = dest.split(":") -%> -<% - if _port.nil? || _port.empty? - if @_use_tls - _port = '6514' - else - _port = '514' - end - end --%> - action( - type="omfwd" -<% if @template -%> - template="<%= @template %>" -<% end -%> - protocol="<%= @dest_type %>" - target="<%= _host %>" - port="<%= _port %>" -<% if @tcp_framing -%> - TCP_Framing="<%= @tcp_framing %>" -<% end -%> -<% if @zip_level -%> - ZipLevel="<%= @zip_level %>" -<% end -%> -<% if @max_error_messages -%> - maxErrorMessages="<%= @max_error_messages %>" -<% end -%> -<% if @compression_mode -%> - compression.mode="<%= @compression_mode %>" -<% end -%> - compression.stream.flushOnTXEnd="<%= _bool_xlat[@compression_stream_flush_on_tx_end] %>" -<% if @keep_alive -%> - KeepAlive="<%= _bool_xlat[@keep_alive] %>" -<% if @keep_alive_probes -%> - KeepAlive.Probes="<%= @keep_alive_probes %>" -<% end -%> -<% if @keep_alive_interval -%> - KeepAlive.Interval="<%= @keep_alive_interval %>" -<% end -%> -<% if @keep_alive_time -%> - KeepAlive.Time="<%= @keep_alive_time %>" -<% end -%> -<% end -%> -<% if @rebind_interval -%> - RebindInterval="<%= @rebind_interval %>" -<% end -%> -<% if @_use_tls -%> -<% if @stream_driver -%> - StreamDriver="<%= @stream_driver %>" -<% end -%> -<% if @stream_driver_mode -%> - StreamDriverMode="<%= @stream_driver_mode %>" -<% end -%> -<% if @stream_driver_auth_mode -%> - StreamDriverAuthMode="<%= @stream_driver_auth_mode %>" -<% end -%> -<% if @_stream_driver_permitted_peers - _permitted_peers = @_stream_driver_permitted_peers - else - _permitted_peers = _host - end --%> - StreamDriverPermittedPeers="<%= _permitted_peers %>" -<% end -%> - ResendLastMSGOnReconnect="<%= _bool_xlat[@resend_last_msg_on_reconnect] %>" - ) -<% end -%> -<% - if @_failover_servers.length > 0 - _final_host = @_failover_servers.last - @_failover_servers.each do |s_target| - s_host,s_port = s_target.split(":") - if s_port.nil? || s_port.empty? - if @_use_tls - s_port = '6514' - else - s_port = '514' - end - end --%> - - action( - type="omfwd" -<% if @template -%> - template="<%= @template %>" -<% end -%> - protocol="<%= @dest_type %>" - target="<%= s_host %>" - port="<%= s_port %>" -<% if s_target.eql? _final_host -%> -# NOTE: This must exist for the last failover host so that we can queue logs to disk when needed. - queue.filename="<%= @_queue_filename %>_action" -<% if @queue_size -%> - queue.size="<%= @queue_size %>" -<% end -%> -<% if @queue_dequeue_batch_size -%> - queue.dequeuebatchsize="<%= @queue_dequeue_batch_size %>" -<% end -%> -<% if @queue_max_disk_space -%> - queue.maxdiskspace="<%= @queue_max_disk_space %>" -<% end -%> -<% if @queue_high_watermark -%> - queue.highwatermark="<%= @queue_high_watermark %>" -<% end -%> -<% if @queue_low_watermark -%> - queue.lowwatermark="<%= @queue_low_watermark %>" -<% end -%> -<% if @queue_full_delay_mark -%> - queue.fulldelaymark="<%= @queue_full_delay_mark %>" -<% end -%> -<% if @queue_light_delay_mark -%> - queue.lightdelaymark="<%= @queue_light_delay_mark %>" -<% end -%> -<% if @queue_discard_mark -%> - queue.discardmark="<%= @queue_discard_mark %>" -<% end -%> -<% if @queue_discard_severity -%> - queue.discardseverity="<%= @queue_discard_severity %>" -<% end -%> -<% if @queue_checkpoint_interval -%> - queue.checkpointinterval="<%= @queue_checkpoint_interval %>" -<% end -%> - queue.syncqueuefiles="<%= _bool_xlat[@queue_sync_queue_files] %>" - queue.type="LinkedList" -<% if @queue_worker_threads -%> - queue.workerthreads="<%= @queue_worker_threads %>" -<% end -%> -<% if @queue_timeout_shutdown -%> - queue.timeoutshutdown="<%= @queue_timeout_shutdown %>" -<% end -%> -<% if @queue_timeout_action_completion -%> - queue.timeoutactioncompletion="<%= @queue_timeout_action_completion %>" -<% end -%> -<% if @queue_timeout_enqueue -%> - queue.timeoutenqueue="<%= @queue_timeout_enqueue %>" -<% end -%> -<% if @queue_timeout_worker_thread_shutdown -%> - queue.timeoutworkerthreadshutdown="<%= @queue_timeout_worker_thread_shutdown %>" -<% end -%> -<% if @queue_worker_thread_minimum_messages -%> - queue.workerthreadminimummessages="<%= @queue_worker_thread_minimum_messages %>" -<% end -%> -<% if @queue_max_file_size -%> - queue.maxfilesize="<%= @queue_max_file_size %>" -<% end -%> - queue.saveonshutdown="<%= _bool_xlat[@queue_save_on_shutdown] %>" -<% if @queue_dequeue_slowdown -%> - queue.dequeueslowdown="<%= @queue_dequeue_slowdown %>" -<% end -%> -<% if @queue_dequeue_time_begin -%> - queue.dequeuetimebegin="<%= @queue_dequeue_time_begin %>" -<% end -%> -<% if @queue_dequeue_time_end -%> - queue.dequeuetimeend="<%= @queue_dequeue_time_end %>" -<% end -%> -<% end -%> -<% if @tcp_framing -%> - TCP_Framing="<%= @tcp_framing %>" -<% end -%> -<% if @zip_level -%> - ZipLevel="<%= @zip_level %>" -<% end -%> -<% if @max_error_messages -%> - maxErrorMessages="<%= @max_error_messages %>" -<% end -%> -<% if @compression_mode -%> - compression.mode="<%= @compression_mode %>" -<% end -%> - compression.stream.flushOnTXEnd="<%= _bool_xlat[@compression_stream_flush_on_tx_end] %>" -<% if @keep_alive -%> - KeepAlive="<%= _bool_xlat[@keep_alive] %>" -<% if @keep_alive_probes -%> - KeepAlive.Probes="<%= @keep_alive_probes %>" -<% end -%> -<% if @keep_alive_interval -%> - KeepAlive.Interval="<%= @keep_alive_interval %>" -<% end -%> -<% if @keep_alive_time -%> - KeepAlive.Time="<%= @keep_alive_time %>" -<% end -%> -<% end -%> -<% if @rebind_interval -%> - RebindInterval="<%= @rebind_interval %>" -<% end -%> -<% if @_use_tls -%> -<% if @stream_driver -%> - StreamDriver="<%= @stream_driver %>" -<% end -%> -<% if @stream_driver_mode -%> - StreamDriverMode="<%= @stream_driver_mode %>" -<% end -%> -<% if @stream_driver_auth_mode -%> - StreamDriverAuthMode="<%= @stream_driver_auth_mode %>" -<% end -%> -<% if @_stream_driver_permitted_peers - _permitted_peers = @_stream_driver_permitted_peers - else - _permitted_peers = s_host - end --%> - StreamDriverPermittedPeers="<%= _permitted_peers %>" -<% end -%> - ResendLastMSGOnReconnect="<%= _bool_xlat[@resend_last_msg_on_reconnect] %>" - action.resumeRetryCount="<%= @action_resume_retry_count %>" - action.execOnlyWhenPreviousIsSuspended="on" - ) -<% - end - end --%> -<% if @stop_processing -%> - stop -<% end -%> -} - -if (<%= @rule.split("\n").collect{ |x| x.sub(/^\s+/,"") }.join("\n") %>) then call ruleset_<%= @_safe_name %>