HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/nginx.cpython-310.pyc
o

�N�g&�@stdZddlZddlZddlmmZddlZej	dd��Z
dd�Zdd�Zd	d
�Z
dd�Zdd
d�Zddd�ZdS)z
Support for nginx
�NcCstjj�d�S)NZnginx)�salt�utils�path�which�rr�F/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/nginx.py�__detect_ossrcCst�rdSdS)z4
    Only load the module if nginx is installed
    T)FzDThe nginx execution module cannot be loaded: nginx is not installed.)rrrrr�__virtual__sr	cCs6t��d�}td|���}|djddd�}|dS)zy
    Return server version from nginx -v

    CLI Example:

    .. code-block:: bash

        salt '*' nginx.version
    z -v�cmd.runr�/�)�maxsplit���)r�__salt__�
splitlines�rsplit)�cmd�out�retrrr�version s
rcCs`dgi}tdt��d��}|��D]}|�d�r&t�d|�dd�|d<q|d�|�q|S)	zz
    Return server and build arguments

    CLI Example:

    .. code-block:: bash

        salt '*' nginx.build_info
    �infor
z -Vzconfigure argumentz(?:[^\s]*'.*')|(?:[^\s]+)�Nzbuild arguments)rrr�
startswith�re�findall�append)rr�irrr�
build_info0s

rcCshi}t��d�}td|�}|ddkr$d|d<|d|d<d|d	<|Sd
|d<|d|d<d|d	<|S)
zt
    test configuration and exit

    CLI Example:

    .. code-block:: bash

        salt '*' nginx.configtest
    z -t�cmd.run_all�retcoderzSyntax ErrorZcomment�stderrF�resultz	Syntax OK�stdoutT)rr)rrrrrr�
configtestGs
r#cCs�d}||vrdS|dkrd}nd|��}t�|}td|�}|dr/|dr/|d��}|S|dr;|d��}|S|d	rG|d	��}|Sd
|�d�}|S)z�
    Signals nginx to start, reload, reopen or stop.

    CLI Example:

    .. code-block:: bash

        salt '*' nginx.signal reload
    )�startZreopen�stop�quit�reloadNr$�z -s rrr r"z
Command: "z" completed successfully!)rr�strip)�signal�
valid_signalsZ	argumentsrrrrrrr*ds&


	���r*�http://127.0.0.1/statuscCs�tj�|�}|��}|��|��}t|�dksdS|d��d}|d��\}}}|d��\}}	}}
}}t|�t|�t|�t|�t|	�t|
�t|�d�S)a
    Return the data from an Nginx status page as a dictionary.
    http://wiki.nginx.org/HttpStubStatusModule

    url
        The URL of the status page. Defaults to 'http://127.0.0.1/status'

    CLI Example:

    .. code-block:: bash

        salt '*' nginx.status
    �Nrr�)zactive connections�accepted�handled�requests�reading�writing�waiting)	�urllib�request�urlopen�read�closer�len�split�int)�urlZrespZstatus_data�linesZactive_connectionsr/r0r1�_r2r3r4rrr�status�s"�r@)N)r,)�__doc__r�urllib.requestr5Zsalt.utils.decoratorsrZ
decoratorsZsalt.utils.pathrZmemoizerr	rrr#r*r@rrrr�<module>s

%