Skip to content
Adam Talsma edited this page Mar 9, 2015 · 18 revisions

4.1.6 (March 9, 2015)

  • Bladerunner.interactive and Bladerunner.setup_interactive now both accept an optional kwarg connect which defaults to True; it is used to make the intial connection to the interactive sessions when they are created or False to wait until a command is run on them later.
  • Bladerunner.setup_interactive is now a threaded function. All interactive sessions created this way will happen in parallel now (including sessions created during run_interactive's optional 2nd positional argument)
  • Bladerunner.end_interactive is now a threaded function. You can use this at the end of your scripts in order to terminate all interactive sessions in parallel. If no call to .end_interactive() is made, the sessions will be closed by your interpreter on SystemExit (probably in serial).

4.1.5 (February 5, 2015)

  • more consistent unicode handling. Encoding and decoding will now try utf-8, latin-1, and utf-16; in that order, with the codecs module
  • Bladerunner will now attempt to learn the initial prompt when logging into a host without using a jumpbox, if the host allows you to login without a password and the prompt is not known to Bladerunner (not learned and not passed in via arguments). There are some technical limitations in doing this when using a jumpbox, so if that is your situation, the current workaround is to provide the host-after-the-jumpbox's prompt to Bladerunner via the "shell_prompts" options list, or via the -m flag on the command line
  • support for learning prompts with ANSI colors, weird tabs, whatever. (if the shell is consistently variable though, Bladerunner could still run into problems (for instance, a prompt with Epoch time in it))
  • added pypy and pypy3 to the list of python versions Bladerunner is tested against
  • in the case where the results being displayed to the user are unable to be written to the terminal (due to LC_LANG or otherwise), rather than falling back to CSV where potentially the same issue will happen again, the fallback has been changed to prompting the user to write the results out to a file
  • better error handling of network connection errors. introduces Could not connect to remote server (err: -7). this error is raised if the initial ssh connection cannot be established, and/or when there is a connection refused or network unreachable error when going from a jumpbox to another host.

4.1.4 (February 3, 2015)

  • CLI script removed in favor of using entry_points (thanks to berkerpeksag 👍)

4.1.3 (February 2, 2015)

  • adds repr to BladerunnerInteractive objects
  • various bug fixes and improvements to setup.py (thanks to berkerpeksag)

4.1.2 (November 10, 2014)

  • bugfix for 4.1.1 when using password lists

4.1.1 (October 31, 2014)

  • passwords that Bladerunner knows about will be replaced with *'s in the output formatting if the terminal echos the password for whatever reason

4.1.0 (October 27, 2014)

  • introduces BladerunnerInteractive objects (with multi-threading support)
  • improved/added to documentation on https://pythonhosted.org/bladerunner/
  • adds run_interactive and associated methods to Bladerunner.base object

4.0.8 (July 7, 2014)

  • fixes stability issues in using the progressbar incorrectly
  • allows the use of tuples anywhere lists were previously allowed (command, password, prompts or server lists)
  • adds full test coverage with py.test
  • fixed bug with empty string/bytes output in prompt guessing
  • fixed bug in interrupts only being thrown during command timeouts when using a jump host
  • removes unittest as a dependency

4.0.7 (June 12, 2014)

  • adds --flat and --width flags for more outputting options when the ASCII box might not work well
  • bugfixes in progressbar, sending more updates than originally anticipated no longer moves past 100%
  • various other formatting and outputting fixes from 4.0.3 to now, added more tests

4.0.3 (April 22, 2014)

  • output display bugfix and regression test for using progressbar from command line

4.0.2 (April 22, 2014)

  • added support for apple computers including output formatting and defaulting their line endings to unix style (cause of no output from commands when issued from a mac - should be fixed now)
  • refactored progressbar, increased test coverage
  • bug in prompting for jumpbox user's password fixed
  • converted test runner to py.test - no tests have switched yet, plans to move from unittest->pytest in the works

4.0.1 (April 3, 2014)

  • added --debug flag to stream the ssh connection to stdout and also optionally supply -vv's to ssh
  • added --windows-line-endings and --unix-line-endings to force either line ending type (default is whatever your return of os.linesep is)

4.0.0 (March 27, 2014)

  • adds run_threaded method (see example in the docs)
  • adds support to use a list as the the options "password" key for multiple attempts
  • refactored code, changed to absolute imports, should allow for easier testing

3.7.3 (March 3, 2014)

  • bug in unicode output from command execution

3.7.2 (December 17, 2013)

  • consolidation bugfix

3.7.1 (December 17, 2013)

  • unicode bugfix for python2.7
  • started using patch level versioning

3.7 (December 3, 2013)

  • Start of changelog
  • Added Sphinx autodoc configs used in the pythonhosted docs
  • Updated urls in setup.py
  • Added support for outputting to a specified file instead of stdout
  • From lib, can specify a dictionary of {hostname: [commands]} to send different commands to hosts in the same parallel .run()
  • Added support for supplied CIDR networks as hostname arguments. Works from lib entry as well
  • Added support for reading hostnames out of a file from command line entry
  • Full support for Python 3.x if using the new pexpect 3.x beta
  • Support for non-standard SSH ports (thanks to zylad)
  • Progress bar can be used with left or right static padding, also added incrementing more than 1 per update. Python3 support added/confirmed as well
  • Added some initial unittests (many more are needed still) for the CIDR functionality