HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/thread-self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/runners/doc.py
"""
A runner module to collect and display the inline documentation from the
various module types
"""

import itertools

import salt.client
import salt.runner
import salt.wheel
from salt.exceptions import SaltClientError


def __virtual__():
    """
    Always load
    """
    return True


def runner():
    """
    Return all inline documentation for runner modules

    CLI Example:

    .. code-block:: bash

        salt-run doc.runner
    """
    client = salt.runner.RunnerClient(__opts__)
    ret = client.get_docs()
    return ret


def wheel():
    """
    Return all inline documentation for wheel modules

    CLI Example:

    .. code-block:: bash

        salt-run doc.wheel
    """
    client = salt.wheel.Wheel(__opts__)
    ret = client.get_docs()
    return ret


def execution():
    """
    Collect all the sys.doc output from each minion and return the aggregate

    CLI Example:

    .. code-block:: bash

        salt-run doc.execution
    """
    docs = {}
    with salt.client.get_local_client(__opts__["conf_file"]) as client:
        try:
            for ret in client.cmd_iter("*", "sys.doc", timeout=__opts__["timeout"]):
                for v in ret.values():
                    docs.update(v)
        except SaltClientError as exc:
            print(exc)
            return []

        i = itertools.chain.from_iterable([docs["ret"].items()])
        ret = dict(list(i))

        return ret