PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/runners/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/runners/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