*******************************************************
omruleset: ruleset output/including module (DEPRECATED)
*******************************************************
=========================== ===========================================================================
**Module Name:** **omruleset**
**Author:** `Rainer Gerhards `_
=========================== ===========================================================================
.. warning::
**THIS MODULE IS DEPRECATED AND SHOULD NOT BE USED.**
It is outdated and inefficient. It has been replaced by the much more
efficient `"call" RainerScript statement <../rainerscript/rainerscript_call.html>`_.
The documentation below is provided to help you **identify and migrate** legacy configurations.
Identifying and Migrating Legacy Configurations
===============================================
If you encounter configuration files using ``omruleset``, they are using an obsolete method to invoke rulesets. You should convert these to the modern ``call`` statement, which is faster, safer, and easier to read.
Below are common patterns you might find and how to convert them.
Basic Ruleset Invocation
------------------------
**If you see this legacy code:**
.. code-block:: none
$ActionOmrulesetRulesetName my_ruleset
*.* :omruleset:
**It means:**
"Send every message (``*.*``) to the ruleset named ``my_ruleset``."
**Replace it with:**
.. code-block:: none
call my_ruleset
Conditional Ruleset Invocation (Filters)
----------------------------------------
**If you see this legacy code:**
.. code-block:: none
$ActionOmrulesetRulesetName nested
:msg, contains, "error" :omruleset:
**It means:**
"If the message contains 'error', send it to the ruleset named ``nested``."
**Replace it with:**
.. code-block:: none
if($msg contains "error") then {
call nested
}
Common Action / Write-to-File Pattern
-------------------------------------
A common use case for ``omruleset`` was to define a complex action (like writing to a specific file with its own queue) and invoke it from multiple places.
**If you see this legacy code:**
.. code-block:: none
# Definition of the target ruleset
$RuleSet CommonAction
$RulesetCreateMainQueue on
*.* /path/to/file.log
# ... later in the config ...
$ActionOmrulesetRulesetName CommonAction
mail.info :omruleset:
**It means:**
"Define a ruleset ``CommonAction`` that writes to a file (and has its own queue). Then, if a message is ``mail.info``, send it to that ruleset."
**Replace it with:**
.. code-block:: none
# Definition (using RainerScript)
ruleset(name="CommonAction" queue.type="linkedList") {
action(type="omfile" file="/path/to/file.log")
}
# Invocation
if prifilt("mail.info") then {
call CommonAction
}
.. note::
The ``ruleset()`` object definition allows you to specify queue parameters (like ``queue.type="linkedList"``) directly within the definition, making the configuration much clearer than the old ``$RulesetCreateMainQueue`` directives.
Directives Reference (for Identification)
=========================================
You may see these obsolete directives in old configuration files:
* **$ModLoad omruleset**: Loads the module. Remove this line.
* **$ActionOmrulesetRulesetName**: Specifies the target ruleset for the *next* ``:omruleset:`` action.