Releases: Hyperfoil/qDup
0.8.5
New Features
- run.json profile now includes the exit_code for any sh commands.
Bug Fixes
- Fixed an issue where --stream-logging would prevent exit code checking and thus prevent abort on non-zero exit codes
- Fixed an issue where --stream-logging would log command output but would not log the command that was sent to the shell.
qDup-0.8.4
New Features
use --stream-logging
command line option to stream sh
output as it arrives rather then all at once when the sh
command finishes
added /session/:sessionId/buffer
to the embedded http server to help inspect the output buffer of commands. This is ideal when a command exits but the output buffer did not include the expected console prompt.
Changes:
rename /active contextId
to sessionId
to match the naming convention for /session/sessionId
sending ctrl+C to the process once triggers immediate cleanup, sending it again interrupts cleanup and stops the process.
Bug Fixes:
fix an issue where java -jar qDup.jar
would not exit if the process was interrupted while checking sh
exit code
fix a race condition during logger shutdown that would hang the process when an error occurred during a script.
fix an issue with prompt detection in zsh
0.8.2
Bug fixes and improved documentation
- fix issue with LOCAL host mode on Fedora 40
- fix issue with container hosts preventing the process from exiting after a run completes
- update docs on container hosts
0.8.1
qDup now requires jdk17+
- fix exit-code errors that can occur when a command spawns background sub-commands that write to the stream after the parent command exits.
- fix local support for newer kernels
- fix container start and stop logic
- fix support for passing state patterns into
ignore-exit-code
0.7.2
Fixes:
- fix an issue where nanny would end a
repeat-until
assuming it was stuck whensignal
already occurred - improve error logging with java exceptions
- add tests to ensure qDup.jar exit code > 0 when the run aborts or the yaml fails to parse
0.7.1
Fixes:
- fix issue where
ignore-exit-code
onsh
did not work
0.7.0 - Breaking changes
Breaking changes
qDup now defaults to abort on non-zero sh
exit codes, replacing the -x
option that previously enabled the abort on non-zero exit behavior. Use -ix
or --ignore-exit-code
to disable exit code checking and use the previous default behavior. You can also use the long form sh
definition to add ignore-exit-code: true
to commands that you know could have a non-zero exit code:
- sh:
command: rm server.log
ignore-exit-code: true
New Features:
The add-prompt
command now supports an is-shell
option. This boolean option tells qDup if the prompt still supports shell commands (e.g. echo
and pwd
) for checking the exit code and checking the current working directory. Previously, qDup would assume all custom prompts from add-prompt
did not support shell commands. The add-prompt
would normally indicate we were entering a command line (e.g. hyperfoil's cli.sh
) but it could also be used to connect to a container that does support a full shell (e.g. podman exec -it /bin/bash
)
The executable jar will now return 1 if the run aborts, the yaml is invalid, or the command line arguments are invalid.
Fixes:
- fix issue where
ctrlC
on a command would cause qDup to consider it a non-zero exit value - fix issue where a ssh connection would close and be re-opened twice during abort
0.6.21
Bug Fixes:
- aborting an already aborted run will no longer hang the run
- secrets are no longer included in exception messages from ssh connection failures
General Changes:
- add messages related to security issues preventing ssh connections
- add
upload
anddownload
override options forhost
definition
0.6.20
Bug Fixes:
- improve shutdown from external signals to complete cleanup scripts
- prevent empty secret values
- prevent partial secret exposure when secrets have similar values
- improve documentation links
0.6.18 local and container connections
New Experimental Features
- local host connection
qDup can now connect to a local bash shell to run commands without requiring a local ssh service. This can be accessed with the reservedLOCAL
host name
hosts:
- LOCAL
- container connections
- qDup can connect to or start a container using podman on either the local host or a remote host using an ssh connection to the remote host. The
host
can be defined with the container name, id, or an image url.
hosts:
- existingContainerById: 101abd31c437
- existingContainerByName: hungry_hertz
- newContainerFromImage: registry.access.redhat.com/ubi8/ubi:latest
- newContainerOnServer: username@server//registry.access.redhat.com/ubi8/ubi:latest
The above features are considered experimental because we may change how they are accessed. the LOCAL
reserved host name and //
separator between image url and ssh credentials may change in a subsequent release.