D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
saltstack
/
salt
/
lib
/
python3.10
/
site-packages
/
salt
/
matchers
/
Filename :
data_match.py
back
Copy
""" This is the default data matcher. """ import fnmatch import logging import salt.loader import salt.utils.data import salt.utils.minions import salt.utils.network log = logging.getLogger(__name__) def match(tgt, functions=None, opts=None, minion_id=None): """ Match based on the local data store on the minion """ if not opts: opts = __opts__ if functions is None: utils = salt.loader.utils(opts) functions = salt.loader.minion_mods(opts, utils=utils) comps = tgt.split(":") if len(comps) < 2: return False val = functions["data.getval"](comps[0]) if val is None: # The value is not defined return False if isinstance(val, list): # We are matching a single component to a single list member for member in val: if fnmatch.fnmatch(str(member).lower(), comps[1].lower()): return True return False if isinstance(val, dict): if comps[1] in val: return True return False return bool(fnmatch.fnmatch(val, comps[1]))