Commit graph

393 commits

Author SHA1 Message Date
Toshio Kuratomi
d1c2d16706 Allow setting run_command environment overrides for the life of an AnsibleModule 2016-02-07 12:46:04 -08:00
Brian Coca
ad37a91514 really only want to prevent None typep here
false is sometimes needed
2016-02-05 14:33:10 -05:00
Brian Coca
5679b5414c avoid errors from possible None/False args 2016-02-04 19:39:56 -05:00
Rene Moser
11522b22c3 module_utils/basic: add generic method for checking for missing params when argspec can not be used. 2016-02-04 22:54:03 +01:00
Brian Coca
89c57666c3 fixed py3 compatibility 2016-02-04 13:14:56 -05:00
Brian Coca
70ac47ae61 allow atomic_move to not be atomic ...
just 'cause people build bad systems that insist on not allowing
updates in an atomic manner and force us to do them in a very
unsafe way that has race conditions and can lead to many issues.

if using this option you should really be opening a bug report with
the system that only allows for this type of update.

and now i shower though i doubt i'll feel clean
2016-02-04 13:05:24 -05:00
Brian Coca
6a62ad6c4b hide internal params once used 2016-02-01 15:17:23 -05:00
James Cammarata
0c237c4531 Merge pull request #14191 from paulcalabro/devel
Added hyphen (-) as a valid character for permissions
2016-01-29 00:55:53 -05:00
Paul Calabro
901d349f45 Adding a hyphen in the perms pattern section, since doing something like
go=- is a quick way to strip all permissions for non-owners.
2016-01-28 13:05:10 -07:00
Toshio Kuratomi
3cf59d30f7 For synchronize, fix sudo to execute on the remote end of the connection
* In 2.0.0.x become was reversed for synchronize. It was happening on
  the local machine instead of the remote machine. This restores the
  ansible-1.9.x behaviour of doing become on the remote machine.
  However, there's aspects of this that are hacky (no hackier than
  ansible-1.9 but not using 2.0 features).  The big problem is that it
  does not understand any become method except sudo.  I'm willing to use
  a partial fix now because we don't want people to get used to the
  reversed semantics in their playbooks.
* synchronize copying to the wrong host when inventory_hostname is
  localhost
* Fix problem with unicode arguments (first seen as a bug on synchronize)

Fixes #14041
Fixes #13825
2016-01-25 19:33:31 -08:00
Toshio Kuratomi
a68d90a71a rework run_command's env setting to not change os.environ for the rest of the module.
New param to run_command to modify the environment for just this invocation.
Documentation and comment adjustments.
2016-01-20 12:03:32 -08:00
Brian Coca
a56c0bc27b module invocation info depends on verbosity
since we were removing it on display, this saves us even transmiting it back
2016-01-13 18:06:55 -05:00
Brian Coca
5760f0effb dont error out on new internal vars 2016-01-12 13:17:02 -05:00
Brian Coca
477d632118 now file mode diff shows octal values 2016-01-11 19:47:47 -05:00
Brian Coca
6f2f7a79b3 add support for diff in file settings
this allows modules to report on what specifically changed when using
common file functions
2016-01-01 21:53:19 -05:00
Etherdaemon
0b92abaf67 Proposed fix for ansible/ansible-modules-extras#1348 due to datetime.datetime type not being matched 2015-12-27 21:36:02 +10:00
Brian Coca
9a118ce213 Merge pull request #13648 from bcoca/fix_invocation_and_moderrors
better module error handling
2015-12-23 10:42:40 -05:00
Michael Scherer
42b9a206ad Fix last commit, make it python3 compatible (and py24) 2015-12-23 13:24:11 +01:00
Brian Coca
957b376f9e better module error handling
* now module errors clearly state msg=MODULE FAILURE
* module's stdout and stderr go into module_stdout and module_stderr keys
which only appear during parsing failure
* invocation module_args are deleted from results provided by action
plugin as errors can keep us from overwriting and then disclosing info that
was meant to be kept hidden due to no_log
* fixed invocation module_args set by basic.py as it was creating different
keys as the invocation in action plugin base.
* results now merge
2015-12-22 23:01:56 -05:00
Brian Coca
010839aedc fix no_log disclosure when using aliases 2015-12-22 17:15:58 -05:00
Brian Coca
474772c81c Merge pull request #13639 from emonty/bool-conversion
Also convert ints to bool for type=bool
2015-12-22 10:21:18 -05:00
Monty Taylor
c60749c922 Also convert ints to bool for type=bool 2015-12-22 09:14:12 -06:00
Toshio Kuratomi
d32a885e98 Make return invocation information so that our sanitized copy will take precedence over what the executor knows. 2015-12-19 11:24:59 -08:00
Toshio Kuratomi
c8fd599e14 Merge pull request #13373 from no2a/boolean
BOOLEAN should contain boolean literals
2015-12-04 12:17:12 -08:00
Toshio Kuratomi
9b81c35d06 Don't compare or merge str with unicode
Fixes #13387
2015-12-02 20:53:50 -08:00
Arata Notsu
6d6d4f0c8e BOOLEAN should contain boolean literals
It is natural that an argument_spec with choises=BOOLEAN accepts
boolean literal (True, False) though the current implementation
allows only string or int.
2015-12-01 23:51:39 +09:00
Toshio Kuratomi
e2ddc2f6ab Call the function :-)
Fixes #13330
2015-11-30 12:34:20 -08:00
James Cammarata
0e447e3f41 Merge branch 'devel' of https://github.com/mathieumd/ansible into mathieumd-devel 2015-10-21 13:59:51 -04:00
Toshio Kuratomi
6e5055e786 Update the use of no_log values to cover everything that heuristic_log_sanitize does.
Fixes #12792
2015-10-21 08:15:46 -07:00
Toshio Kuratomi
c2d188baff Hide values in json returns which were given in parameters marked no_log. 2015-10-20 12:42:36 -07:00
Mathieu
260a3e5ce7 Fixes #11055 - Set locale via LC_ALL 2015-10-19 21:25:30 +02:00
Brian Coca
c57200925f made syslog import optional as intel's edison custom compiles python w/o it 2015-10-14 09:12:02 -04:00
Toshio Kuratomi
15d7f53846 AnsibleModules.log() fix for python3
Also add unittests for AnsibleModules.log()

