003 File Manager
Current Path:
/usr/local/lib/python3.8/site-packages/salt/runners
usr
/
local
/
lib
/
python3.8
/
site-packages
/
salt
/
runners
/
📁
..
📄
__init__.py
(26 B)
📁
__pycache__
📄
asam.py
(11.2 KB)
📄
auth.py
(1.69 KB)
📄
bgp.py
(17.5 KB)
📄
cache.py
(12.72 KB)
📄
cloud.py
(4.18 KB)
📄
config.py
(913 B)
📄
ddns.py
(8.89 KB)
📄
digicertapi.py
(21.63 KB)
📄
doc.py
(1.39 KB)
📄
drac.py
(5.29 KB)
📄
error.py
(545 B)
📄
event.py
(2.1 KB)
📄
f5.py
(9.58 KB)
📄
fileserver.py
(17.37 KB)
📄
git_pillar.py
(3.98 KB)
📄
http.py
(2.35 KB)
📄
jobs.py
(17.45 KB)
📄
launchd.py
(1.35 KB)
📄
lxc.py
(18.14 KB)
📄
manage.py
(25.84 KB)
📄
mattermost.py
(4.68 KB)
📄
mine.py
(1.68 KB)
📄
nacl.py
(8.15 KB)
📄
net.py
(38.97 KB)
📄
network.py
(2.42 KB)
📄
pagerduty.py
(4.5 KB)
📄
pillar.py
(5.14 KB)
📄
pkg.py
(1.35 KB)
📄
queue.py
(8.88 KB)
📄
reactor.py
(4.97 KB)
📄
salt.py
(4.69 KB)
📄
saltutil.py
(21.5 KB)
📄
sdb.py
(2.14 KB)
📄
smartos_vmadm.py
(11.73 KB)
📄
spacewalk.py
(9.8 KB)
📄
ssh.py
(771 B)
📄
state.py
(8.88 KB)
📄
survey.py
(5.84 KB)
📄
test.py
(1.75 KB)
📄
thin.py
(1.74 KB)
📄
vault.py
(10.09 KB)
📄
venafiapi.py
(6.68 KB)
📄
virt.py
(17.59 KB)
📄
vistara.py
(5.6 KB)
📄
winrepo.py
(8.57 KB)
Editing: pillar.py
""" Functions to interact with the pillar compiler on the master """ import logging import salt.pillar import salt.utils.minions log = logging.getLogger(__name__) def show_top(minion=None, saltenv="base"): """ Returns the compiled top data for pillar for a specific minion. If no minion is specified, we use the first minion we find. CLI Example: .. code-block:: bash salt-run pillar.show_top """ id_, grains, _ = salt.utils.minions.get_minion_data(minion, __opts__) pillar = salt.pillar.Pillar(__opts__, grains, id_, saltenv) top, errors = pillar.get_top() if errors: __jid_event__.fire_event({"data": errors, "outputter": "nested"}, "progress") return errors return top def show_pillar(minion="*", **kwargs): """ Returns the compiled pillar either of a specific minion or just the global available pillars. This function assumes that no minion has the id ``*``. Function also accepts pillarenv as attribute in order to limit to a specific pillar branch of git CLI Example: shows minion specific pillar: .. code-block:: bash salt-run pillar.show_pillar 'www.example.com' shows global pillar: .. code-block:: bash salt-run pillar.show_pillar shows global pillar for 'dev' pillar environment: (note that not specifying pillarenv will merge all pillar environments using the master config option pillar_source_merging_strategy.) .. code-block:: bash salt-run pillar.show_pillar 'pillarenv=dev' shows global pillar for 'dev' pillar environment and specific pillarenv = dev: .. code-block:: bash salt-run pillar.show_pillar 'saltenv=dev' 'pillarenv=dev' API Example: .. code-block:: python import salt.config import salt.runner opts = salt.config.master_config('/etc/salt/master') runner = salt.runner.RunnerClient(opts) pillar = runner.cmd('pillar.show_pillar', []) print(pillar) """ pillarenv = None saltenv = "base" id_, grains, _ = salt.utils.minions.get_minion_data(minion, __opts__) if grains is None: grains = {"fqdn": minion} for key in kwargs: if key == "saltenv": saltenv = kwargs[key] elif key == "pillarenv": # pillarenv overridden on CLI pillarenv = kwargs[key] else: grains[key] = kwargs[key] pillar = salt.pillar.Pillar(__opts__, grains, id_, saltenv, pillarenv=pillarenv) compiled_pillar = pillar.compile_pillar() return compiled_pillar def clear_pillar_cache(minion="*", **kwargs): """ Clears the cached values when using pillar_cache .. versionadded:: 3003 CLI Example: Clears the pillar cache for a specific minion: .. code-block:: bash salt-run pillar.clear_pillar_cache 'minion' """ if not __opts__.get("pillar_cache"): log.info("The pillar_cache is set to False or not enabled.") return False ckminions = salt.utils.minions.CkMinions(__opts__) ret = ckminions.check_minions(minion) pillarenv = kwargs.pop("pillarenv", None) saltenv = kwargs.pop("saltenv", "base") pillar_cache = {} for tgt in ret.get("minions", []): id_, grains, _ = salt.utils.minions.get_minion_data(tgt, __opts__) for key in kwargs: grains[key] = kwargs[key] if grains is None: grains = {"fqdn": minion} pillar = salt.pillar.PillarCache( __opts__, grains, id_, saltenv, pillarenv=pillarenv ) pillar.clear_pillar() if __opts__.get("pillar_cache_backend") == "memory": _pillar_cache = pillar.cache else: _pillar_cache = pillar.cache._dict if tgt in _pillar_cache and _pillar_cache[tgt]: pillar_cache[tgt] = _pillar_cache.get(tgt).get(pillarenv) return pillar_cache def show_pillar_cache(minion="*", **kwargs): """ Shows the cached values in pillar_cache .. versionadded:: 3003 CLI Example: Shows the pillar cache for a specific minion: .. code-block:: bash salt-run pillar.show_pillar_cache 'minion' """ if not __opts__.get("pillar_cache"): log.info("The pillar_cache is set to False or not enabled.") return False ckminions = salt.utils.minions.CkMinions(__opts__) ret = ckminions.check_minions(minion) pillarenv = kwargs.pop("pillarenv", None) saltenv = kwargs.pop("saltenv", "base") pillar_cache = {} for tgt in ret.get("minions", []): id_, grains, _ = salt.utils.minions.get_minion_data(tgt, __opts__) for key in kwargs: grains[key] = kwargs[key] if grains is None: grains = {"fqdn": minion} pillar = salt.pillar.PillarCache( __opts__, grains, id_, saltenv, pillarenv=pillarenv ) if __opts__.get("pillar_cache_backend") == "memory": _pillar_cache = pillar.cache else: _pillar_cache = pillar.cache._dict if tgt in _pillar_cache and _pillar_cache[tgt]: pillar_cache[tgt] = _pillar_cache[tgt].get(pillarenv) return pillar_cache
Upload File
Create Folder