MCPcopy Index your code
hub / github.com/saltstack/salt / target

Function target

salt/metaproxy/proxy.py:316–392  ·  view source on GitHub ↗

Handle targeting of the minion. Calling _thread_multi_return or _thread_return depending on a single or multiple commands.

(cls, minion_instance, opts, data, connected, creds_map)

Source from the content-addressed store, hash-verified

314
315
316def target(cls, minion_instance, opts, data, connected, creds_map):
317 """
318 Handle targeting of the minion.
319
320 Calling _thread_multi_return or _thread_return
321 depending on a single or multiple commands.
322 """
323 if creds_map:
324 salt.crypt.AsyncAuth.creds_map = creds_map
325 if not minion_instance:
326 minion_instance = cls(opts)
327 minion_instance.connected = connected
328 if not hasattr(minion_instance, "functions"):
329 # Need to load the modules so they get all the dunder variables
330 (
331 functions,
332 returners,
333 function_errors,
334 executors,
335 ) = minion_instance._load_modules(grains=opts["grains"])
336 minion_instance.functions = functions
337 minion_instance.returners = returners
338 minion_instance.function_errors = function_errors
339 minion_instance.executors = executors
340
341 # Pull in the utils
342 minion_instance.utils = salt.loader.utils(minion_instance.opts)
343
344 # Then load the proxy module
345 minion_instance.proxy = salt.loader.proxy(
346 minion_instance.opts, utils=minion_instance.utils
347 )
348
349 # And re-load the modules so the __proxy__ variable gets injected
350 (
351 functions,
352 returners,
353 function_errors,
354 executors,
355 ) = minion_instance._load_modules(grains=opts["grains"])
356 minion_instance.functions = functions
357 minion_instance.returners = returners
358 minion_instance.function_errors = function_errors
359 minion_instance.executors = executors
360
361 minion_instance.functions.pack["__proxy__"] = minion_instance.proxy
362 minion_instance.proxy.pack["__salt__"] = minion_instance.functions
363 minion_instance.proxy.pack["__ret__"] = minion_instance.returners
364 minion_instance.proxy.pack["__pillar__"] = minion_instance.opts["pillar"]
365
366 # Reload utils as well (chicken and egg, __utils__ needs __proxy__ and __proxy__ needs __utils__
367 minion_instance.utils = salt.loader.utils(
368 minion_instance.opts, proxy=minion_instance.proxy
369 )
370 minion_instance.proxy.pack["__utils__"] = minion_instance.utils
371
372 # Reload all modules so all dunder variables are injected
373 minion_instance.proxy.reload_modules()

Callers

nothing calls this directly

Calls 5

_load_modulesMethod · 0.45
reload_modulesMethod · 0.45
getMethod · 0.45
_thread_multi_returnMethod · 0.45
_thread_returnMethod · 0.45

Tested by

no test coverage detected