Commit graph

45 commits

Author SHA1 Message Date
Brian Coca
4c59da1cf4 documenting behaviour as clear as possible 2016-07-15 09:49:47 -04:00
James Cammarata
799159b8ee Removing erroneous import from async_status 2016-07-07 13:45:21 -05:00
James Cammarata
b75f305079 Ensure async wrapper and status return consistent fields 2016-07-07 13:41:50 -05:00
James Cammarata
28567b6ea0 Merge pull request #4051 from Shrews/async_atomic_move
Use os.rename() in async_wrapper
2016-07-07 11:28:49 -05:00
Brian Coca
2373810034 updated set_fact docs with note about typing 2016-07-06 11:14:42 -04:00
David Shrewsbury
4e239f6ce0 Use os.rename() in async_wrapper
Because the async_status module will read from the same file that
the async_wrapper module is writing, it's possible that the file
may not be fully synced during a read, causing spurious failures.
Use a temp file to do an atomic operation on the file. We can't
use atomic_move() here as that doesn't work properly under async.

Also, let's not read concurrently from the same file the subprocess
is writing to. Instead, capture stdout/stderr via PIPE and write to
the file to avoid nasty races.
2016-06-29 09:53:47 -04:00
Brian Coca
77b4a0367c updated docs in pause to reflect 0 value behaviour 2016-06-27 09:36:10 -04:00
Stanislav Antic
f0f5272f90 Fix wait_for on python < 2.6 (#3790) (#3973) 2016-06-17 10:04:26 -04:00
Brian Coca
a1e6311197 reverted need for module utils imports 2016-06-16 18:12:38 -04:00
Brian Coca
ab4ec24813 added missing import
readded raise
2016-06-16 15:55:45 -04:00
Brian Coca
4a0c483e09 exception ans sys.exit fixes 2016-06-16 15:27:37 -04:00
Toshio Kuratomi
f9b28aaae3 Fix exception handling in async_wrapper 2016-06-16 12:21:57 -07:00
Brano Zarnovican
3456c24b96 Py2.4: SystemExit in async_wrapper is not an error - compatibility fix
Prior to Python 2.5, SystemExit was a subclass of Exception.
In Py2.4, this is causing extra error output on valid sys.exit(0).

(Toshio) Call sys.exit from inside of the SystemExit exception handler so py2.4 and py2.5+ behaviour matches
2016-06-15 10:28:09 -07:00
codemeup @ Work
1e0bb94ced Fixing compile time errors irt (, e => as e, print(), ocat now 0o not 0) exception handling for Python 3 (#3851)
* Fixing compile time errors irt a) exception handling for Python 3 in util, also: b) problem octal usage (fixed) and c) print json_dump -> print(json_dump(xyz) ... et al

* This code was not Python 2.4 compliant. Octal codes and exception handling is now working with Py 2.4, 2.6, & 3.5.

* Fixing formating (or rather reverting an non 2.4 compatible change). Works in compile & runtime checking.

* a) revert to use print sys.stderr not fail_json; b) fixed var name in exception