Fixes #12586
2015-10-12 13:30:27 -07:00
Brian Coca
1a56a5c442 created debug method, renamed debug attribute to _debug 2015-10-01 10:17:41 -04:00
Marius Gedminas
cc1e1648f5 Tweak comment style 2015-09-30 18:46:50 +03:00
Marius Gedminas
213029a21e Python 3: don't convert unicode to unicode 2015-09-30 18:46:49 +03:00
Marius Gedminas
c7be004c19 Python 3 has no dict.iteritems()
(Reminder: cannot use six here, module_utils get shipped to remote
machines that may not have six installed -- besides six doens't support
Python 2.4.)
2015-09-30 18:46:49 +03:00
Marius Gedminas
9f3e5ceb14 Make sure 'basestring', 'bytes' and 'unicode' are defined
Python 3 doesn't have 'basestring' and 'unicode'.

Python 2.4 doesn't have 'bytes'
2015-09-30 18:40:47 +03:00
Brian Coca
37a918438b task logging revamp
* allow global no_log setting, no need to set at play or task level, but can be overriden by them
 * allow turning off syslog only on task execution from target host (manage_syslog), overlaps with no_log functionality
 * created log function for task modules to use, now we can remove all syslog references, will use systemd journal if present
 * added debug flag to modules, so they can make it call new log function conditionally
 * added debug logging in module's run_command
2015-09-25 23:57:28 -04:00
Toshio Kuratomi
dcdcd9e9c5 Move is_executable to the toplevel of basic.py so we can utilize it from other code 2015-09-25 07:48:57 -07:00
Marius Gedminas
2c4982b58d Python 3: there's no itertools.imap
Because the builtin map() acts like an iterator already.
2015-09-23 10:04:26 +03:00
Marius Gedminas
6708d56a21 Python 3: avoid long integer literals
Even Python 2.4 automatically promotes int to long.
2015-09-23 10:04:25 +03:00
Marius Gedminas
f5d4935197 Python 3: treat python as a function in module_utils/basic.py
NB: we can't use 'from __future__ import print_function', but luckily
print(one_thing) works fine on both Python 2 and Python 3 without that.
2015-09-23 10:04:25 +03:00
Marius Gedminas
e71a986e16 Python 3: avoid octal constants in module_utils/basic.py 2015-09-23 10:04:25 +03:00
Marius Gedminas
d2bec7f81f Python 3: avoid "except ..., e:" in module_utils/basic.py
Make the code compatible with Pythons 2.4 through 3.5 by using
sys.exc_info()[1] instead.

This is necessary but not sufficient for Python 3 compatibility.
2015-09-23 10:04:25 +03:00
Toshio Kuratomi
00b1a2c865 Restore ValueError in md5 method and change finding the available hash algorithms so we only have to do it once 2015-08-06 14:40:28 -07:00
muffl0n
8d6d711a5c move get_available_hash_algorithms() from get_url 2015-08-04 08:57:36 +02:00
Toshio Kuratomi
6a68be4e28 Handle quoting of values in dict parameters 2015-07-27 12:31:05 -07:00
Toshio Kuratomi
ddec06ccfe Detect the old python-json library
Fixes #11654
2015-07-20 12:35:26 -07:00
Brian Coca
4f98fac494 Merge pull request #10914 from bcoca/non_posix_file_copy_fix
hack to prevent tempalte/copy errors on vagrant synced folders
2015-07-18 23:08:08 -04:00