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/pillar/__pycache__/redismod.cpython-310.pyc
o

�N�g"
�@s8dZddlZdZdd�Zdd�Zd
d	d
�Zddd�ZdS)aw
Read pillar data from a Redis backend
=====================================

.. versionadded:: 2014.7.0

:depends:   - redis Python module (on master)

Salt Master Redis Configuration
===============================

The module shares the same base Redis connection variables as
:py:mod:`salt.returners.redis_return`. These variables go in your master
config file.

* ``redis.db`` - The Redis database to use. Defaults to ``0``.
* ``redis.host`` - The Redis host to connect to. Defaults to ``'salt'``.
* ``redis.port`` - The port that the Redis database is listening on. Defaults
  to ``6379``.
* ``redis.password`` - The password for authenticating with Redis. Only
  required if you are using master auth. Defaults to ``None``.

Configuring the Redis ext_pillar
================================

    .. code-block:: yaml

        ext_pillar:
          - redis: {function: key_value}

�NZrediscCsdtvrtSdS)z6
    Only load if the redis module is in __salt__
    �
redis.get_keyF)�__salt__�__virtualname__�rr�H/opt/saltstack/salt/lib/python3.10/site-packages/salt/pillar/redismod.py�__virtual__&srcKs0|�d�s
|t�vriSt�|||fi|��S)zA
    Grabs external pillar data based on configured function
    �_)�
startswith�globals)�	minion_id�pillar�function�kwargsrrr�
ext_pillar/sr�redis_pillarcCs�td|�}|dkr|td|�iS|dkr|td|�iS|dkr8td|�}|s,iS|td|d	|d
�iS|dkrD|td|�iS|d
kr^td|�}|sRiS|td|d	|d
�iSiS)a
    Looks for key in redis matching minion_id, returns a structure based on the
    data type of the redis key. String for string type, dict for hash type and
    lists for lists, sets and sorted sets.

    pillar_key
        Pillar key to return data into
    zredis.key_type�stringr�hashz
redis.hgetall�listz
redis.llenzredis.lranger��setzredis.smembersZzsetzredis.zcardzredis.zrange)r)rr�
pillar_keyZkey_typeZ	list_sizeZset_sizerrr�	key_value9s$
rcCsHtd|�}|s
iStjj�|�}t|t�r|s|S|s d|iS||iS)z�
    Pulls a string from redis and deserializes it from json. Deserialized
    dictionary data loaded directly into top level if pillar_key is not set.

    pillar_key
        Pillar key to return data into
    rr)r�salt�utils�json�loads�
isinstance�dict)rrrZkey_data�datarrr�key_jsonXsr)r)N)�__doc__Zsalt.utils.jsonrrrrrrrrrr�<module>s