* Python 3 compatible print (print >>sys.stderr will generate a TypeError - now uses sys.stderr.write instead).
2016-06-13 11:40:13 -07:00
Michael Scherer
3a20fc4d0c Fix wait_for to compile on python3 (#3722) 2016-05-23 09:34:27 -04:00
Michael Scherer
0e75317904 Do not use a tuple as argument for _create_connection (#3655) 2016-05-17 10:08:12 -07:00
vaupelt
67de0675c3 exclude_hosts does not work as expected with state=drained
There are established connections for a service. The service is bound to a ipv4-mapped ipv6 address. Wait_for wrongly waits for clients listed in exclude_hosts.
2016-04-21 13:11:55 -04:00
Toshio Kuratomi
6e5b09f3a8 Allow async to not need an args file since new-style modules have args embedded 2016-04-01 19:50:58 -07:00
Matt Davis
4f5d02f08f Merge pull request #2463 from nitzmahone/async_status_error_masking
mark failed async_status as finished
2016-03-09 22:51:28 +00:00
Toshio Kuratomi
caf4b759b9 Specify types in argument_spec instead of code so that checking type vs default value does not trigger 2016-02-28 22:31:43 -08:00
Brian Coca
649689bfb6 documented new verbosity option 2016-02-18 07:01:53 -08:00
Brian Coca
21f6390fa3 clarified set_fact function 2015-11-17 10:05:15 -08:00
nitzmahone
077f8131aa mark failed async_status as finished
Running async_status in an "until: result.finished" loop will mask a module failure (eg, traceback) with a
template failure, because the fail dict doesn't include "finished" (eg, you'll see "ERROR! The conditional check 'bogus_out.finished' failed. The error was: ERROR! error while evaluating conditional: bogus_out.finished ({% if bogus_out.finished %} True {% else %} False {% endif %}"). Because the failure dict still includes "failed: true",
this change has no effect on stoppage/failure reporting, it just prevents the common usage pattern from masking the underlying error message.
2015-11-12 16:19:52 -08:00
Lars Larsson
fa2ea225dd total_seconds not present on timedelta on python2.6 2015-11-03 11:54:31 +01:00
Brian Coca
d192e2c3e3 code cleanup and reoorg, renamed vars and functions to actual purpose
reneabled logging of steps
2015-10-31 21:35:48 -04:00
Toshio Kuratomi
0fa4c5fc2b Merge pull request #2285 from evanccnyc/devel
add documentation for include_vars and JSON
2015-10-30 07:47:01 -07:00
Toshio Kuratomi
43cecd3cee Use select in wait_for so that we don't get stuck in cornercases:
* reading from a socket that gave some data we weren't looking for and
  then closed.
* read from a socket that stays open and never sends data.
* reading from a socket that sends data but not the data we're looking
  for.

Fixes #2051
2015-10-28 09:05:17 -07:00
Evan Carter
7b9c326ca6 add documentation stating that JSON files can be loaded with include_vars 2015-10-15 15:06:32 -04:00
Brian Coca
697307f88c Merge pull request #1670 from mikeputnam/issue-1643-gpl-header
Add missing GPLv3 License header
2015-07-30 14:39:44 -04:00
Brian Coca
008caa1ff7 Merge pull request #591 from d3rp/wait_for
Fix 'wait_for' doesn't work with ipv6only host
2015-07-24 18:38:50 -04:00
Mike Putnam
6c0e264806 Add missing GPLv3 License header
Fixes #1643
2015-07-03 22:57:53 -05:00
Greg DeKoenigsberg
2a5f0bde87 Proper author info for all remaining modules 2015-06-15 15:53:30 -04:00
Brian Coca
7810a898e8 sleep when only doing a time delay to avoid cpu churn 2015-05-26 10:58:39 -04:00
Nathaniel
5aae7f3e51 Update set_fact.py
Context: I recently discovered that when setting a fact, key=value pairs and complex arguments differ in how the fact is stored. For example, when attempting to use complex arguments using key=values, the result can be stored as a unicode string as opposed to an object/list/etc.

I'm hoping the above example update will better demonstrate to and instruct people to use complex arguments instead of key=value pairs in certain situations.
2015-05-09 15:51:17 -05:00
Brian Coca
1d6d3fece7 added docs to show wait_for default timeout settings
Fixes #400
2015-04-06 20:41:57 -04:00
Brian Coca
cbc1655ba0 Merge pull request #784 from bcoca/wait_for_docs
added missing docs on connection_timeout for wait_for
2015-02-25 10:39:37 -05:00
Gerard Lynch
9967aa6681 wait_for: updated docs, must be resolvable hostname, updated example 2015-02-23 20:10:02 +00:00
Brian Coca
3100236628 added missing docs on connection_timeout for wait_for 2015-02-13 10:02:05 -05:00
Andrey Trubachev
10e48d18f7 Fix python-2.4 compatibility 2015-01-05 21:05:01 +03:00
Andrey Trubachev
659c6d3a7e Fix 'wait_for' doesn't work with ipv6only host 2015-01-03 10:32:27 +03:00
Brian Coca
5af9928996 let implied type do the spliting 2014-11-11 15:34:55 -05:00
Brian Coca
d67ac4d33e minor fixes to wait_for to avoid tracebacks as per ansible core issue #9244 2014-11-11 15:09:42 -05:00
Brian Coca
c6dcd38355 added missing init.py for utilities modules 2014-11-05 15:49:39 -05:00
Michael DeHaan
cec519f70e Move internal category to utilities to remove one more category from the left hand menu, keeping it concise. 2014-11-04 17:47:07 -05:00
Michael DeHaan
0be8798858 Renames. 2014-11-04 17:29:56 -05:00