File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/pillar/__pycache__/csvpillar.cpython-310.pyc
o
�N�gf � @ s: d Z ddlZddlZdZdd� Z d
dd �ZdS )af
Store key/value pairs in a CSV file
.. versionadded:: 2016.11.0
Example configuration:
.. code-block:: yaml
ext_pillar:
- csv: /path/to/file.csv
# or
ext_pillar:
- csv:
path: /path/to/file.csv
namespace: 'subkey'
fieldnames:
- col1
- col2
- col2
The first column must be minion IDs and the first row must be dictionary keys.
E.g.:
========== ========= ======
id role env
========== ========= ======
jerry web prod
stuart web stage
dave web qa
phil db prod
kevin db stage
mike db qa
========== ========= ======
Will produce the following Pillar values for a minion named "jerry":
.. code-block:: python
{
'role': 'web',
'env': 'prod',
}
� N�csvc C s t S )N)�__virtualname__� r r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/pillar/csvpillar.py�__virtual__7 s r �id�excelc C s� t jj�|d��8} tj| ||||d�}
|
D ]"}|| | kr7|r,||i W d � S | W d � S qW d � i S 1 sCw Y i S )ag
Read a CSV into Pillar
:param str path: Absolute path to a CSV file.
:param str idkey: (Optional) The column name of minion IDs.
:param str namespace: (Optional) A pillar key to namespace the values under.
:param list fieldnames: (Optional) if the first row of the CSV is not
column names they may be specified here instead.
�r)�restkey�restval�dialectN)�salt�utils�filesZfopenr Z
DictReader)ZmidZpillar�pathZidkey� namespaceZ
fieldnamesr
r r �fZsheet�rowr r r �
ext_pillar; s"