18-May-2021
- Prevent deadlock situations by avoiding
stderr.read()
andstdout.read()
in favor of usingcommunicate()
20-Apr-2020
- Allow to specify
python_executable
for remote execution, helping virtualenvs set remotely.
29-Apr-2019
- Add
needs_ssh
to theconnection
module to fix a backwards incompatible change
22-Mar-2019
- No code changes - adding packaging files for Debian
13-Mar-2019
- Try a few different executables (not only
python
) to check for a working one, in order of preference, starting withpython3
and ultimately falling back to the connection interpreter
13-Mar-2019
- Fix an issue with remote Python interpreters that might not be
python
, like in distros that usepython3
or similar.
26-Feb-2019
- Allow to specify
--context
to kubernetes connections - When a remote exception happens using the
JsonModuleExecute
, include both stderr and stdout.
13-Feb-2019
- Create other connection backends aside from ssh and local: kubernetes, podman, docker, and openshift.
- Adds new remote function/module execution model for non-native (for execnet) backends, so that modules will work in backends like kubernetes.
- Create a helper (
remoto.connection.get()
) for retrieving connection backends based on strings - Increase the test coverage.
- Allow using
localhost
,127.0.0.1
, and127.0.1.1
to detect local connections (before the full hostname was required, as returned bysocket.gethostname()
) - No longer require creating
logging
loggers to pass in to connection classes, it will create a basic one when undefined.
8-Jan-2019
- Fix the botched 0.0.34 version which had stale commits from 0.0.32 - No code changes.
12-Dec-2018
- Allow
ssh_options
to extend ssh flags in theConnection()
object
17-Jul-2018
extend_env
needs to be removed from**kw
only when present.
16-Jul-2018
extend_env
needs to be removed from**kw
as it is being passed onto subprocess, which renders it invalid
10-Jul-2018
- Extend environment variables, do not overwrite
05-Jul-2016
- Fix test issue with py3
- Remove vendored execnet
- Include tests when building
- Strip carriage-returns from messages in logs
17-May-2016 * Catch possible errors when remotes are missing the right Python interpreter
11-May-2016
* Avoid needless list comprehension that caused issues with Python 3
* Do not bare return when clients expect a three item tuple always
* Fix an issue where process.check
would need to raise exit but the
response had an error.
22-Dec-2015 0.0.27 ------ 22-Dec-2015 * Fix a problem where stderr/stdout variables would be undefined on certain
conditions when running a remote command.
15-Dec-2015 * Fix (issue 19) where stdout and stderr would be prematurely ended and not
fully logged.
21-Apr-2015 * Fix (issue 15) where a child process could finish but output would not be
flushed to stdout/stderr.
- Ship the
LICENSE
file andtests
directory as part of the distribution.
- Output the exact same order of remote
stdout
andstderr
- Create a better detection mechanism for remote
sudo
needs
- Do not override remote environment variables to set the
$PATH
- Fix unneeded ssh connection when using FQDN hosts
- Fix
vendor.py
to really include the proper tag forexecnet
- Use execnet 1.2post2 that fixes a problem with
None
globals (see issue #1)
- add some imports to init so that they are easier to use
- make vendor libraries optional
- spit stdout before stderr as errors should be read last
- eat typeerror when closing the connection (execnet)
- Use new execnet 1.2.0
- use new connection defaults for execent
- Add a
sync
function to be able to synchronize directories between hosts.
- Map
stderr
toWARNING
log level - Do not spit out
remoto
's own tracebacks when raising remote errors because some exception occurred just do it for non-remoto exceptions - Use version 1.1.1 of execnet with patches.
- Catch more TypeError problems when closing the connections.
- Allow configuration to raise on non-zero exit status
- If the exit status is non-zero on the remote end, raise an exception
- Raise RuntimeError on remote exceptions so others can actually catch that.
- Patches execnet to allow local popen with sudo python
- Add a global timeout option
- All processes use PATH variables passed to Popen
- Do not mangle commands if they need sudo
- Allow sudo python
- Allow more than one thread to be started in the connection
- log at debug level the name of the function to be remotely executed
- Create a way to execute functions remotely
- If the hostname passed in to the connection matches the local hostname, then do a local connection (not an ssh one)
- Allow a context manager for running one-off commands with the connection object.
process.run
can now take in a timeout value so that it does not hang in remote processes