Skip to content

Commit 6ee6a55

Browse files
committed
calculate the proxy command for ssh to use proxies as jump hosts
fixup! implement salt ssh support for supportdata action
1 parent c84c224 commit 6ee6a55

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

java/code/src/com/suse/manager/utils/SaltUtils.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -975,12 +975,21 @@ private Optional<Path> fetchSupportFiles(MinionServer minionServer, ServerAction
975975
if (minionServer.isSSHPush()) {
976976
try {
977977
var actionPath = MinionActionUtils.getActionPath(minionServer, actionId);
978-
979-
//TODO: add additional options required for tunnel
980978
var user = SaltSSHService.getSSHUser();
981979
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);
984993
var copyResult = saltApi.execOnMaster(rsync);
985994
String error = copyResult.orElse("Error copying supportdata");
986995
if (!error.isBlank()) {

0 commit comments

Comments
 (0)