@@ -975,12 +975,21 @@ private Optional<Path> fetchSupportFiles(MinionServer minionServer, ServerAction
975
975
if (minionServer .isSSHPush ()) {
976
976
try {
977
977
var actionPath = MinionActionUtils .getActionPath (minionServer , actionId );
978
-
979
- //TODO: add additional options required for tunnel
980
978
var user = SaltSSHService .getSSHUser ();
981
979
var port = Optional .ofNullable (minionServer .getSSHPushPort ()).orElse (SaltSSHService .SSH_PUSH_PORT );
982
- var rsync = "rsync -p --chown salt:susemanager --chmod=660 -e 'ssh -o ConnectTimeout=2 -p %d -i %s' %s@%s:%s/* %s/."
983
- .formatted (port , SaltSSHService .SSH_KEY_PATH , user , hostname , supportDataDir , actionPath );
980
+ String method = minionServer .getContactMethod ().getLabel ();
981
+ List <String > proxyPath = SaltSSHService .proxyPathToHostnames (minionServer .getServerPaths (),
982
+ Optional .empty ());
983
+ List <String > proxyCommand = SaltSSHService .sshProxyCommandOption (proxyPath , method , hostname , port )
984
+ .orElse (List .of ());
985
+ String sshOptions = "-o ConnectTimeout=2 " + proxyCommand .stream ()
986
+ .map ("-o %s" ::formatted )
987
+ .collect (Collectors .joining (" " ));
988
+
989
+ var rsync = "rsync -p --chown salt:susemanager --chmod=660 -e \" ssh %s -p %d -i %s\" %s@%s:%s/* %s/."
990
+ .formatted (sshOptions , port , SaltSSHService .SSH_KEY_PATH , user , hostname ,
991
+ supportDataDir , actionPath );
992
+ LOG .info (rsync );
984
993
var copyResult = saltApi .execOnMaster (rsync );
985
994
String error = copyResult .orElse ("Error copying supportdata" );
986
995
if (!error .isBlank ()) {
0 commit comments