码迷,mamicode.com
首页 > 其他好文 > 详细

SaltStack源码分析之pillar模块

时间:2015-05-27 16:02:05      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:pillar

/usr/lib/python2.6/site-packages/salt/modules/pillar.py

def get(key, default=‘‘, merge=False, delimiter=‘:‘):
    ‘‘‘
    .. versionadded:: 0.14

    Attempt to retrieve the named value from pillar, if the named value is not
    available return the passed default. The default return is an empty string.

    If the merge parameter is set to ``True``, the default will be recursively
    merged into the returned pillar data.

    The value can also represent a value in a nested dict using a ":" delimiter
    for the dict. This means that if a dict in pillar looks like this::

        {‘pkg‘: {‘apache‘: ‘httpd‘}}

    To retrieve the value associated with the apache key in the pkg dict this
    key can be passed::

        pkg:apache

    merge
        Specify whether or not the retrieved values should be recursively
        merged into the passed default.

        .. versionadded:: 2014.7.0

    delimiter
        Specify an alternate delimiter to use when traversing a nested dict

        .. versionadded:: 2014.7.0

    CLI Example:

    .. code-block:: bash

        salt ‘*‘ pillar.get pkg:apache
    ‘‘‘
    if merge:
        ret = salt.utils.traverse_dict_and_list(__pillar__, key, {}, delimiter)
        if isinstance(ret, collections.Mapping) and                 isinstance(default, collections.Mapping):
            return salt.utils.dictupdate.update(default, ret)

    return salt.utils.traverse_dict_and_list(__pillar__,
                                             key,
                                             default,
                                             delimiter)



def items(*args):
    ‘‘‘
    Calls the master for a fresh pillar and generates the pillar data on the
    fly

    Contrast with :py:func:`raw` which returns the pillar data that is
    currently loaded into the minion.

    CLI Example:

                                             default,
                                             delimiter)


def items(*args):
    ‘‘‘
    Calls the master for a fresh pillar and generates the pillar data on the
    fly

    Contrast with :py:func:`raw` which returns the pillar data that is
    currently loaded into the minion.

    CLI Example:

    .. code-block:: bash

        salt ‘*‘ pillar.items
    ‘‘‘
    # Preserve backwards compatibility
    if args:
        return item(*args)

    pillar = salt.pillar.get_pillar(
        __opts__,
        __grains__,
        __opts__[‘id‘],
        __opts__[‘environment‘])

    return pillar.compile_pillar()

# Allow pillar.data to also be used to return pillar data
data = items



本文出自 “Linux SA John” 博客,请务必保留此出处http://john88wang.blog.51cto.com/2165294/1655650

SaltStack源码分析之pillar模块

标签:pillar

原文地址:http://john88wang.blog.51cto.com/2165294/1655650

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!