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

�N�gV
�@s�dZddlZddlmmZddlZddlZe�e	�Z
ddddd�ZdZej
d	d
��Zej
dd��Zej
d
d��Zej
dd��Zdd�Zdd�Zdd�Zdd�Zdd�ZdS)z�
Module for managaging metadata in SmartOS Zones

.. versionadded:: 2016.3.0

:maintainer:    Jorge Schrauwen <sjorge@blackdot.be>
:maturity:      new
:platform:      smartos
�N�list�get�put�delete)�list_�get_�put_�delete_�mdatacC�tjj�d�S)z=
    looks to see if mdata-list is present on the system
    z
mdata-list��salt�utils�path�which�rr�F/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/mdata.py�_check_mdata_list�rcCr)z<
    looks to see if mdata-get is present on the system
    z	mdata-getrrrrr�_check_mdata_get'rrcCr)z<
    looks to see if mdata-put is present on the system
    z	mdata-putrrrrr�_check_mdata_put/rrcCr)z?
    looks to see if mdata-delete is present on the system
    zmdata-deleterrrrr�_check_mdata_delete7rrcCs$t�rtjj��stSdt�d�fS)z(
    Provides mdata only on SmartOS
    Fz+ module can only be loaded on SmartOS zones)rr
r�platformZis_smartos_globalzone�__virtualname__rrrr�__virtual__?s
�rcCs(t�}|r|�}td|dd���SiS)zj
    List available metadata

    CLI Example:

    .. code-block:: bash

        salt '*' mdata.list
    zcmd.runT��ignore_retcode)r�__salt__�
splitlines)r
�cmdrrrrKs

rcGsjt�}i}|s
t�}|D]&}|r.|�d|��}td|dd�}|ddkr)|dnd||<qd||<q|S)	a
    Get metadata

    keyname : string
        name of key

    .. note::

        If no keynames are specified, we get all (public) properties

    CLI Example:

    .. code-block:: bash

        salt '*' mdata.get salt:role
        salt '*' mdata.get user-script salt:role
    � �cmd.run_allTr�retcoder�stdout�)rrr)�keynamer
�ret�kr�resrrrr\s
rcCsBt�}i}|rd|�d|�d|��}td|ddd�}|ddkS)	z�
    Put metadata

    prop : string
        name of property
    val : string
        value to set

    CLI Example:

    .. code-block:: bash

        salt '*' mdata.list
    zecho z | r r!T)Zpython_shellrr"r)rr)r%�valr
r&rrrrrsrcGs^t�}t�}i}|D]"}|r(||vr(|�d|��}td|dd�ddk||<q
d||<q
|S)z�
    Delete metadata

    prop : string
        name of property

    CLI Example:

    .. code-block:: bash

        salt '*' mdata.get salt:role
        salt '*' mdata.get user-script salt:role
    r r!Trr"r)rrr)r%r
Zvalid_keynamesr&r'rrrrr	�s
r	)�__doc__�loggingZsalt.utils.decoratorsrZ
decoratorsZsalt.utils.pathr
Zsalt.utils.platform�	getLogger�__name__�logZ__func_alias__rZmemoizerrrrrrrrr	rrrr�<module>s2

�



#