golden hour
/opt/saltstack/salt/lib/python3.10/site-packages/salt/pillar
⬆️ Go Up
Upload
File/Folder
Size
Actions
__init__.py
50.98 KB
Del
OK
__pycache__
-
Del
OK
azureblob.py
13.88 KB
Del
OK
cmd_json.py
787 B
Del
OK
cmd_yaml.py
893 B
Del
OK
cmd_yamlex.py
674 B
Del
OK
cobbler.py
1.64 KB
Del
OK
confidant.py
3.29 KB
Del
OK
consul_pillar.py
11.61 KB
Del
OK
csvpillar.py
1.85 KB
Del
OK
digicert.py
1007 B
Del
OK
django_orm.py
7.74 KB
Del
OK
ec2_pillar.py
10.08 KB
Del
OK
etcd_pillar.py
4.04 KB
Del
OK
extra_minion_data_in_pillar.py
2.18 KB
Del
OK
file_tree.py
18.03 KB
Del
OK
foreman.py
3.66 KB
Del
OK
git_pillar.py
19.61 KB
Del
OK
gpg.py
560 B
Del
OK
hg_pillar.py
3.2 KB
Del
OK
hiera.py
846 B
Del
OK
http_json.py
3.37 KB
Del
OK
http_yaml.py
3.08 KB
Del
OK
libvirt.py
5.78 KB
Del
OK
makostack.py
21.99 KB
Del
OK
mongo.py
6.05 KB
Del
OK
mysql.py
3.76 KB
Del
OK
nacl.py
744 B
Del
OK
netbox.py
36.22 KB
Del
OK
neutron.py
2.41 KB
Del
OK
nodegroups.py
1.7 KB
Del
OK
pepa.py
20.99 KB
Del
OK
pillar_ldap.py
10.82 KB
Del
OK
postgres.py
2.82 KB
Del
OK
puppet.py
846 B
Del
OK
reclass_adapter.py
4 KB
Del
OK
redismod.py
3.28 KB
Del
OK
rethinkdb_pillar.py
4.71 KB
Del
OK
s3.py
14.4 KB
Del
OK
saltclass.py
1.49 KB
Del
OK
sql_base.py
16.51 KB
Del
OK
sqlcipher.py
3.42 KB
Del
OK
sqlite3.py
2.67 KB
Del
OK
stack.py
22.92 KB
Del
OK
svn_pillar.py
5.74 KB
Del
OK
varstack_pillar.py
1.1 KB
Del
OK
vault.py
6.54 KB
Del
OK
venafi.py
966 B
Del
OK
virtkey.py
586 B
Del
OK
vmware_pillar.py
16.83 KB
Del
OK
Edit: sqlcipher.py
""" Retrieve Pillar data by running a SQLCipher query .. versionadded:: 2016.3.0 Python SQLCipher support is provided by the pysqlcipher Python package. You need this module installed to query Pillar data from a SQLCipher database. This module is a concrete implementation of the sql_base ext_pillar for SQLCipher. :maturity: new :depends: pysqlcipher (for py2) or pysqlcipher3 (for py3) :platform: all Configuring the sqlcipher ext_pillar ==================================== Use the 'sqlcipher' key under ext_pillar for configuration of queries. SQLCipher database connection configuration requires the following values configured in the master config: * ``sqlcipher.database`` - The SQLCipher database to connect to. Defaults to ``'/var/lib/salt/pillar-sqlcipher.db'``. * ``sqlcipher.pass`` - The SQLCipher database decryption password. * ``sqlcipher.timeout`` - The connection timeout in seconds. Example configuration .. code-block:: yaml sqlcipher: database: /var/lib/salt/pillar-sqlcipher.db pass: strong_pass_phrase timeout: 5.0 Complete Example ================ .. code-block:: yaml sqlcipher: database: '/var/lib/salt/pillar-sqlcipher.db' pass: strong_pass_phrase timeout: 5.0 ext_pillar: - sqlcipher: fromdb: query: 'SELECT col1,col2,col3,col4,col5,col6,col7 FROM some_random_table WHERE minion_pattern LIKE ?' depth: 5 as_list: True with_lists: [1,3] """ import logging from contextlib import contextmanager from salt.pillar.sql_base import SqlBaseExtPillar # Set up logging log = logging.getLogger(__name__) try: from pysqlcipher import dbapi2 as sqlcipher HAS_SQLCIPHER = True except ImportError: HAS_SQLCIPHER = False def __virtual__(): if not HAS_SQLCIPHER: return False return True class SQLCipherExtPillar(SqlBaseExtPillar): """ This class receives and processes the database rows from SQLCipher. """ @classmethod def _db_name(cls): return "SQLCipher" def _get_options(self): """ Returns options used for the SQLCipher connection. """ defaults = { "database": "/var/lib/salt/pillar-sqlcipher.db", "pass": "strong_pass_phrase", "timeout": 5.0, } _options = {} _opts = __opts__.get("sqlcipher", {}) for attr in defaults: if attr not in _opts: log.debug("Using default for SQLCipher pillar %s", attr) _options[attr] = defaults[attr] continue _options[attr] = _opts[attr] return _options @contextmanager def _get_cursor(self): """ Yield a SQLCipher cursor """ _options = self._get_options() conn = sqlcipher.connect( _options.get("database"), timeout=float(_options.get("timeout")) ) conn.execute('pragma key="{}"'.format(_options.get("pass"))) cursor = conn.cursor() try: yield cursor except sqlcipher.Error as err: log.exception("Error in ext_pillar SQLCipher: %s", err.args) finally: conn.close() def ext_pillar(minion_id, pillar, *args, **kwargs): """ Execute queries against SQLCipher, merge and return as a dict """ return SQLCipherExtPillar().fetch(minion_id, pillar, *args, **kwargs)
Save