File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/pillar/__pycache__/sqlcipher.cpython-310.pyc
o
�N�g�
� @ s~ d Z ddlZddlmZ ddlmZ e�e�Zz
ddl m
Z dZW n e
y, dZY nw dd � ZG d
d� de�Zdd
� ZdS )a
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]
� N)�contextmanager)�SqlBaseExtPillar)�dbapi2TFc C s t sdS dS )NFT)�
HAS_SQLCIPHER� r r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/pillar/sqlcipher.py�__virtual__L s r c @ s0 e Zd ZdZedd� �Zdd� Zedd� �ZdS ) �SQLCipherExtPillarzM
This class receives and processes the database rows from SQLCipher.
c C s dS )NZ SQLCipherr )�clsr r r �_db_nameW s zSQLCipherExtPillar._db_namec C sX dddd�}i }t �di �}|D ]}||vr#t�d|� || ||<