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

�N�g�
�@sldZddlZddlZddlZddlmmZddlZddl	ZdZ
de
�d�Zdd�Zd
d	d
�Z
dd�ZdS)a2
Grains from cloud metadata servers at 169.254.169.254

.. versionadded:: 2017.7.0

:depends: requests

To enable these grains that pull from the http://169.254.169.254/latest
metadata server set `metadata_server_grains: True` in the minion config.

.. code-block:: yaml

    metadata_server_grains: True

�Nz169.254.169.254zhttp://�/cCsrt�dd�dur
dSt�tjtj�}|�d�|�tdf�}|dkr$dStj	t
j�t
d�dd��d	�d
kr7dSdS)NZmetadata_server_grainsFg�������?�Pr�latest/T)�statusr��)Z__opts__�get�socket�AF_INET�SOCK_STREAM�
settimeout�
connect_ex�IP�http�query�os�path�join�HOST)�sock�result�r�H/opt/saltstack/salt/lib/python3.10/site-packages/salt/grains/metadata.py�__virtual__s
"rrc	Cs�i}tjtj�t|�dd�}d|vr|Stjj�	|d�}|d�
dd�dkr)|S|�d�D]�}|�d	�rFt
tj�||�d
�||dd�<q.|d
krYt
tj�||d	�d
�||<q.|�d�rkt
tj�||�d
�||<q.d|vr�|�d�\}}t
tj�||�d
�||<q.t�tj�t||���
dd�}t|t�r�ztjj�tjj�	|��||<Wq.ty�tjj�	|�||<Yq.w|||<q.tjj�|�S)z?
    Recursively look up all grains in the metadata server
    T)�headers�bodyrzContent-Typez
text/plainzapplication/octet-stream�
r)�prefixN���r)Zdynamicz	meta-data�=)rrrrrr�salt�utilsZstringutilsZ
to_unicoder�split�endswith�_search�
isinstance�bytes�json�loads�
ValueError�data�decode)r�retZlinedatar�line�key�valueZretdatarrrr#+s<�
"

��
r#cCst�S)N)r#rrrr�metadataVsr/)r)�__doc__rrZsalt.utils.datarZsalt.utils.httpr rZsalt.utils.jsonZsalt.utils.stringutilsr
rrr#r/rrrr�<module>s

+