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__/omapi.cpython-310.pyc
o

�N�gR�
@s�dZddlZddlZddlZe�e�ZzddlZ	dZ
Wney/ZzdZ
WYdZ[ndZ[wwdd�Z
dd�Zd
d	d
�Zddd�ZdS)z�
This module interacts with an ISC DHCP Server via OMAPI.
server_ip and server_port params may be set in the minion
config or pillar:

.. code-block:: yaml

  omapi.server_ip: 127.0.0.1
  omapi.server_port: 7991

:depends: pypureomapi Python module
�NTFcCstrdSdS)z+
    Confirm pypureomapi is available.
    �omapi)Fz]The omapi execution module cannot be loaded: the pypureomapi python library is not available.)�
omapi_support�rr�F/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/omapi.py�__virtual__srcCs�t�dt�dd��}t�dt�dd��}t�dt�dd��}t�dt�dd��}|r1tjj�|�}|r:tjj�|�}tj||||d�S)Nzomapi.server_ipz	127.0.0.1zomapi.server_porti7z	omapi.keyz
omapi.user)�username�key)	Z
__pillar__�getZ__opts__�salt�utils�stringutils�to_bytesrZOmapi)Z	server_ipZserver_portrrrrr�_conn+s��rc
Cs2d}t�}tj�d�}|j�dt�dd�f�|j�dt�dd�f�|j�dt�	|�f�|j�dt�dd�f�|rG|j�d	t�
|�f�|rV|j�d
tjj
�|�f�|re|j�dtjj
�|�f�|ro|d|�d
�7}|r{|r{|d|�d
�7}|r�|j�dtjj
�|�f�|�|�}	|	jtjkr�dSdS)aH
    Add a host object for the given mac.

    CLI Example:

    .. code-block:: bash

        salt dhcp-server omapi.add_host ab:ab:ab:ab:ab:ab name=host1

    Add ddns-hostname and a fixed-ip statements:

    .. code-block:: bash

        salt dhcp-server omapi.add_host ab:ab:ab:ab:ab:ab name=host1 ip=10.1.1.1 ddns=true
    ��hostscreate�!I�s	exclusive�hardware-address�
hardware-types
ip-address�namesgroupzoption host-name "z"; zddns-hostname "s
statementsFT)rr�OmapiMessage�open�message�append�struct�pack�obj�pack_macZpack_ipr
rrr
�query_server�opcode�OMAPI_OP_UPDATE)
�mac�name�ipZddns�groupZsupersede_hostZ
statements�o�msg�responserrr�add_host;s.
r(cCs�|s|std��t�}tj�d�}|r*|j�dt�|�f�|j�dt�	dd�f�|r9|j�dt
jj�
|�f�|�|�}|jtjkrFdS|jd	krMd
S|�tj�|j��}|jtjkr_d
SdS)z�
    Delete the host with the given mac or name.

    CLI Examples:

    .. code-block:: bash

        salt dhcp-server omapi.delete_host name=host1
        salt dhcp-server omapi.delete_host mac=ab:ab:ab:ab:ab:ab
    z!At least one argument is requiredrrrrrrNrFT)�	TypeErrorrrrrrrrrrr
rrr
rrr �handle�deleteZOMAPI_OP_STATUS)r!r"r%r&r'rrr�delete_hostds$

r,)NNFNF)NN)�__doc__�loggingrZsalt.utils.stringutilsr
�	getLogger�__name__�logZpypureomapirr�ImportError�errr(r,rrrr�<module>s 

��
)