003 File Manager
Current Path:
/usr/local/lib/python3.8/site-packages/salt/pillar
usr
/
local
/
lib
/
python3.8
/
site-packages
/
salt
/
pillar
/
📁
..
📄
__init__.py
(48.72 KB)
📁
__pycache__
📄
azureblob.py
(13.88 KB)
📄
cmd_json.py
(787 B)
📄
cmd_yaml.py
(893 B)
📄
cmd_yamlex.py
(674 B)
📄
cobbler.py
(1.64 KB)
📄
confidant.py
(3.29 KB)
📄
consul_pillar.py
(11.61 KB)
📄
csvpillar.py
(1.85 KB)
📄
digicert.py
(1007 B)
📄
django_orm.py
(7.74 KB)
📄
ec2_pillar.py
(10.12 KB)
📄
etcd_pillar.py
(2.36 KB)
📄
extra_minion_data_in_pillar.py
(2.18 KB)
📄
file_tree.py
(18.03 KB)
📄
foreman.py
(3.66 KB)
📄
git_pillar.py
(19.61 KB)
📄
gpg.py
(560 B)
📄
hg_pillar.py
(3.19 KB)
📄
hiera.py
(846 B)
📄
http_json.py
(2.43 KB)
📄
http_yaml.py
(2.43 KB)
📄
libvirt.py
(5.78 KB)
📄
makostack.py
(21.99 KB)
📄
mongo.py
(5.6 KB)
📄
mysql.py
(3.76 KB)
📄
nacl.py
(744 B)
📄
netbox.py
(29.5 KB)
📄
neutron.py
(2.41 KB)
📄
nodegroups.py
(1.7 KB)
📄
pepa.py
(20.98 KB)
📄
pillar_ldap.py
(10.95 KB)
📄
postgres.py
(2.82 KB)
📄
puppet.py
(846 B)
📄
reclass_adapter.py
(4 KB)
📄
redismod.py
(3.28 KB)
📄
rethinkdb_pillar.py
(4.71 KB)
📄
s3.py
(14.4 KB)
📄
saltclass.py
(1.49 KB)
📄
sql_base.py
(15.38 KB)
📄
sqlcipher.py
(3.42 KB)
📄
sqlite3.py
(2.67 KB)
📄
stack.py
(22.07 KB)
📄
svn_pillar.py
(5.74 KB)
📄
varstack_pillar.py
(1.1 KB)
📄
vault.py
(4.03 KB)
📄
venafi.py
(966 B)
📄
virtkey.py
(586 B)
📄
vmware_pillar.py
(16.83 KB)
Editing: redismod.py
""" 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} """ import salt.utils.json __virtualname__ = "redis" def __virtual__(): """ Only load if the redis module is in __salt__ """ if "redis.get_key" in __salt__: return __virtualname__ return False def ext_pillar(minion_id, pillar, function, **kwargs): """ Grabs external pillar data based on configured function """ if function.startswith("_") or function not in globals(): return {} # Call specified function to pull redis data return globals()[function](minion_id, pillar, **kwargs) def key_value(minion_id, pillar, pillar_key="redis_pillar"): # pylint: disable=W0613 """ 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 """ # Identify key type and process as needed based on that type key_type = __salt__["redis.key_type"](minion_id) if key_type == "string": return {pillar_key: __salt__["redis.get_key"](minion_id)} elif key_type == "hash": return {pillar_key: __salt__["redis.hgetall"](minion_id)} elif key_type == "list": list_size = __salt__["redis.llen"](minion_id) if not list_size: return {} return {pillar_key: __salt__["redis.lrange"](minion_id, 0, list_size - 1)} elif key_type == "set": return {pillar_key: __salt__["redis.smembers"](minion_id)} elif key_type == "zset": set_size = __salt__["redis.zcard"](minion_id) if not set_size: return {} return {pillar_key: __salt__["redis.zrange"](minion_id, 0, set_size - 1)} # Return nothing for unhandled types return {} def key_json(minion_id, pillar, pillar_key=None): # pylint: disable=W0613 """ 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 """ key_data = __salt__["redis.get_key"](minion_id) # Return nothing for non-existent keys if not key_data: return {} data = salt.utils.json.loads(key_data) # Return as requested if isinstance(data, dict) and not pillar_key: return data elif not pillar_key: return {"redis_pillar": data} else: return {pillar_key: data}
Upload File
Create Folder