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__/sqlite3.cpython-310.pyc
o

�N�g�
�@sZdZddlZddlZddlmZddlmZe�e�Z	dd�Z
Gdd�de�Zd	d
�ZdS)a�
Retrieve Pillar data by doing a SQLite3 query

.. versionadded:: 2015.8.0

``sqlite3`` is included in the stdlib since Python 2.5.

This module is a concrete implementation of the sql_base ext_pillar for
SQLite3.

:platform: all

Configuring the sqlite3 ext_pillar
==================================

Use the 'sqlite3' key under ext_pillar for configuration of queries.

SQLite3 database connection configuration requires the following values
configured in the master config:

Note, timeout is in seconds.

.. code-block:: yaml

    sqlite3.database: /var/lib/salt/pillar.db
    sqlite3.timeout: 5.0


Complete Example
================

.. code-block:: yaml

    sqlite3:
      database: '/var/lib/salt/pillar.db'
      timeout: 5.0

    ext_pillar:
      - sqlite3:
          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)�SqlBaseExtPillarcC�dS)NT�rrr�G/opt/saltstack/salt/lib/python3.10/site-packages/salt/pillar/sqlite3.py�__virtual__;src@s0eZdZdZedd��Zdd�Zedd��ZdS)	�SQLite3ExtPillarzK
    This class receives and processes the database rows from SQLite3.
    cCr)NZSQLite3r)�clsrrr�_db_nameDszSQLite3ExtPillar._db_namecCsnddd�}i}i}dtvrdtdvrt�di�}|D]}||vr.t�d|�||||<q||||<q|S)zB
        Returns options used for the SQLite3 connection.
        z/var/lib/salt/pillar.dbg@)�database�timeout�sqlite3rz#Using default for SQLite3 pillar %s)Z__opts__�get�log�debug)�self�defaults�_optionsZ_opts�attrrrr�_get_optionsHs
zSQLite3ExtPillar._get_optionsc
cs��|��}tj|�d�t|�d��d�}|��}z.z|VWntjy8}z
t�d|j	�WYd}~nd}~wwW|�
�dSW|�
�dS|�
�w)z(
        Yield a SQLite3 cursor
        rr)rzError in ext_pillar SQLite3: %sN)rr
�connectr�float�cursor�Errorr�	exception�args�close)rr�connr�errrrr�_get_cursorYs ��
����zSQLite3ExtPillar._get_cursorN)	�__name__�
__module__�__qualname__�__doc__�classmethodr
rrrrrrrr?s
rcOst�j||g|�Ri|��S)zE
    Execute queries against SQLite3, merge and return as a dict
    )rZfetch)Z	minion_idZpillarr�kwargsrrr�
ext_pillarksr&)
r#�loggingr
�
contextlibrZsalt.pillar.sql_baser�	getLoggerr rrrr&rrrr�<module>s0
,