Releases: carlmontanari/scrapli
More cleanup and minor improvements
- improve prompt patterns
- add ssh config file example
- examples clean up
- lots of readme changes/improvements
- lots of docstring clean up
- channel now has send_input and send_inputs for singular or plural inputs respectively
- improve unit testing a bit -- more fixtures, try to cover more possible cases
- NetworkDriver is an ABC as it should be now
- few random little bug fixes
- update dev requirement pinned versions
- regen docs
Internal improvements, API changes to get closer to "stable"
- improve docs hopefully everywhere basically
- minor improvements to channel reading
- added message to timeout decorator to be more clear why/where things time out
- migrated away from signals (yay for windows i guess) for decorator -- due to systemssh doing things in new procs signal wouldn't work there, new implementation is concurrent futures threads
- added
timeout_exit
to kill connections if timeout occurs (or not) - a little bit better/more logging especially in decorator (more to go for sure though)
- updated all core drivers to reflect on_open/on_close callabales, removed "exit_command" entirely
- simplified network driver due to moving to on_open/on_close
- modified netowrk driver
send_commands
to only accept a list of commands to send, addedsend_command
which only accepts a single command - due to above change only return a list of responses if using
send_commands
-- if usingsend_command
just return a response object - added exception for keepalive failure -- raised by keepalive thread if/when keepalives are missed for > 3x the keepalive interval -- this may need to get changed/tweaked in the future and/or add a
keepalive_exit
flag like the timeout textfsm_parse_output
no longer updates the response object w/ results (in place operation), it now returns results and there is no "structured_result" attribute of the response object- removed external function validation stuff from helper -- was neat maybe but not necessary for now, on_open/on_close simply accept callables no need to parse a text string to try to import things... could be added back in the future easy enough if it seems useful
- transport base class now has a useful init method that sub classes can super
- transport child classes that create a socket (paramiko/ssh2) now do so via composition instead of inheritance -- mro was just annoying, plus couldnt (easily? at all?) super w/ different args to transport vs socket (didnt look hard, composition seems fine)
- systemssh/telnet transport store channel args needed for authenticaiton (prompt pattern/ansi/return char) as private args now. they are used for initial auth then ignored...
- systemssh ssh args/open cmd improvements
- add keepalive for systemssh/telnet (network only)
- systemssh/telnet store _timeout_ops (channel timeout basically) as a private arg for same reasons as the auth stuff -- timeout authentication things, this is ignored after auth occurs
- systemssh improved pty authentication handling
- driver/driver (scrape) now doesnt store most arguments passed to it in the object itself -- they are instead stored in
_initialization_args
and passed to the channel and transport as needed - way way way better repr for scrape
- significantly better netmiko compatability setup
Transport Keepalives, General Improvements
readme updates
add "smoke tests" -- basic helpful scripts i use when making changes
remove unused blocking method from transport
improve auth handling for system ssh
move some things from scrape
-> networkdriver
where they make more sense
add transport keepalive support
regen docs
SSH Strict Key Checking
Add strict key checking to Paramiko and ssh2-python transport
Add ssh known hosts handling
Example updates/cleanup
Readme updates/cleanup
SSH Config Support Enhancement
- Readme updates
- Rename containers
- Fix telnet and System ssh login timeouts
- Type/cleanup docstrings for SSH parsing
- SSH config file support for ssh2 and system
Scrapli!
-rename -> scrapli
-add test telnet support
-support 3.6+ again (named tuple instead of data class)
-rename result->response and reswizzle
-drop TextFSM off of send command, is available via response object
-regen docs
-remove flush as it seemed useless...
-cleanup docstrings (remove noqa stuff)
Feature adds
Generated docs
Added Netmiko compatibility
Improved/added testing (still needs to be redone a bit to make it easier, but progress!)
Added platform drivers (untested other than IOSXE at this point, but as it is mostly a rip from ssh2net it should be solid)
Add to Makefile
Added docker-compose
Dropped py36 to get data classes to use for the privilege levels
Minor API adds (send_interactive in network driver)
Initial release!
2019.02.01 mypy to requirements-dev