* Handle multiple sub prompts for network_cli connection
Fixes#35349
* Check if the same prompt is repeated in consecutive window
if it is repeated it indicates there is problem with answer
provided
* In that case report error to user
* Fix CI failure
* Fixes#35349
* Add prompt_retry count to control max number of times
to expect the same prompt before it error's out
* Make required changes in ios and eos terminal plugin to handle
wrong enable password correctly and return proper error
message to user.
* Check if the same prompt is repeated in consecutive window
if it is repeated it indicates there is the problem with an answer
provided
* In that case report error to user
* Update connection play_context when socket exists
* Don't fail on connections other than network_cli
* Fix enable prompt detection on ios & eos
* Check against "Module not found" error code, defined in modules/jsonrpc.py
The eos terminal plugin did not correctly catch the error message
returned with trying to configure more than one ospf instance. This
change updates the terminal plugin to catch that scenario
* eos python3 changes
* changes to convert response from byte to text
* Add dellos6 python3 changes
Make `execute_command` arguments and its
return value complaint to PY3 changes
made in PR #24431
* Fix py3 prompt issue for invalid show command
* Fix review comments
* Add generic fix for error prompt in py3
* Fix CI issue
* Fix network_cli unit test failure
* removes unneeded supports_multiplexing var
* refactors terminal_prompts_re to terminal_stdout_re
* refactors terminal_errors_re to terminal_stderr_re
* updates network_cli unit test cases
* updates eos modules to use persistent connection socket
* removes split eos shared module and combines into one
* adds singular eos doc frag (eos_local to be removed after module updates)
* updates unit test cases
This updates the network_cli connection plugin to attempt to automatically
determine the remote device os. The device network os discovery can
be overridden by setting the ansible_network_os value.
* adds new connection plugin `network_cli` which builds on paramiko
* adds new plugin `terminal` used for manipulating network_cli terminals
* adds new field to play_context `network_os` settable as ansible_network_os
This commit adds the plugins necesary to establish a persistent cli connection
to network devices of ssh. It builds on the paramiko connection plugin
to create a shell environment that will persistent through ansible-connection.
The `newtork_cli` plugin then uses the network_os in the instance of
PlayContext to load the appropriate network OS environment plugin for
handling opening and closing of shells as well as privilege escalation.