%PDF- %PDF-
| Direktori : /proc/self/root/proc/thread-self/root/lib/python2.7/site-packages/salt/pillar/ |
| Current File : //proc/self/root/proc/thread-self/root/lib/python2.7/site-packages/salt/pillar/rethinkdb_pillar.pyo |
�
���^c @@ s� d Z d d l m Z m Z m Z d d l Z y d d l Z e Z Wn e k
r] e
Z n Xd Z i d d 6d d 6d d 6d d
6d d 6Z
d � Z e j e � Z d
d d d d � Z d S( u�
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
====================
i ( t absolute_importt print_functiont unicode_literalsNu rethinkdbu saltu rethinkdb.hostu 28015u rethinkdb.portu rethinkdb.databaseu rethinkdb.usernameu rethinkdb.passwordc C@ s t s
t St S( N( t
HAS_RETHINKDBt Falset True( ( ( s@ /usr/lib/python2.7/site-packages/salt/pillar/rethinkdb_pillar.pyt __virtual__D s u pillarc C@ s� t d } t d } t d } t d } t d }
t j d | | | � t j d | d | d | d
| d |
� } d } z� | r� t j d | | | � | r� t j | � j i | | 6� j | � j | � } qct j | � j i | | 6� j | � } ng t j d
| | � | rBt j | � j
| � j | � j | � } n! t j | � j
| � j | � } Wd | j � r�| j � n X| j
r�t | j
� d k r�t j d | � i S| j
j � }
| r�i |
| 6S|
St j d � i Sd S( ut
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
u rethinkdb.hostu rethinkdb.portu rethinkdb.databaseu rethinkdb.usernameu rethinkdb.passwordu9 Connecting to %s:%s as user '%s' for RethinkDB ext_pillart hostt portt dbt usert passworduI ext_pillar.rethinkdb: looking up pillar. table: %s, field: %s, minion: %suI ext_pillar.rethinkdb: looking up pillar. table: %s, field: id, minion: %sNi u= ext_pillar.rethinkdb: ambiguous documents found for minion %su'