HEX
Server: Apache
System: Linux sg241.singhost.net 2.6.32-896.16.1.lve1.4.51.el6.x86_64 #1 SMP Wed Jan 17 13:19:23 EST 2018 x86_64
User: honghock (909)
PHP: 8.0.30
Disabled: passthru,system,shell_exec,show_source,exec,popen,proc_open
Upload Files
File: //usr/lib/python2.7/site-packages/salt/matchers/confirm_top.py
# -*- coding: utf-8 -*-
'''
The matcher subsystem needs a function called 'confirm_top', which
takes the data passed to a top file environment and determines if that
data matches this minion.
'''
from __future__ import absolute_import
import logging

import salt.loader

log = logging.getLogger(__file__)


def confirm_top(match, data, nodegroups=None):
    '''
    Takes the data passed to a top file environment and determines if the
    data matches this minion
    '''
    matcher = 'compound'
    if not data:
        log.error('Received bad data when setting the match from the top '
                  'file')
        return False
    for item in data:
        if isinstance(item, dict):
            if 'match' in item:
                matcher = item['match']

    matchers = salt.loader.matchers(__opts__)
    funcname = matcher + '_match.match'
    if matcher == 'nodegroup':
        return matchers[funcname](match, nodegroups)
    else:
        m = matchers[funcname]
        return m(match)
    # except TypeError, KeyError:
    #     log.error('Attempting to match with unknown matcher: %s', matcher)