MINOR: hlua: expose proxy mailers

Proxy mailers, which are configured using "email-alert" directives
in proxy sections from the configuration, are now being exposed
directly in lua thanks to the proxy:get_mailers() method which
returns a class containing the various mailers settings if email
alerts are configured for the given proxy (else nil is returned).

Both the class and the proxy method were marked as LEGACY since this
feature relies on mailers configuration, and the goal here is to provide
the last missing bits of information to lua scripts in order to make
them capable of sending email alerts instead of relying on the soon-to-
be deprecated mailers implementation based on checks (see src/mailers.c)

Lua documentation was updated accordingly.
This commit is contained in:
Aurelien DARRAGON
2023-04-26 19:02:43 +02:00
committed by Christopher Faulet
parent 5bed48fec8
commit 717a38d135
2 changed files with 131 additions and 0 deletions

View File

@@ -1021,6 +1021,8 @@ Core class
Use this when sending email alerts directly from lua.
:see: :js:func:`Proxy.get_mailers()`
.. _proxy_class:
Proxy class
@@ -1143,6 +1145,63 @@ Proxy class
proxy.
:returns: a key/value table containing stats
.. js:function:: Proxy.get_mailers(px)
**LEGACY**
Returns a table containing mailers config for the current proxy or nil
if mailers are not available for the proxy.
:param class_proxy px: A :ref:`proxy_class` which indicates the manipulated
proxy.
:returns: a :ref:`proxy_mailers_class` containing proxy mailers config
.. _proxy_mailers_class:
ProxyMailers class
==================
**LEGACY**
.. js:class:: ProxyMailers
This class provides mailers config for a given proxy.
If sending emails directly from lua, please consider
:js:func:`core.disable_legacy_mailers()` to disable the email sending from
haproxy. (Or email alerts will be sent twice...)
.. js:attribute:: ProxyMailers.track_server_health
Boolean set to true if the option "log-health-checks" is configured on
the proxy, meaning that all server checks event should trigger email alerts.
.. js:attribute:: ProxyMailers.log_level
An integer, the maximum log level that triggers email alerts. It is a number
between 0 and 7 as defined by option "email-alert level".
.. js:attribute:: ProxyMailers.mailservers
An array containing the list of mail servers that should receive email alerts.
Each array entry is a name:desc pair where desc represents the full server
address (including port) as described in haproxy's configuration file.
.. js:attribute:: ProxyMailers.smtp_hostname
A string containing the hostname to use for the SMTP transaction.
(option "email-alert myhostname")
.. js:attribute:: ProxyMailers.smtp_from
A string containing the "MAIL FROM" address to use for the SMTP transaction.
(option "email-alert from")
.. js:attribute:: ProxyMailers.smtp_to
A string containing the "RCPT TO" address to use for the SMTP transaction.
(option "email-alert to")
.. _server_class:
Server class