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)
| 314 | |
| 315 | |
| 316 | def 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() |
nothing calls this directly
no test coverage detected