Skip to content

Ginormous Overhaul

Compare
Choose a tag to compare
@carlmontanari carlmontanari released this 07 Feb 23:01
  • BREAKING CHANGE PrivilegeLevel import location changed -- this will break things!
  • timeout_exit deprecated; will always close connection on timeout now
  • All exceptions rationalized/changed -- all exceptions now rooted in ScrapliException and scrapli should not raise any exception that is not rooted in this! It is of course possible that non-scrapli exceptions will get raised at some point, but all "common" exceptions will now follow this pattern.
  • Added opinionated logging option -- should be used only for debugging/testing, otherwise use your own logging setup!
  • Moved "in channel" auth into channel (for telnet/system ssh authentication)
  • Added channel_lock option, defaults to false
  • Added channel_log option
  • Decorators got reswizzled a little, no more requires open as the transports handle this. There is now a dedicated
    ChannelTimeout and TransportTimeout to keep things simpler.
  • All transport plugins are now in scrapli "core"
  • All (ok, most...) channel and transport args are now properties of the driver class -- this should remove confusion about where to update what timeout/value
  • Response._record_response is now public but only for linting reasons, people generally should ignore this anyway!
  • Python 3.6 will now require dataclasses backport
  • All driver methods now have only the "main" argument as an allowable positional argument, the rest of the arguments are keyword-only! For example, send_command you can pass a positional argument for command, but strip_prompt and any additional arguments must be keyword arguments!
  • BREAKING CHANGE Scrape/AsyncScrape renamed --> Driver/AsyncDriver -- given most folks should not be using these directly there will be no alias for this, just a hard change!
  • More improvements to IOSXE tclsh pattern handling; handles tclsh in exec or privilege exec mode now
  • read_until_prompt_or_time now supports regex patterns in the channel_outputs list (pass as a string, will be compiled for you)
  • Big improvements to Factory for users of IDEs -- factories now have proper typing data so you will have nice auto completion things there/typing will be much happier