I did some more digging to produce a minimal and reproducible non-working example but I didn't succeed. I was able to identify exactly when things break though:
I can call this app and the call returns fine as long as the binary doesn't send calls to the Qlik server, meaning
process = Popen(['qlik','reload','create','--appId'], stdout=PIPE, stderr=PIPE)
works and prints text to the logfile in rundeck (no calls are made from the binary to the server because these parameters are invalid). If I make a valid call :
process = Popen(['qlik','reload','create','--appId',myappid], stdout=PIPE, stderr=PIPE)
the process never returns.
What I noticed is that no print()'s in the whole python file are ever shown in rundeck, meaning that even prints() that are before this call are shown in the rundeck log:
print("I will not be shown")
process = Popen(['qlik','reload','create','--appId',myappid], stdout=PIPE, stderr=PIPE)
So I can only guess that the binary does something to the output that the connection rundeck uses (SSH-2.0-JSCH-0.1.54) can't handle. Just to reiterate: This works on the server it should run and using ssh from the machine (docker container) rundeck is installed on.
Can I use another connection than SSH-2.0-JSCH-0.1.54 to check if that helps maybe?
And should I create a github issue for this? I guess I am the only one with this issue so I don't understand if you don't want to use resources on it.
Thanks for your help,
David