%PDF- %PDF-
Direktori : /usr/lib/python2.7/site-packages/salt/pillar/ |
Current File : //usr/lib/python2.7/site-packages/salt/pillar/hiera.py |
# -*- coding: utf-8 -*- ''' Use hiera data as a Pillar source ''' # Import Python libs from __future__ import absolute_import, print_function, unicode_literals import logging # Import salt libs import salt.utils.path import salt.utils.yaml # Import 3rd-party libs from salt.ext import six # Set up logging log = logging.getLogger(__name__) def __virtual__(): ''' Only return if hiera is installed ''' return 'hiera' if salt.utils.path.which('hiera') else False def ext_pillar(minion_id, # pylint: disable=W0613 pillar, # pylint: disable=W0613 conf): ''' Execute hiera and return the data ''' cmd = 'hiera -c {0}'.format(conf) for key, val in six.iteritems(__grains__): if isinstance(val, six.string_types): cmd += ' {0}=\'{1}\''.format(key, val) try: data = salt.utils.yaml.safe_load(__salt__['cmd.run'](cmd)) except Exception: log.critical('Hiera YAML data failed to parse from conf %s', conf) return {} return data