Commit Graph

471 Commits (d84e21dfc86e3a5a86f5c581069e11e8ed03254c)

Author SHA1 Message Date
Renato Orgito 6f9bca9de3 Add auth_timeout parameter when supported by paramiko (#50448)
* Add auth_timeout parameter when supported

Paramiko 2.2 introduces the auth_timeout parameter. This will set the
parameter to the same value of the timeout parameter to prevent
"Authentication timeout" errors.

* Conditionally add auth_timeout to ssh.connect

Renamed sock_kwarg to ssh_connect_kwargs and conditionally added the
auth_timeout parameter based on the installed paramiko version.

* Add changelog fragment
2019-01-09 01:25:17 +01:00
Nathaniel Case 19d7197d97
Copy detailed logging to persistent.py so local can benefit, too. (#50614) 2019-01-07 15:46:31 -05:00
Ganesh Nalawade 104c415543
Fix for AttributeError in network_cli (#50284)
*  Value of prompt_answer is wrongly used as `self.prompt_answer`
   while logging it in message queue
2018-12-24 01:02:21 +05:30
kvaps 344b6002b1 fix: ansible_kubectl_ssl_ca_cert variable (#50217)
* fix: mistake for ansible_kubectl_ssl_ca_cert variable

* fix: K8S_AUTH_VERIFY_SSL
2018-12-23 09:59:34 +01:00
Nathaniel Case b2423e7602
Log device interaction and push labeled logs back to controller (#50028)
* Add session tracing support for network_cli, netconf and httapi connection

*  Add `persistent_log_messages` configuration option to log device inteaction
   in log file for network_cli, netconf and httapi connection
   type
*  Log jsonrpc request and response in log file is configuration option
   is enabled

* Update docs to talk about warning shown when persistent_log_messages is on
2018-12-21 10:31:43 -05:00
Nathaniel Case 806b90f6f1
Log netconf connection a la paramiko (#50169) 2018-12-19 19:51:32 -05:00
Nathaniel Case 1829a72885
Allow persistent connection plugins to queue messages back to ansible-connection (#49977)
* Connections can queue messages to be returned from ansible-connection

* Provide fallback for invalid display level

* Strip display from plugins

* Route messages through helper method to try to avoid improper appends
2018-12-19 10:54:42 -05:00
Dag Wieers 5739ccb6c3 PSRP: Add support for reconnection retries (#49772)
* PSRP: Add support for reconnection retries

This adds support for reconnection retries to overcome sudden Connection
Refused or other recoverable states. (Either because WinRM is (re)started,
or firewall changes make it briefly unavailable)

* Fixes from review comments
2018-12-18 08:20:53 +10:00
Nathaniel Case bf4ad56479
Move errors from import to connect (#50034) 2018-12-17 12:33:44 -05:00
Deepak Agrawal 0f2f38b044
network_cli - ansible_command_timeout not working as expected (#49922)
* fix for command_timeout

Signed-off-by: Deepak Agrawal <deepacks@gmail.com>

* fix ci warning

Signed-off-by: Deepak Agrawal <deepacks@gmail.com>

* fix review comments

Signed-off-by: Deepak Agrawal <deepacks@gmail.com>
2018-12-17 13:26:23 +05:30
Toshio Kuratomi 3fba006207 Update bare exceptions to specify Exception.
This will keep us from accidentally catching program-exiting exceptions
like KeyboardInterupt and SystemExit.
2018-12-16 15:03:19 -08:00
Nathaniel Case 02432565cd
Remove cliconf from httpapi connection (#46813)
* Bare minimum rip out cliconf

* nxapi changeover

* Update documentation, move options

* Memoize device_info

* Gratuitous rename to underscore use of local api implementation

Fixup eos module_utils like nxos

* Streamline version and image scans

* Expose get_capabilities through module_utils

* Add load_config to module_utils

* Support rpcs using both args and kwargs

* Add get_config for nxos

* Add get_diff

* module context, pulled from nxapi

We could probably do this correctly later

* Fix eos issues

* Limit connection._sub_plugin to only one plugin
2018-12-11 16:26:59 -05:00
Brian Coca ba4c2ebeac
ensure ssh retry respects no log (#49569) 2018-12-10 09:55:18 -05:00
Dag Wieers ee0df72e49 PSRP: Move default loglevel of pypsrp to WARNING (#49673) 2018-12-10 09:09:59 +10:00
Dag Wieers bc481c2500 PSRP: Improve default logging to ansible.log (#47645) 2018-11-29 18:18:39 -08:00
Dag Wieers 01d66d4431 WinRM: Improve default logging to ansible.log (#49308) 2018-11-29 18:18:18 -08:00
Brian Coca 24e4d26b72 added missing github id 2018-11-29 10:48:38 -05:00
Sam Doran 8f9ced4005 Improve log message (#49004)
This is the only connection plugin that doesn't state explicitly what it is in the log.
2018-11-29 09:53:26 -05:00
Sam Doran 5eb7f5781e
Reboot - Fix errors when using Paramiko connection (#49002)
Different connection plugins return different data when throwing exceptions. The Paramiko connection plugin does not return a text sting, which caused an exception.

The ssh connection plugin returns multi-line errors, which makes the debug logs harder to read. Only return the last line in that case in order to make the logs more readable.

When experiencing a connection failure, reset the connection.

Add reset() to paramiko_ssh

Indicate thet conection state is False when running close(). This is needed by the ensure_connected() decorator to work properly.


Co-authored-by: Matt Martz <matt@sivel.net>
2018-11-27 16:48:57 -05:00
Tim Rupp 0b5b5e69d8
Adds hasattr checks for rpc calls used in network_cli plugins (#49173)
Network platforms that don't have cliconf plugin will fail when
sending rpc calls for the reset_history and disable_response_logging
functions because those are defined in cliconf exclusively at this
time.

This patch adds checks for those attributes before making the call
2018-11-26 20:59:03 -08:00
Matt Davis 8c1f701e6e
split PS wrapper and payload (CVE-2018-16859) (#49142)
* prevent scriptblock logging from logging payload contents
* added tests to verify no payload contents in PS Operational event log
* fix script action to send split-aware wrapper
* fix CLIXML error parser (return to -EncodedCommand exposed problems with it)
2018-11-26 15:28:21 -08:00
Matt Martz 9773a1f289
Add a Singleton metaclass, use it with Display (#48935)
* Add a Singleton class, use it with Display

* update six import

* Move remaining failes to display singleton

* Fix rebase issues

* Singleton improvements

* Add code-smell for 'from __main__ import display'. ci_complete

* s/self/cls/g

* Add docs for no-main-display

* Address linting issues

* Add changelog fragment. ci_complete

* Implement reentrant lock for class instantiation in Singleton

* Add Display singleton porting guide
2018-11-20 17:06:51 -06:00
Kushal Das 83f27b57fc Adds a new qubes connection plugin
This plugin will allow to execute commands, put or fetch files
from other VMs in Qubes OS.
2018-11-15 08:27:13 -08:00
Martin Krizek a80c25cbd9
Do not use str() on exceptions (#46950) 2018-11-09 07:59:30 +01:00
Tomas Tomecek 23becece53 Implement connection plugin for podman (#47519)
* new connection plugin: podman

Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>

* podman,conn: utilize remote_user to run commands

Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>

* podman connection: update docs

Co-Authored-By: TomasTomecek <ttomecek@redhat.com>
2018-11-01 10:14:18 -04:00
Ganesh Nalawade 17fea30841
Revert "enhance recv calls in network_cli (#47345)" (#47731)
This reverts commit c649d0ea32.

The change results in deadlock in network_cli while it is
waiting to check the return value of recv_ready() which
was added in this commit to improve performance
2018-10-29 09:50:30 +05:30
f-bor c649d0ea32 enhance recv calls in network_cli (#47345)
* enhance recv calls in network_cli

* updated network_cli test unit

* enhance recv calls in network_cli

* fix mistake

* better timeout management

* remove exception trigger

* test

* test2

* restore exception and timeout

* ganeshrn's way

* correction

* timeout and exception return
2018-10-26 09:49:17 +05:30
Jordan Borean f28b7c7ab1
psrp - fix unicode handling in Python 2 (#47461)
* psrp - fix unicode handling in Python 2

* skip psrp become test when on Server 2008
2018-10-24 05:37:05 +10:00
Jordan Borean d46d92eed5
Revert "WinRM/PSRP: Fix UTF-8 issue (#46998)" (#47447)
This reverts commit 1bb674034f.
2018-10-23 09:10:28 +10:00
Ganesh Nalawade 335a979f1d
Fix prompt mismatch issue for ios (#47004)
* Fix prompt mismatch issue for ios

Fixes #40884 #44463

*  If the command prompt is matched check if data is
   still pending to be read from buffer.
*  This fix adds a new timer `buffer_read_timeout`
   which will be trigerred after command prompt
   is matched and data is attempted to be read from channel.
   If not data is present of channel the timer will expire
   and response we be returned to calling function.

* Fix unit test failure

* Update to make buffer timeout float

* Update doc and fix review comment

* Fix CI issues

* Update doc

* Fix review comments

* Fix review comments
2018-10-22 21:05:15 +05:30
Dag Wieers 1bb674034f WinRM/PSRP: Fix UTF-8 issue (#46998)
* WinRM/PSRP: Fix UTF-8 issue

* added changelog fragment
2018-10-22 06:59:53 +10:00
Dag Wieers 5fa51f3cd8 Add ConnectionError too 2018-10-13 21:47:13 +02:00
Dag Wieers 820f9f9c1e Move requests import into pypsrp try-block 2018-10-13 21:47:13 +02:00
Dag Wieers 6693adc9b2 WinRM/PSRP: Add support for unreachable
Currently PSRP connection always fail, even if the system is not
reachable. This PR fixes this.
2018-10-13 21:47:13 +02:00
Abhijeet Kasurde 39e71bb7ce Plugin: check if executable exists in local connection (#46201)
This fix checks if executable exists in local connection specified using
ANSIBLE_EXECUTABLE variable.

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-10-08 09:40:27 -04:00
Nathaniel Case cdaf5bd806
Add configuration to override location of ansible-connection (#46128)
* Add configuration to override location of ansible-connection

* Check var or argv[0] before $PATH
2018-10-01 14:29:59 -04:00
Jordan Borean d6251e5b27
winrm: add further conditional to using pexect for kerb auth (#45952) 2018-09-25 09:21:22 +10:00
Nathaniel Case 406b59aeba
Move persistent connections to only use registered variables (#45616)
* Try to intuit proper plugins to send to ansible-connection

* Move sub-plugins to init so that vars will be populated in executor

* Fix connection unit tests
2018-09-20 09:56:43 -04:00
Sofiane Medjkoune af40d8c2a5 Fix mixed output from ansible and lxd when using the lxd connection plugin (#45246)
* Replace fetch and put operations with Popen instead of call to prevent lxd to mess the Ansible output

* Remove extra blank line
2018-09-18 19:36:51 -04:00
Matt Martz b6fcbfe813
Support transfering empty files to target host. Fixes #36725 (#45751) 2018-09-18 09:05:20 -05:00
Nathaniel Case 52c20bbd3f
Update from napalm PR (#45743) 2018-09-17 15:39:07 -04:00
Nathaniel Case 21ff9c6a4a
Add initial napalm connection plugin (#45224)
* Add initial napalm connection plugin

* Fix review comments
2018-09-17 12:53:57 -04:00
Nathaniel Case 917fcb9c55
These won't get upgraded to bool if ansible doesn't know they are (#45736) 2018-09-17 11:34:57 -04:00
Matt Martz e68f895e61
Support empty files with piped transfer_method. Fixes #45426 (#45618) 2018-09-13 13:53:36 -05:00
Jordan Borean d81249994e
win_script: add support for become and centralise exec wrapper builder (#45582)
* win_script: add support for become and centralise exec wrapper builder

* satisfying the pep8 gods

* do not scan for module dependencies when running as a script
2018-09-13 08:50:13 +10:00
Nathaniel Case b22b07e300 Fixup network connection documentation (#45487)
* Fixup network connection documentation similar to suggestions in #45224

* Another tpyo
2018-09-11 14:23:38 -04:00
Jon Dufresne ef67d4074b Prefer io.BytesIO over six; available on all supported Pythons (#45388)
On all supported Pythons, the io.BytesIO is always a stream
implementation using an in-memory bytes buffer. Makes code slightly more
forward compatible by reducing use of the six module.
2018-09-10 15:19:16 -04:00
abirami-n 3601c74971 enable_netconf_support_on_dellos10 (#44816) 2018-09-05 19:16:01 +05:30
linnil1 177fbea351 Fix sshkeyfilename is None not str (#44893) 2018-09-04 11:59:08 +05:30
Ganesh Nalawade c0326aea2f
Fix cli_command multiple prompt issue (#44922)
* Add check in network_cli to handle all prompts

* Add check_all flag to mandatory handle all the command prompt
  in prompts list. By default if any one prompt is handled
  remaining prompts are ignored.

* Fix cli_command multiple prompt issue

* If multiple prompt and answers are given as input network_cli
  handles only the first prompt that matched by default
* If a command execution results in muliple prompt the fix
  add support to set a boolean option C(check_all) to indicate
  network_cli to wait till all the prompts and answers are processed.

* Update cli_command

* Update api doc

* Fix unit test failure

* Fix CI failure

* Update network_cli

* Fix review comment
2018-08-31 20:04:12 +05:30