HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/logadm.cpython-310.pyc
o

�N�g�%�@s<dZddlZddlZddlZddlmmZddlZddl	Ze�
e�ZdZ
dddd�Zidd	�d
d�dd
�dd�dd�dd�dd�dd�dd�dd�dd�dd�d d!�d"d#�d$d%�d&d'�d(d)�d*d+d,��Zd-d.�Zd/d0�Ze
fd1d2�ZdAd4d5�Ze
dfd6d7�Ze
dd8fd9d:�Zejd;d<��Zde
fd=d>�Ze
fd?d@�ZdS)Bz9
Module for managing Solaris logadm based log rotations.
�Nz/etc/logadm.conf�copy�	localtimeZskip_missing)z-cz-lz-Nz-AZagez-C�countz-aZpost_commandz-bZpre_commandz-eZ	mail_addrz-EZexpire_commandz-g�groupz-m�modez-MZrename_commandz-o�ownerz-pZperiodz-PZtimestmpz-RZold_created_commandz-s�sizez-SZmax_sizez-t�templatez-TZold_pattern�	entrynameZcompress_count)z-wz-zcCsdtdvrdSdS)z,
    Only work on Solaris based systems
    �SolarisZ	os_familyT)FzHThe logadm execution module cannot be loaded: only available on Solaris.)Z
__grains__�rr�G/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/logadm.py�__virtual__+srcs@�fdd�t��D�}|�fdd�t��D�7}|r|dSdS)z6
    Turn a pass argument into the correct option
    c�g|]
\}}|�kr|�qSrr��.0�o�a��argrr
�
<listcomp>;�z_arg2opt.<locals>.<listcomp>crrrrrrr
r<rrN��option_toggles�items�option_flags)r�resrrr
�_arg2opt7srcCs�i}tjj�|d��.}|D]"}tjj�|���}|sq
|�d�r!q
|�dd�}|d||d<q
Wd�|S1s;wY|S)z,
    Parse a logadm configuration file.
    �r�#� �rN)	�salt�utils�filesZfopenZstringutilsZ
to_unicode�strip�
startswith�split)�	conf_file�retZifile�lineZ	splitlinerrr
�_parse_conf@s
�
�	�	r+TcCs�i}t�|�}|sdS|�d�r||d<n||d<d}|t|�kr�|dt|�dfvr9||�d�r9|||d<n`||tvrHd|t||<nQ||tvrw|dt|�krw||d��rft||d�n||d|t||<|d7}n"d|vrg|d<d	||vr�d
||�d
�|d<n	|d�||�|d7}|t|�ks!d|vr�d	�	|d�|d<d|vr�d|vr�|d|d<|d=|r�t�
�D]
}||vr�d||<q�t�
�D]
}||vr�d||<q�|S)
z'
    Parse a logadm options string
    N�/�log_filer
rr!TZadditional_optionsr �'Zdditional_optionsF)�shlexr'r&�lenrr�isdigit�int�append�join�values)�entry�options�
include_unset�log_cfg�index�namerrr
�_parse_optionsQsR


"�
�
���r<cCs6t|�}|r||vr|||iS|r|d|��iS|S)a0
    Show configuration

    conf_file : string
        path to logadm.conf, defaults to /etc/logadm.conf
    name : string
        optional show only a single entry

    CLI Example:

    .. code-block:: bash

        salt '*' logadm.show_conf
        salt '*' logadm.show_conf name=/var/log/syslog
    �
not found in )r+)r(r;�cfgrrr
�	show_conf�sr?FcCspt|�}i}|D]}t||||�}||d|vr|dn|d<q|r-||vr-|||iS|r6|d|��iS|S)a�
    Show parsed configuration

    .. versionadded:: 2018.3.0

    conf_file : string
        path to logadm.conf, defaults to /etc/logadm.conf
    log_file : string
        optional show only one log file
    include_unset : boolean
        include unset flags in output

    CLI Example:

    .. code-block:: bash

        salt '*' logadm.list_conf
        salt '*' logadm.list_conf log=/var/log/syslog
        salt '*' logadm.list_conf include_unset=False
    r-r
r=)r+r<)r(r-r8r>Z
cfg_parsedr6r9rrr
�	list_conf�s��r@cCsJiid�}t��D]
\}}||d|<q	t��D]
\}}||d|<q|S)z�
    Show which arguments map to which flags and options.

    .. versionadded:: 2018.3.0

    CLI Example:

    .. code-block:: bash

        salt '*' logadm.show_args
    )�flagsr7rAr7r)�mapping�flagr�optionrrr
�	show_args�s

rEc	Ksvtjjjdi|��}d|vr|r|�d�s||d<d|vr4|r)|�d�r)||d<n|r4|�d�r4||d<t�d|�d|��}|��D]7\}}|t�	�vrX|rXd�
|t|��}qC|t�	�vrp|�dt|��dt
�t|����}qC|dkrzt�d|�qCd|vr�d|vr�d	�
|t
�|d��}nd�
|t
�|d��}t�d
|�td|dd
�}|ddkr�td|dd�Stdd�S)a�
    Set up pattern for logging.

    name : string
        alias for entryname
    pattern : string
        alias for log_file
    conf_file : string
        optional path to alternative configuration file
    kwargs : boolean|string|int
        optional additional flags and parameters

    .. note::
        ``name`` and ``pattern`` were kept for backwards compatibility reasons.

        ``name`` is an alias for the ``entryname`` argument, ``pattern`` is an alias
        for ``log_file``. These aliases will only be used if the ``entryname`` and
        ``log_file`` arguments are not passed.

        For a full list of arguments see ```logadm.show_args```.

    CLI Example:

    .. code-block:: bash

        salt '*' logadm.rotate myapplog pattern='/var/log/myapp/*.log' count=7
        salt '*' logadm.rotate myapplog log_file='/var/log/myapp/*.log' count=4 owner=myappd mode='0700'

    r
r,r-zlogadm.rotate - kwargs: %s�
logadm -f z{} {}r z0Unknown argument %s, don't know how to map this!z{} -w {}zlogadm.rotate - command: %s�cmd.run_allF�Zpython_shell�retcoderzFailed in adding log�stderr��ErrorZOutput�Success�ZResultNr)r"r#�argsZclean_kwargsr&�log�debugrrr5�formatrrr/�quote�str�warning�__salt__�dict)r;�patternr(�kwargs�commandr�val�resultrrr
�rotate�s<

�$�	
r]cCsFd|�d|��}td|dd�}|ddkrtd|d	d
�Stdd�S)
z{
    Remove log pattern from logadm

    CLI Example:

    .. code-block:: bash

      salt '*' logadm.remove myapplog
    rFz -r rGFrHrIrz2Failure in removing log. Possibly already removed?rJrKrMrN)rVrW)r;r(rZr\rrr
�removeBs
�
r^)T)�__doc__�loggingr/Zsalt.utils.argsr"Zsalt.utils.decoratorsr#Z
decoratorsZsalt.utils.filesZsalt.utils.stringutils�	getLogger�__name__rPZdefault_confrrrrr+r<r?r@ZmemoizerEr]r^rrrr
�<module>sz
���������	�
���
������	
H(
P