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/wheel/ |
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/wheel/__init__.py |
""" Modules used to control the master itself """ from collections.abc import Mapping import salt.channel.client import salt.client.mixins import salt.config import salt.loader import salt.utils.error import salt.utils.network class WheelClient( salt.client.mixins.SyncClientMixin, salt.client.mixins.AsyncClientMixin ): """ An interface to Salt's wheel modules :ref:`Wheel modules <all-salt.wheel>` interact with various parts of the Salt Master. Importing and using ``WheelClient`` must be done on the same machine as the Salt Master and it must be done using the same user that the Salt Master is running as. Unless :conf_master:`external_auth` is configured and the user is authorized to execute wheel functions: (``@wheel``). Usage: .. code-block:: python import salt.config import salt.wheel opts = salt.config.master_config('/etc/salt/master') wheel = salt.wheel.WheelClient(opts) """ client = "wheel" tag_prefix = "wheel" def __init__(self, opts, context=None): super().__init__(opts, context=context) self.functions = salt.loader.wheels(opts, context=self.context) # TODO: remove/deprecate def call_func(self, fun, **kwargs): """ Backwards compatibility """ return self.low( fun, kwargs, print_event=kwargs.get("print_event", True), full_return=kwargs.get("full_return", False), ) # TODO: Inconsistent with runner client-- the runner client's master_call gives # an asynchronous return, unlike this def master_call(self, **kwargs): """ Execute a wheel function through the master network interface (eauth). """ load = kwargs load["cmd"] = "wheel" interface = self.opts["interface"] if interface == "0.0.0.0": interface = "127.0.0.1" if interface == "::": interface = "::1" master_uri = "tcp://{}:{}".format( salt.utils.network.ip_bracket(interface), str(self.opts["ret_port"]), ) with salt.channel.client.ReqChannel.factory( self.opts, crypt="clear", master_uri=master_uri, usage="master_call" ) as channel: ret = channel.send(load) if isinstance(ret, Mapping): if "error" in ret: salt.utils.error.raise_error(**ret["error"]) return ret def cmd_sync(self, low, timeout=None, full_return=False): """ Execute a wheel function synchronously; eauth is respected This function requires that :conf_master:`external_auth` is configured and the user is authorized to execute runner functions: (``@wheel``). .. code-block:: python >>> wheel.cmd_sync({ 'fun': 'key.finger', 'match': 'jerry', 'eauth': 'auto', 'username': 'saltdev', 'password': 'saltdev', }) {'minions': {'jerry': '5d:f6:79:43:5e:d4:42:3f:57:b8:45:a8:7e:a4:6e:ca'}} """ return self.master_call(**low) # TODO: Inconsistent with runner client-- that one uses the master_call function # and runs within the master daemon. Need to pick one... def cmd_async(self, low): """ Execute a function asynchronously; eauth is respected This function requires that :conf_master:`external_auth` is configured and the user is authorized .. code-block:: python >>> wheel.cmd_async({ 'fun': 'key.finger', 'match': 'jerry', 'eauth': 'auto', 'username': 'saltdev', 'password': 'saltdev', }) {'jid': '20131219224744416681', 'tag': 'salt/wheel/20131219224744416681'} """ fun = low.get("fun") return self.asynchronous(fun, low, local=False) def cmd( self, fun, arg=None, pub_data=None, kwarg=None, print_event=True, full_return=False, ): # pylint: disable=useless-super-delegation """ Execute a function .. code-block:: python >>> wheel.cmd('key.finger', ['jerry']) {'minions': {'jerry': '5d:f6:79:43:5e:d4:42:3f:57:b8:45:a8:7e:a4:6e:ca'}} """ return super().cmd(fun, arg, pub_data, kwarg, print_event, full_return) Wheel = WheelClient # for backward-compat