Linux server.edchosting.com 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
LiteSpeed
Server IP : 75.98.162.185 & Your IP : 216.73.216.163
Domains :
Cant Read [ /etc/named.conf ]
User : goons4good
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python3.6 /
site-packages /
salt /
pillar /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2022-10-11 05:09
__init__.py
48.88
KB
-rw-r--r--
2022-05-16 09:16
azureblob.py
13.88
KB
-rw-r--r--
2022-05-16 09:16
cmd_json.py
787
B
-rw-r--r--
2022-05-16 09:16
cmd_yaml.py
893
B
-rw-r--r--
2022-05-16 09:16
cmd_yamlex.py
674
B
-rw-r--r--
2022-05-16 09:16
cobbler.py
1.64
KB
-rw-r--r--
2022-05-16 09:16
confidant.py
3.29
KB
-rw-r--r--
2022-05-16 09:16
consul_pillar.py
11.61
KB
-rw-r--r--
2022-05-16 09:16
csvpillar.py
1.85
KB
-rw-r--r--
2022-05-16 09:16
digicert.py
1007
B
-rw-r--r--
2022-05-16 09:16
django_orm.py
7.74
KB
-rw-r--r--
2022-05-16 09:16
ec2_pillar.py
10.12
KB
-rw-r--r--
2022-05-16 09:16
etcd_pillar.py
2.36
KB
-rw-r--r--
2022-05-16 09:16
extra_minion_data_in_pillar.py
2.18
KB
-rw-r--r--
2022-05-16 09:16
file_tree.py
18.03
KB
-rw-r--r--
2022-05-16 09:16
foreman.py
3.66
KB
-rw-r--r--
2022-05-16 09:16
git_pillar.py
19.61
KB
-rw-r--r--
2022-05-16 09:16
gpg.py
560
B
-rw-r--r--
2022-05-16 09:16
hg_pillar.py
3.19
KB
-rw-r--r--
2022-05-16 09:16
hiera.py
846
B
-rw-r--r--
2022-05-16 09:16
http_json.py
2.43
KB
-rw-r--r--
2022-05-16 09:16
http_yaml.py
2.43
KB
-rw-r--r--
2022-05-16 09:16
libvirt.py
5.78
KB
-rw-r--r--
2022-05-16 09:16
makostack.py
21.99
KB
-rw-r--r--
2022-05-16 09:16
mongo.py
5.6
KB
-rw-r--r--
2022-05-16 09:16
mysql.py
3.76
KB
-rw-r--r--
2022-05-16 09:16
nacl.py
744
B
-rw-r--r--
2022-05-16 09:16
netbox.py
29.5
KB
-rw-r--r--
2022-05-16 09:16
neutron.py
2.41
KB
-rw-r--r--
2022-05-16 09:16
nodegroups.py
1.7
KB
-rw-r--r--
2022-05-16 09:16
pepa.py
20.98
KB
-rw-r--r--
2022-05-16 09:16
pillar_ldap.py
10.95
KB
-rw-r--r--
2022-05-16 09:16
postgres.py
2.82
KB
-rw-r--r--
2022-05-16 09:16
puppet.py
846
B
-rw-r--r--
2022-05-16 09:16
reclass_adapter.py
4
KB
-rw-r--r--
2022-05-16 09:16
redismod.py
3.28
KB
-rw-r--r--
2022-05-16 09:16
rethinkdb_pillar.py
4.71
KB
-rw-r--r--
2022-05-16 09:16
s3.py
14.4
KB
-rw-r--r--
2022-05-16 09:16
saltclass.py
1.49
KB
-rw-r--r--
2022-05-16 09:16
sql_base.py
15.38
KB
-rw-r--r--
2022-05-16 09:16
sqlcipher.py
3.42
KB
-rw-r--r--
2022-05-16 09:16
sqlite3.py
2.67
KB
-rw-r--r--
2022-05-16 09:16
stack.py
22.07
KB
-rw-r--r--
2022-05-16 09:16
svn_pillar.py
5.74
KB
-rw-r--r--
2022-05-16 09:16
varstack_pillar.py
1.1
KB
-rw-r--r--
2022-05-16 09:16
vault.py
4.03
KB
-rw-r--r--
2022-05-16 09:16
venafi.py
966
B
-rw-r--r--
2022-05-16 09:16
virtkey.py
586
B
-rw-r--r--
2022-05-16 09:16
vmware_pillar.py
16.83
KB
-rw-r--r--
2022-05-16 09:16
Save
Rename
""" Provide external pillar data from RethinkDB .. versionadded:: 2018.3.0 :depends: rethinkdb (on the salt-master) salt master rethinkdb configuration =================================== These variables must be configured in your master configuration file. * ``rethinkdb.host`` - The RethinkDB server. Defaults to ``'salt'`` * ``rethinkdb.port`` - The port the RethinkDB server listens on. Defaults to ``'28015'`` * ``rethinkdb.database`` - The database to connect to. Defaults to ``'salt'`` * ``rethinkdb.username`` - The username for connecting to RethinkDB. Defaults to ``''`` * ``rethinkdb.password`` - The password for connecting to RethinkDB. Defaults to ``''`` salt-master ext_pillar configuration ==================================== The ext_pillar function arguments are given in single line dictionary notation. .. code-block:: yaml ext_pillar: - rethinkdb: {table: ext_pillar, id_field: minion_id, field: pillar_root, pillar_key: external_pillar} In the example above the following happens. * The salt-master will look for external pillars in the 'ext_pillar' table on the RethinkDB host * The minion id will be matched against the 'minion_id' field * Pillars will be retrieved from the nested field 'pillar_root' * Found pillars will be merged inside a key called 'external_pillar' Module Documentation ==================== """ # Import python libraries import logging # Import 3rd party libraries try: import rethinkdb HAS_RETHINKDB = True except ImportError: HAS_RETHINKDB = False __virtualname__ = "rethinkdb" __opts__ = { "rethinkdb.host": "salt", "rethinkdb.port": "28015", "rethinkdb.database": "salt", "rethinkdb.username": None, "rethinkdb.password": None, } def __virtual__(): if not HAS_RETHINKDB: return False return True # Configure logging log = logging.getLogger(__name__) def ext_pillar( minion_id, pillar, table="pillar", id_field=None, field=None, pillar_key=None ): """ Collect minion external pillars from a RethinkDB database Arguments: * `table`: The RethinkDB table containing external pillar information. Defaults to ``'pillar'`` * `id_field`: Field in document containing the minion id. If blank then we assume the table index matches minion ids * `field`: Specific field in the document used for pillar data, if blank then the entire document will be used * `pillar_key`: The salt-master will nest found external pillars under this key before merging into the minion pillars. If blank, external pillars will be merged at top level """ host = __opts__["rethinkdb.host"] port = __opts__["rethinkdb.port"] database = __opts__["rethinkdb.database"] username = __opts__["rethinkdb.username"] password = __opts__["rethinkdb.password"] log.debug( "Connecting to %s:%s as user '%s' for RethinkDB ext_pillar", host, port, username, ) # Connect to the database conn = rethinkdb.connect( host=host, port=port, db=database, user=username, password=password ) data = None try: if id_field: log.debug( "ext_pillar.rethinkdb: looking up pillar. " "table: %s, field: %s, minion: %s", table, id_field, minion_id, ) if field: data = ( rethinkdb.table(table) .filter({id_field: minion_id}) .pluck(field) .run(conn) ) else: data = rethinkdb.table(table).filter({id_field: minion_id}).run(conn) else: log.debug( "ext_pillar.rethinkdb: looking up pillar. " "table: %s, field: id, minion: %s", table, minion_id, ) if field: data = rethinkdb.table(table).get(minion_id).pluck(field).run(conn) else: data = rethinkdb.table(table).get(minion_id).run(conn) finally: if conn.is_open(): conn.close() if data.items: # Return nothing if multiple documents are found for a minion if len(data.items) > 1: log.error( "ext_pillar.rethinkdb: ambiguous documents found for minion %s", minion_id, ) return {} else: result = data.items.pop() if pillar_key: return {pillar_key: result} return result else: # No document found in the database log.debug("ext_pillar.rethinkdb: no document found") return {}