|
|
|
@ -26,7 +26,8 @@ def inspect_ssh_mux_opts(control_path_dir="~/.ssh/"): |
|
|
|
|
import subprocess |
|
|
|
|
import os |
|
|
|
|
|
|
|
|
|
control_path = os.path.join(control_path_dir, "cdist.master-%l-%r@%h:%p") |
|
|
|
|
control_path = os.path.join(control_path_dir, |
|
|
|
|
"cdist.socket.master-%l-%r@%h:%p") |
|
|
|
|
wanted_mux_opts = { |
|
|
|
|
"ControlPath": control_path, |
|
|
|
|
"ControlMaster": "auto", |
|
|
|
@ -133,24 +134,13 @@ def commandline(): |
|
|
|
|
args_dict = vars(args) |
|
|
|
|
# if command with remote_copy and remote_exec params |
|
|
|
|
if 'remote_copy' in args_dict and 'remote_exec' in args_dict: |
|
|
|
|
# if out_path is not set then create temp dir here so |
|
|
|
|
# Local uses it for base_path and ssh mux socket is |
|
|
|
|
# created in it. |
|
|
|
|
if args_dict['out_path'] is None: |
|
|
|
|
args.out_path = tempfile.mkdtemp() |
|
|
|
|
is_temp_dir = True |
|
|
|
|
else: |
|
|
|
|
is_temp_dir = False |
|
|
|
|
# if remote-exec and/or remote-copy args are None then user |
|
|
|
|
# didn't specify command line options nor env vars: |
|
|
|
|
# inspect multiplexing options for default cdist.REMOTE_COPY/EXEC |
|
|
|
|
if args_dict['remote_copy'] is None or args_dict['remote_exec'] is None: |
|
|
|
|
control_path_dir = args.out_path |
|
|
|
|
# only rmtree if it is temp directory; |
|
|
|
|
# if user specifies out_path do not remove it |
|
|
|
|
if is_temp_dir: |
|
|
|
|
import atexit |
|
|
|
|
atexit.register(lambda: shutil.rmtree(control_path_dir)) |
|
|
|
|
control_path_dir = tempfile.mkdtemp() |
|
|
|
|
import atexit |
|
|
|
|
atexit.register(lambda: shutil.rmtree(control_path_dir)) |
|
|
|
|
mux_opts = inspect_ssh_mux_opts(control_path_dir) |
|
|
|
|
if args_dict['remote_exec'] is None: |
|
|
|
|
args.remote_exec = cdist.REMOTE_EXEC + mux_opts |
|
|
|
|