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

�N�g�@s�dZddlZddlZddlZddlZddlZddlZddlZdZ	dej
jjiZ
e�e�Zdd�Zddd�Zdd	d
�Zdd�ZdS)
z�
SmartOS Metadata grain provider

:maintainer:    Jorge Schrauwen <sjorge@blackdot.be>
:maturity:      new
:depends:       salt.utils, salt.module.cmdmod
:platform:      SmartOS

.. versionadded:: 2017.7.0

�N�mdata�cmd.runcCs0tjj��rtStjj��rdt��vrtSdS)z,
    Figure out if we need to be loaded
    zBrandZ virtual linuxF)�salt�utils�platformZis_smartos_zone�__virtualname__Zis_linux�os�uname�r
r
�E/opt/saltstack/salt/lib/python3.10/site-packages/salt/grains/mdata.py�__virtual__s
rcCs�i}|stjj�d�}|stjj�d�}|r|s|Std|dd���D]@}|�d�r1t�d�q$td|�d|��dd�}|�d	�sdd
|vrKi|d
<t�	d||�|�
dd
�}|�
dd
�}||d
|<q$|S)z
    User Metadata
    �
mdata-list�	mdata-getrT�Zignore_retcode�ERROR:z4mdata-list returned an error, skipping mdata grains.� zsdc:rz"found mdata entry %s with value %s�-�_�:)rr�path�which�__salt__�
splitlines�
startswith�log�warning�debug�replace)�
mdata_list�	mdata_get�grains�mdata_grain�mdata_valuer
r
r�_user_mdata+s6��

�
�r#cCsi}gd�}gd�}|stjj�d�}|stjj�d�}|r |s"|S||D]a}td|�d|��dd�}|�d	�rAt�d
|�q&|�d�s�d|vrNi|d<d
|dvrZi|dd
<t�d||�|�	dd�}|�	dd�}||vrtjj
�|�|dd
|<q&||dd
|<q&|S)z^
    SDC Metadata specified by there specs
    https://eng.joyent.com/mdata/datadict.html
    )ZuuidZserver_uuidZdatacenter_name�hostnameZ
dns_domain�alias)Z	resolversZnicsZroutesr
rrz sdc:TrrzCunable to read sdc:%s via mdata-get, mdata grain may be incomplete.zNo metadata for rZsdcz&found mdata entry sdc:%s with value %srrr)rrrrrrrrrr�json�loads)rrr Z
sdc_text_keysZ
sdc_json_keysr!r"r
r
r�
_sdc_mdataPsD�
�
��r(cCsXi}tjj�d�}tjj�d�}tjjj|t||�dd�}tjjj|t||�dd�}|S)z2
    Provide grains from the SmartOS metadata
    r
rT)Zmerge_lists)rrrrZ
dictupdate�updater#r()r rrr
r
rr�s��)NN)�__doc__�loggingrZsalt.modules.cmdmodrZsalt.utils.dictupdateZsalt.utils.jsonZsalt.utils.pathZsalt.utils.platformr�modulesZcmdmod�runr�	getLogger�__name__rrr#r(rr
r
r
r�<module>s 
�


%;