Commit graph

8116 commits

Author SHA1 Message Date
Brian Coca
7067bb32b8 make all conditionals lists
this brings them to equivalence with when:
fixes #13905
2016-03-09 09:33:59 -05:00
Matt Clay
33f93f9241 Fix misplaced paren. 2016-03-08 22:16:23 -08:00
Brian Coca
33b550fc76 paging for amazon modules
this adds a decorator for use in amazon modules so retrieval functions
can page using the 'marker' that most boto functions return
2016-03-09 00:53:33 -05:00
James Cammarata
aee2eb6287 Merge pull request #14864 from dagwieers/patch-12
Only show diff when the task actually induced a change
2016-03-08 15:02:49 -05:00
James Cammarata
1a5ee115f0 Fixing minor logic error in error detection/handling in ssh connection plugin
If max retries were reached, no AnsibleConnectionFailure was raised, which
means potentially in some cases an unreachable error might not be returned
2016-03-08 14:50:35 -05:00
Dag Wieers
f5b6f52940 Only show diff when the task actually induced a change
This implements solution #1 in the proposal #14860.

It only shows the diff if the task induced a change, which means that if the changed_when control overrides the task, not diff will be produced.
See #14860 for a rationale and the use-case.
2016-03-08 17:33:29 +01:00
Dag Wieers
175351f200 Little improvement in flow
Don't get the hostname if it's not needed.
2016-03-08 17:23:34 +01:00
Brian Coca
49bb4803b5 clarify --step prompt
now shows full words and indicates default
fixes #7433
2016-03-08 10:57:54 -05:00
Brian Coca
3d6ec52e83 Merge pull request #14830 from bcoca/assemble_fix
fix assemble to not pass extra args to copy/file
2016-03-08 09:22:15 -05:00
Brian Coca
eb4cb46c84 Merge pull request #14859 from sivel/issue/14858
Strip proc_1 before testing it. Fixes #14858
2016-03-08 09:14:05 -05:00
Matt Martz
2f90a4f4e2 Strip proc_1 before testing it. Fixes #14858 2016-03-08 07:42:42 -06:00
Brian Coca
e24e619cf1 added stderr from vault script to error 2016-03-07 20:51:58 -05:00
Brian Coca
75ae62a978 Merge pull request #12674 from sudarkoff/fail_if_executable_password_file_returns_nonzero
(TRIVIAL) Fail if the vault password script returns non-zero.
2016-03-07 20:45:26 -05:00
Brian Coca
e74ab3ecdd draft 1st release of ansible-console
porting @dominis 's ansible-shell tool from 1.9 and integrating it into ansible
added verbosity control
made more resilitent to several errors
added highlight color, to configurable colors
more resilient on exception and interruptions
prompt coloring, goes red and changes to # when using become = true and root
become setting is now explicit and not a toggle
2016-03-07 20:25:21 -05:00
Matt Martz
53bb889ef6 update submodule refs 2016-03-07 16:12:19 -06:00
Matt Martz
098333b2ec Fix redirects for get_url
* fetch_url shouldn't both accept follow_redirects and support follow_redircts via module.params
* Default follow_redirects for open_url should be 'urllib2'
* Add redirect test for get_url
2016-03-07 15:44:31 -06:00
Brian Coca
325fccfa78 added v for least verbose display function 2016-03-07 13:17:31 -05:00
James Cammarata
299d93f6e9 Updating unit tests for PlayIterator
This knowingly introduces a broken test, planning to fix that later.
2016-03-07 13:03:06 -05:00
Brian Coca
66ea464ebd Merge pull request #14793 from xiaket/devel
remove main_q for simplicity.
2016-03-07 12:51:38 -05:00
Brian Coca
25e9b5788b add per item diff handling
fixes #14843
2016-03-07 09:49:18 -05:00
John Barker
8b4ebd8e4a Make it easier to read error message 2016-03-07 12:49:41 +00:00
Jonathan Sokolowski
5ec7adc64d Lookup netrc for credentials in open_url 2016-03-07 09:38:22 +11:00
Brian Coca
0b2f631197 Merge pull request #14504 from bcoca/template_comments
template also when only comments present
2016-03-06 10:45:18 -05:00
Brian Coca
7d8b84dae6 fix assemble to not pass extra args to copy/file
also small refactor to dedupe code
fixes https://github.com/ansible/ansible-modules-core/issues/3154
2016-03-06 10:00:36 -05:00
Brian Coca
5aab158987 removed unused imports 2016-03-06 09:14:25 -05:00
Peter Sprygada
c0f1e1801b adds multiline flag to regex test for search and match
This commit adds the multiline flag to the regexp search and match test
plugin.  It defaults to re.M = False for backwards compatibility.  To use
the multiline feature add multiline=True to the test filter

{{ config | search('^hostname', multiline=True) }}
2016-03-06 08:11:46 -05:00
Brian Coca
66a9a1feff Merge pull request #14823 from jjahns/devel
add find_vm_by_name function to vmware utils
2016-03-05 23:17:35 -05:00
Brian Coca
75b9c7db14 moved hardcoded settings from doccli to constants 2016-03-05 17:40:44 -05:00
Jay Jahns
3a1944edc1 add find_vm_by_name function to vmware utils 2016-03-05 11:50:51 -08:00
Kishin Yagami
299c18d700 Support strategy_plugins setting in a configuration file 2016-03-05 20:15:04 +09:00
Brian Coca
62ac5c047e clarified message 2016-03-04 14:44:03 -05:00
Brian Coca
8867d73420 reject extraneous data passed to mode
strictly permissions are allowed, file type info should not be passed in
alternate fixes #14771
2016-03-04 14:42:29 -05:00
Toshio Kuratomi
bd618c3490 Merge pull request #14797 from mattclay/unicode-fixes
Use to_bytes on filenames in filesystem calls.
2016-03-04 10:38:56 -08:00
Brian Coca
d6546a7513 make sure group_names is always sorted
this makes it consistent with previous ansilbe versions and other
paths that create the group_names variable
2016-03-04 13:12:35 -05:00
Matt Clay
5b79ed77e7 Use to_bytes on filenames in filesystem calls. 2016-03-04 09:08:41 -08:00
Brian Coca
27a33a6f18 dont erase previous nameservers in fact gathering
fixes #14806
2016-03-04 11:34:44 -05:00
夏恺(Xia Kai)
b33074b703 remove main_q for simplicity.
main_q is not used anywhere in the codebase.

It is created in TaskQueueManager._initialize_processes, bundled with rslt_q
into TaskQueueManger._workers, later unwrapped in StrategyBase but not used.
This queue is closed in TaskQueueManger._cleanup_processes.

Historically, it is passed as a init parameter into WorkerProcess,
introduced in 62d7956, but this behavior is changed in 120b9a7.

Signed-off-by: 夏恺(Xia Kai) <xiaket@gmail.com>
2016-03-04 07:58:18 +00:00
Toshio Kuratomi
8f1303c81a Remember to use errors=strict since this is looking up a filename on the filesystem (ie it has to match exactly) 2016-03-03 20:56:50 -08:00
Toshio Kuratomi
253376b3b7 Make the source path into a byte string before passing to os.path 2016-03-03 20:44:01 -08:00
Brian Coca
e762095497 better task parsing errors
fixes #14790
2016-03-03 19:51:15 -05:00
Brian Coca
f565508d7f Merge pull request #14764 from bcoca/max_diff_config
made max diff size configurable
2016-03-03 18:19:27 -05:00
Brian Coca
e432973310 Merge pull request #14757 from bcoca/register_no_template
don't template register
2016-03-03 18:18:44 -05:00
Brian Coca
13282e29a8 Merge pull request #14500 from yfried-redhat/fix_os_auth
Fix openstack auth type
2016-03-03 18:16:56 -05:00
Brian Coca
b901b15d3b Merge pull request #14537 from Yannig/devel_better_error_handling
Improve message content to get more hint about the raised error.
2016-03-03 18:11:04 -05:00
Brian Coca
cc3cb0f65e fix issues with older yaml lib versions
also added missing json import and removed unused ones
2016-03-03 18:13:36 -05:00
Brian Coca
6cad356b3b updated docs to show new output 2016-03-03 18:05:39 -05:00
Brian Coca
b2a6784a9f changed the output to keep backwards compat
still shows path when verbose
2016-03-03 18:03:02 -05:00
Brian Coca
fd8593d613 Merge pull request #14661 from jjshoe/fix-up-profile-tasks
Update the profile task callback plugin to include a fix for duplicate named tasks. Added additional features to adjust the number of tasks output and the sort order.
2016-03-03 17:46:40 -05:00
Brian Coca
c022a43a47 fixed str to to_str 2016-03-03 14:40:35 -05:00
Brian Coca
347aa7b032 Merge pull request #14774 from lamby/ignore-epipe-when-flushing-stdout-stderr
Ignore EPIPE when flushing stdout stderr
2016-03-03 14:26:20 -05:00
Chris Lamb
eb1141ee79 Ignore EPIPE to avoid tracebacks when piping output to other commands
For example:

  $ ansible web --list-hosts | head -n1
  hosts (7):
  ERROR! Unexpected Exception: [Errno 32] Broken pipe
  Traceback (most recent call last):
    File "/home/lamby/git/private/lamby-ansible2/.venv/bin/ansible", line 114, in <module>
      display.display("to see the full traceback, use -vvv")
    File "/home/lamby/git/private/lamby-ansible2/.venv/local/lib/python2.7/site-packages/ansible/utils/display.py", line 133, in display
      sys.stdout.flush()
  IOError: [Errno 32] Broken pipe

Such a pipe target will close up shop early when its seen enough input,
causing ansible to print an ugly traceback.

Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
2016-03-03 19:21:06 +00:00
Chris Lamb
951c8a5d27 Alias fileobj. 2016-03-03 19:16:58 +00:00
Brian Coca
4cfd042839 more complete and informative errors
mostly templating issues now all return data templated and actual error
fixes #14781
2016-03-03 13:52:09 -05:00
Brian Coca
0031a72e0d tweak deprecation warnings display 2016-03-03 13:51:44 -05:00
Brian Coca
ea5e089056 restore initial json parsing attempt to loader
fixes issues with extra vars json strings not being parsed correctly by the yaml parser
2016-03-03 13:26:50 -05:00
Toshio Kuratomi
4657be4eab Transform pathnames to bytes before passing on to os.path functions 2016-03-03 09:03:28 -08:00
Toshio Kuratomi
468eea82bd Merge pull request #14765 from sivel/redirect-ssl-validation
Support SSL validation with redirect control for python versions without ssl context
2016-03-03 07:06:34 -08:00
Matt Davis
0ab29f573a Merge pull request #14755 from bcoca/pause_nohup_fix
avoid issues when stdin is a closed file
2016-03-02 22:33:58 +00:00
Matt Martz
6ff0b079b4 Support SSL validation with redirect control for python versions without ssl context 2016-03-02 16:30:16 -06:00
Brian Coca
c24249c57d made max diff size configurable 2016-03-02 17:25:22 -05:00
Toshio Kuratomi
1dbbd2a80c Remove debugging and fix the place where bytes are being handed to StringIO 2016-03-02 09:31:06 -08:00
Brian Coca
ca0797fc4e avoid issues when stdin is a closed file
this seems to happen when nohup is involved, so the check tty
does not get a chance to fail, it just works with pipes

fixes http://github.com/ansible/ansible-modules-core/issues/3166
2016-03-02 11:58:16 -05:00
Toshio Kuratomi
093b3422ec more information 2016-03-02 08:58:15 -08:00
Brian Coca
7ba790bbaf don't tempalte register 2016-03-02 11:57:43 -05:00
Toshio Kuratomi
5aef65edcd Testing whether this fixes jenkins 2016-03-02 07:47:32 -08:00
James Cammarata
3247390123 Conditionally import StringIO in template so we only use io.StringIO on py3 2016-03-02 09:34:43 -05:00
James Cammarata
2c7a33f71d Fixing bug in setup related to StringIO fixes 2016-03-02 08:05:43 -05:00
James Cammarata
9acb5aa176 Changing location of reduce import to not use six.moves 2016-03-01 17:06:46 -05:00
James Cammarata
b559d0e6ee Adding py3 stub for reduce from six.moves 2016-03-01 16:55:01 -05:00
Brian Coca
71402abf21 only do squash when 'squashable field' present 2016-03-01 15:11:34 -05:00
James Cammarata
e011f52557 Expanding unit tests for module_utils/basic.py 2016-03-01 13:53:13 -05:00
Brian Coca
7af5787030 Merge pull request #14717 from xiaket/devel
Fix __repr__ for meta tasks
2016-03-01 08:37:09 -05:00
Brian Coca
dd003a42b0 Merge pull request #14273 from resmo/for-ansible-2.1
[2.1] cloudstack: new generic code
2016-03-01 08:17:42 -05:00
Rene Moser
6c641fb6a8 cloudstack: add CS_HYPERVISORS constant 2016-03-01 08:05:32 +01:00
夏恺(Xia Kai)
d033c40e80 Make task repr really work for meta tasks.
Signed-off-by: 夏恺(Xia Kai) <xiaket@xiaket@gmail.com>
2016-03-01 06:03:22 +00:00
Brian Coca
0d1138e0a0 Merge pull request #14712 from chouseknecht/galaxy2_paging
Fix bug 14715: Galaxy CLI paging error
2016-02-29 22:47:57 -05:00
chouseknecht
42b2077c93 Fix bug 14715: Galaxy CLI paging error 2016-02-29 21:21:32 -05:00
Peter Sprygada
c2ce509aaf bugfixes for openswitch shared module
This commit fixes two bugs in the openswitch shared module.  The first
bug was a wrong argument type for the use_ssl argument.  It was set
to int and should be bool.  The second changes the default ports for http
(was 80, now 8091) and https (was 443, now 18091).  This change aligns
the default port values with the OS
2016-02-29 20:24:07 -05:00
nitzmahone
915037c628 update submodule refs 2016-02-29 16:43:30 -08:00
nitzmahone
ac54f66741 don't lock file when calculating checksum 2016-02-29 16:30:55 -08:00
Brian Coca
badc922c73 added warning for when host file doesn't exist
fixes #14692
2016-02-29 16:18:06 -05:00
Brian Coca
82d6a83cca Merge pull request #14633 from Etherdaemon/fix_boto3_params
Fixup boto3_conn aws_session_token and verify
2016-02-29 15:58:11 -05:00
Brian Coca
157ebcfe0b Merge pull request #14709 from bcoca/squash_fix_atp
added package to special 'squashable' fields
2016-02-29 15:36:55 -05:00
Brian Coca
67d5b77898 added package to special 'squashable' fields
apt has it as alias, this should fix https://github.com/ansible/ansible-modules-core/issues/3145
2016-02-29 15:21:17 -05:00
James Cammarata
7c049c3200 Fixing up jsonify and adding unit tests 2016-02-29 14:51:23 -05:00
Matt Martz
d0a717694f Fix variable name in paramiko connection plugin 2016-02-29 10:12:17 -06:00
Matt Martz
e27eb73cba sys.subversion unavailable in py24. Fixes #14704 2016-02-29 09:05:48 -06:00
Peter Sprygada
f67bf3f775 updates the ops_template plugin action backup key
This commit changes the key the ops_template will search for in order
to backup the current configuration to local disk on the Ansible control
host.  This change was made to make ops_template consistent with the
other network template modules.
2016-02-28 23:40:05 -05:00
Toshio Kuratomi
e01b6ad6b4 We are actually taking the repr of a string so we need separate to_bytes and repr calls 2016-02-26 16:57:32 -08:00
Toshio Kuratomi
b70bf3b056 Use io.StringIO and io.BytesIO instead of StringIO.StringIO for compat with py3 2016-02-26 16:43:05 -08:00
Toshio Kuratomi
c29f51804b Fix mixing of bytes and str in module replacer (caused traceback on python3) 2016-02-26 16:43:05 -08:00
Brian Coca
512d3dd621 with_ loops always should want a list 2016-02-26 14:56:54 -05:00
Brian Coca
528f073bfa update core subref 2016-02-26 13:51:38 -05:00
Toshio Kuratomi
1f2595306a normalize path components to unicode before combining or operating on them
Note that this will break if we deal with non-utf8 paths.  Fixing this
way because converting everythig to byte strings instead is a very
invasive task so it should be done as a specific feature to provide
support for non-utf8 paths at some point in the future (if needed).
2016-02-26 10:29:37 -08:00
Toshio Kuratomi
ef8bec18bf Use a unicode format string so that we don't convert to byte strings
Fixes #14349
2016-02-26 10:29:37 -08:00
Dag Wieers
0eca47cf91 Avoid merging a dict and a AnsibleUnicode
This is the same fix we applied to v1.9 in PR #14565, however it does not fix #14678 completely !
The dictionaries are not being merged as tey are on v1.9.
2016-02-26 15:03:51 +01:00
Brian Coca
ad5a6e7993 updated submodule refs 2016-02-25 17:23:20 -05:00
James Cammarata
771f1e31a9 Rework the way ad-hoc filters inventory to match how cli/playbook does it 2016-02-25 12:36:44 -05:00
Brian Coca
e2d2798a42 hosts can be list or string 2016-02-25 11:30:41 -05:00
Brian Coca
2d56293768 default play name to hosts entry
return to previous behaviour as now the name was left blank
2016-02-25 11:25:17 -05:00
Joel
b3aa373932 Update the profile task callback plugin to include a fix for duplicate named tasks. Added additional features to adjust the number of tasks output and the sort order. 2016-02-25 10:02:36 -06:00
James Cammarata
cd51ba7965 Use abspath instead of realpath for group/host vars files
The use of realpath means when following symlinks the actual path is
used when loading these files in the VariableManager, which may not
line up with the host or group name specified.

Fixes #14545
2016-02-24 13:10:49 -05:00
Toshio Kuratomi
9c9cce51ab Update submodule refs 2016-02-24 08:53:28 -08:00
Brian Coca
03c33053aa clarified become options do not imply others
fixes #14635
2016-02-24 10:58:40 -05:00
ivovangeel
23349911f1 Fixed bug in find_mount_point function
The find_mount_point function does not resolve the mount point of paths with a soft-link correctly and returns the wrong mount-point.

I have mounted an NFS filesystem on /nfs-mount. This directory contains a directory called "directory". I also created a soft-link to this last directory: /soft-link-to-directory -> /nfs-mount/directory. I created the following task to copy a file into /soft-link-to-directory:

    - name: copy file to nfs-mount
      copy:
        src: "file"
        dest: "/soft-link-to-directory/file"

This throws an exception:

invalid selinux context: [Errno 95] Operation not supported

This is caused by the find_mount_point function to return '/' as the mount point for '/soft-link-to-directory/file'. This should have been /nfs-mount. Because the find_mount_point returns the wrong mount-point, the is_special_selinux_path function does not recognise the file is on an NFS mount and tries to set the default SELinux context (system_u:object_r:default_t:s0), which fails. The context should have been: system_u:object_r:nfs_t:s0

Full Ansible output:

TASK [copy file to nfs-mount] **************************************************
fatal: [hostname]: FAILED! => {"changed": false, "checksum": "f34b60930a5d6d689cf49a4c16bd7f9806be608c", "cur_context": ["system_u", "object_r", "nfs_t", "s0"], "failed": true, "gid": 24170, "group": "foundation", "input_was": ["system_u", "object_r", "default_t", "s0"], "mode": "0644", "msg": "invalid selinux context: [Errno 95] Operation not supported", "new_context": ["system_u", "object_r", "default_t", "s0"], "owner": "root", "path": "/soft-link-to-directory/.ansible_tmpWCT6Z4file", "secontext": "system_u:object_r:nfs_t:s0", "size": 37, "state": "file", "uid": 0}
2016-02-24 15:57:16 +01:00
Etherdaemon
06977d5cb1 Fixup boto3_conn as commit 6ea772931f broke commit 27398131cf 2016-02-24 16:41:30 +10:00
James Cammarata
2db3f290ba Fix logic error when copying files recursively to a directory 2016-02-23 16:29:57 -05:00
Brian Coca
34541b4e5e preserve no_log for async also 2016-02-23 15:37:39 -05:00
James Cammarata
d74ea51287 Submodule update 2016-02-23 15:18:40 -05:00
James Cammarata
da02aba173 Don't inject PlayContext properties as variables if they're None
Fixes bug introduced in 078ebb0
2016-02-23 15:07:51 -05:00
James Cammarata
e02b98274b issue callbacks per item and retry fails
- now workers passes queue to task_executor so it can send back events per item and on retry attempt
- updated result class to pass along events to strategy
- base strategy updated to forward new events to callback
- callbacks now remove 'items' on final result but process them directly when invoked per item
- new callback method to deal with retry attempt messages (also now obeys nolog)
- updated tests to match new signature of task_executor

fixes #14558
fixes #14072
2016-02-23 15:07:06 -05:00
Brian Coca
6eb4633b07 always return a checksum key, even if empty 2016-02-23 15:07:14 -05:00
Peter Sprygada
fc57b88356 Merge pull request #14618 from ogenstad/devel
Fixes authentication error bug when user has rsa keys
2016-02-23 14:14:20 -05:00
James Cammarata
6cf6130468 Fixing/cleaning up do/until logic in TaskExecutor
* Fixes bug where the task was not marked as failed if the number of
  retries were exceeded (#14461)
* Reorganizing logic to be a bit cleaner, and so retrie messages are
  shown before sleeping (which makes way more sense)

Fixes #14461
Fixes #14580
2016-02-23 13:17:51 -05:00
Matt Martz
cacb74aeeb Merge pull request #14340 from sivel/uri-no-httplib2
Add RedirectHandler class for controlling redirects in urllib2
2016-02-23 11:53:16 -06:00
Matt Martz
27a55d3f33 Merge pull request #14586 from sivel/python-facts
Add python info to facts
2016-02-23 11:31:06 -06:00
Matt Martz
3ac0143cf1 Merge pull request #13654 from sivel/paramiko-proxy-command
Add ProxyCommand support to the paramiko connection plugin
2016-02-23 11:30:43 -06:00
Matt Martz
38b663471d Merge pull request #14311 from sivel/unsafe-yaml-constructor
Add new 'unsafe' YAML constructor
2016-02-23 11:29:53 -06:00
Matt Martz
d9a207f24f Add has_sslcontext fact as well 2016-02-23 11:28:04 -06:00
Matt Martz
7158eb489f Add python info to facts 2016-02-23 10:38:41 -06:00
ogenstad
3f95f163ff Avoids authentication failed exception if user has private rsa keys under .ssh 2016-02-23 11:17:24 +01:00
James Cammarata
078ebb0dec Don't re-inject become* variables as it causes problems when templating is involved
Prior to 75b6f61, we strictly limited variables we re-injected. After that
patch however, we re-injected everything which causes problems under certain
circumstances. For now, we'll continue to filter out some properties of
PlayContext for re-injection.

Fixes #14352
2016-02-22 17:09:58 -05:00
Brian Coca
e35b1cf154 show task path on vv and above 2016-02-21 16:22:39 -05:00
Brian Coca
cea10794fd removed unused color var 2016-02-21 02:03:48 -05:00
Matt Martz
f8211f83a0 Merge pull request #14591 from sivel/issue/14541
Allow lookups to return python data structures
2016-02-20 16:24:59 -06:00
Matt Martz
439a385215 Catch TypeError on join, and if caught just return a single item, or a list of many 2016-02-20 16:17:58 -06:00
Brian Coca
d9246aacd0 fixed mount sizes for linux 2016-02-20 14:46:18 -05:00
Brian Coca
f1d2b9ea9e added size to mount facts on all non linux OSs
fixes #14528
2016-02-20 14:40:42 -05:00
Brian Coca
547afda8d4 Merge pull request #14546 from furlongm/devel
fix ansible_os_family fact on openSUSE Leap
2016-02-20 12:46:27 -05:00
Brian Coca
d87fd68287 Merge pull request #14560 from dagwieers/merge_hash_v2
Improve efficiency of merge_hash (Ansible v2.0)
2016-02-20 12:39:49 -05:00
Brian Coca
81368d8119 Merge pull request #14552 from kilburn/lsblk-dedup
Avoid duplicate /bin/lsblk calls in the setup module.
2016-02-20 12:24:22 -05:00
Brian Coca
6febb816d2 Merge pull request #14569 from sivel/json-stdout-callback
Add json stdout callback
2016-02-19 07:12:30 -08:00
George Christou
bbc855c218 Make --diff lines of context configurable 2016-02-19 12:18:09 +00:00
Toshio Kuratomi
f9526b2ab2 Missed constants.py in the commit for #14557 2016-02-18 23:49:33 -08:00
Matt Martz
7f7536f7ad Add json callback to be used in replace of the default stdout to print a JSON structure to stdout 2016-02-18 16:39:31 -06:00
Brian Coca
844754b8e3 added missing config to constants.py
fixes #14567
2016-02-18 14:37:14 -08:00
Brian Coca
0f73fb0d6f better error messages when failing to decrypt 2016-02-18 08:57:28 -08:00
Matt Davis
4c58066153 Merge pull request #14557 from ansible/display-play-args
Add a configuration setting that allows the user to specify printing …
2016-02-18 07:40:50 -08:00
Dag Wieers
5a57139d91 Improve efficiency of merge_hash
This is related to #14559, but only the part for Ansible v2.0

This commit makes merging empty dicts, or equal dicts more efficient.

I noticed that while debugging merge_hash a lot of merges related to empty dictionaries and sometimes also identical dictionaries.
2016-02-18 16:03:11 +01:00
Brian Coca
5552c04976 allow skipping debug depending on verbosity 2016-02-18 06:58:43 -08:00
Toshio Kuratomi
86b8dc0e79 Add a configuration setting that allows the user to specify printing of task arguments in the header.
Fixes #14554
2016-02-18 04:20:35 -08:00
Brian Coca
1dba6da40f changed filtered to actionable cb plugin 2016-02-18 02:32:05 -08:00
Brian Coca
54942ee8ff Merge pull request #13593 from agaffney/devel
Add 'filtered' stdout callback plugin
2016-02-18 02:30:32 -08:00
Brian Coca
d54d9dabe9 added specific info to deprecation message
should now show actual variable that is undefined
fixes #14526
2016-02-18 02:21:58 -08:00
Brian Coca
22082216a4 Merge pull request #13408 from sivel/v2-slack-callback
V2 slack callback plugin
2016-02-18 02:12:39 -08:00
Brian Coca
6012646d8c added playbook and options info to callbacks
will display on certain verbosity levels, both playbook/file info
and non empty options with which it's running.
avoid errors when not using CLI classes
2016-02-18 02:09:07 -08:00
Brian Coca
5300a2eafc Merge pull request #14491 from gechr/gc-simple-colour-diff
Add simple --diff colour support
2016-02-18 02:00:03 -08:00
Brian Coca
413abcf16d Merge pull request #14450 from bcoca/include_vars_merge
Include vars merge
2016-02-18 01:49:30 -08:00
Brian Coca
3e407ed743 Merge pull request #14490 from bcoca/stat_instead_of_checksum
Use stat module instead of checksum code
2016-02-18 01:45:50 -08:00
Brian Coca
3b3709e715 Merge pull request #14488 from bcoca/become_shell_fixes
shell + become fixes
2016-02-18 01:45:37 -08:00
Brian Coca
2b5fffa751 updated to use to_unicode as per feedback 2016-02-18 01:41:23 -08:00
Marc Pujol
6779f91b88 Avoid duplicate /bin/lsblk calls in the setup module.
The setup module calls /bin/lsblk once for each device appearing in the /etc/mtab file. However, the same device appears there mutliple times when the system uses bind-mounts. As a result, /bin/lsblk is being called repeatedly to get the uuid of the same device.

On a system with many mounts, this leads to a TimeoutError in the get_mount_facts function of the setup module as described in #14551.

Fixes #14551
2016-02-18 09:15:07 +01:00
Marcus Furlong
90fb809f62 fix ansible_os_family fact on openSUSE Leap
ansible_os_family on openSUSE Leap has the wrong value:

        "ansible_os_family": "openSUSE Leap",

It should be:

        "ansible_os_family": "Suse",

This change fixes that by adding the relevant key and ensuring that dict
lookups replace ' ' with '_' so the key does not contain a space.
2016-02-18 14:36:52 +11:00
Yannig Perré
588045cc46 Improve message content to get more hint about the raised error. 2016-02-17 21:30:34 +01:00
Peter Sprygada
91f3558c64 minor bugfix that will catch connection errors in eos
This commit fixes a situation where connection errors would be caught
but no useful information display.  The connection error is now caught
and emitted in a call to fail_json
2016-02-17 14:19:35 +00:00
Peter Sprygada
0d3c0515c0 minor bugfix that will catch connection errors in ios
This commit fixes a situation where connection errors would be caught
but no useful information display.  The connection error is now caught
and emitted in a call to fail_json
2016-02-17 14:19:28 +00:00
Peter Sprygada
b72b14fdf2 minor bugfix that will catch connection errors in iosxr
This commit fixes a situation where connection errors would be caught
but no useful information display.  The connection error is now caught
and emitted in a call to fail_json
2016-02-17 14:19:21 +00:00
Peter Sprygada
1a072578c3 minor bugfix that will catch connection errors in junos
This commit fixes a situation where connection errors would be caught
but no useful information display.  The connection error is now caught
and emitted in a call to fail_json
2016-02-17 14:19:12 +00:00
Peter Sprygada
9e31e33850 minor bugfix that will catch connection errors in nxos
This commit fixes a situation where connection errors would be caught
but no useful information display.  The connection error is now caught
and emitted in a call to fail_json
2016-02-17 14:19:04 +00:00
James Cammarata
58a6cf822a Merge pull request #13203 from willthames/galaxy_10620
Allow tree-ish versions for ansible-galaxy
2016-02-17 08:41:29 -05:00
George Christou
56239ee347 Make --diff colours configurable 2016-02-17 10:25:54 +00:00
Brian Coca
6102a4b9b4 template also when only comments present 2016-02-16 09:42:33 -05:00
Brian Coca
b9d0662faf use stat module instead of checksum code
- added new function for action plugins this avoids the very fragile checksum code that is shell dependant.
- ported copy module to it
- converted assemble to new stat function
- some corrections and ported temlpate
- updated old checksum function to use new stat one under the hood
- documented revamped remote checksum method
2016-02-16 08:43:38 -05:00
Yair Fried
c3b30d251f Fix openstack auth type
Otherwise auth type defaults to 'str' and shade fails
2016-02-16 13:19:18 +02:00
George Christou
8edcca0ef5 Add simple --diff colour support 2016-02-15 22:23:03 +00:00
Brian Coca
6ddea3e915 removed follow from common file docs 2016-02-15 14:13:20 -05:00
Brian Coca
6dc910c13a shell + become fixes
1 less level of shell + quoting
simplified become commands, less quote and shell
2016-02-15 13:00:13 -05:00
Brian Coca
bc41f46fec pushed non-atomic to option of last resort
try to copy into place first
2016-02-15 12:08:07 -05:00
Pascal Grange
5d49f4e629 Fix related to #13981
When working around "bad systems that insist on not allowing
updates in an atomic manner", we should not run previous exception
management code that tries to perform atomic move in case of
exception since the dirty non atomic move has already been
performed.
2016-02-15 10:18:44 +01:00
Brian Coca
0bb49090cf make some options not mandatory to pass
this should simplify api calls
2016-02-13 20:14:38 -05:00
James Cammarata
06b072c1f7 Fix bugs related to task_includes and dep chain inheritance
* Fix the way task_include fields were created and copied
* Have blocks get_dep_chain() look at task_include's blocks for proper
  dep chain inheritance
* Fix the way task_include fields are copied to prevent a recursive
  degradation

Fixes #14460
2016-02-13 01:02:47 -05:00
Peter Sprygada
22aaff5af7 adds new action plugin iosxr_template
This adds a new action plugin iosxr_template that allows the
iosxr_template module to pass network device configurations through the
template engine.  It also allows configurations to be backed up.
2016-02-12 17:08:21 -05:00
James Cammarata
275728e0f6 Fixing bugs related to nested blocks inside roles
* Make sure dep chains are checked recursively for nested blocks
* Fixing iterator is_failed() check to make sure we're not in a
  rescue block before returning True
* Use is_failed() to test whether a host should be added to the TQM
  failed_hosts list
* Use is_failed() when compiling the list of hosts left to iterate
  over in both the linear and free strategies

Fixes #14222
2016-02-12 13:39:39 -05:00
Brian Coca
00f600bfc8 Merge pull request #14319 from bcoca/shell_plugin_revamp
moved to base class for shell plugins
2016-02-12 13:08:12 -05:00
Sandra Wills
edf776d6a4 Merge pull request #13805 from aioue/patch-1
profile_tasks README.md
2016-02-12 12:23:45 -05:00
Tom Paine
edb36b6c4a Update profile_tasks.rst
remove brackets on links
2016-02-12 17:13:39 +00:00
Peter Sprygada
09a6bf5c15 Merge pull request #14432 from chouseknecht/net_common_cleanup_2
Cleanup for networking common bits.
2016-02-12 11:00:37 -05:00
Brian Coca
a327420b67 properly combine vars if merge is set
hash_behaviour = merge now also applies to include vars
2016-02-12 00:55:17 -05:00
James Cammarata
c485981d1a Merge pull request #14445 from marcpo/maint/display_string_causing_exception
Display the string which is causing an exception to be raised.
2016-02-11 22:50:43 -05:00
Brian Coca
af68ae1e87 switched from threading to multiprocessing
functions same, just keeping names from confusing people
2016-02-11 22:25:17 -05:00
James Cammarata
df4912957c Merge pull request #14442 from bcoca/remove_signal_handling
removed signal trapping
2016-02-11 20:37:34 -05:00
Toshio Kuratomi
37879ea671 Update submodule refs 2016-02-11 13:12:57 -08:00
Marc Poirier
0792983ec8 Display the string which is causing an exception to be raised.
In the ansible template module, when there is an error while
expanding a templated string, displaying the string causing the
exception is very useful.
2016-02-11 15:42:50 -05:00
Brian Coca
effa64383c removed signal trapping 2016-02-11 14:54:18 -05:00
Brian Coca
347b28252a allow skipping tasks due to undefined var
mimic 1.x behaviour but give out big deprecation message, not only
for missing attribute but any undefined error.
2016-02-11 14:16:38 -05:00
Brian Coca
cd076dbcfa Merge pull request #14421 from bcoca/terminate
Terminate
2016-02-11 12:36:32 -05:00
Brian Coca
a8aa5ff4eb fix cartesian lookup
it seems that this was not working in 1.9 but we swallowed up the error
fixes #14437
2016-02-11 10:35:37 -05:00
Peter Sprygada
cf251258a8 initial add of new action plugin junos_template
This adds a new action plugin, junos_template that allows the
the junos_template module to perform the templating function.  It
implements net_template
2016-02-11 08:28:35 -05:00
Peter Sprygada
8f9badb2b4 update shared module junos to handle root logins 2016-02-11 07:36:56 -05:00
Peter Sprygada
9c36c0aa80 minor bug fixes and updates to shell 2016-02-11 07:36:47 -05:00
chouseknecht
5a45ca8bb1 Move Conditional class to netcfg. Added error handling for connect and execute methods.
Fix comments
2016-02-11 00:19:25 -05:00
Toshio Kuratomi
9286143b53 Merge pull request #14374 from robinro/fix-mount-without-permission-bug
add ismount function in module_utils
2016-02-10 17:32:19 -08:00
Toshio Kuratomi
6276585882 Module params should default to str in most cases. 2016-02-10 15:22:42 -08:00
Brian Coca
64c976a6c3 Merge pull request #14416 from bcoca/diff_size_fix
read full file when doing diff
2016-02-10 15:42:29 -05:00
Brian Coca
38120c1075 termination handling
- moved to base cli class to handle centrally and duplicate less code
- now avoids duplication and reiteration of signal handler by reassigning it
- left note on how to do non-graceful in case we add in future
  as I won't remember everything i did here and don't want to 'relearn' it.
2016-02-10 15:35:30 -05:00
Brian Coca
3079a03773 read full file when doing diff
but avoid reading file at all or full file when file is too big for diffing
2016-02-10 12:05:45 -05:00
Toshio Kuratomi
371c7315b0 Merge pull request #14261 from kamsz/devel
Add validate_certs param to skip SSL verification in VMware
2016-02-10 08:50:48 -08:00
Toshio Kuratomi
486304ba1c Clarify error message when module replacer encounters a bad import line for module_utils code 2016-02-10 08:46:17 -08:00
Brian Coca
d9dcb2a427 Revert "centralized TERM signal handling"
This reverts commit 5a88478ccc.
is WIP, not ready for use yet
2016-02-10 09:48:42 -05:00
James Cammarata
2adddac94c Catch exceptions during module execution so they don't fail the worker
Fixes #14120
2016-02-10 09:22:57 -05:00
Brian Coca
5a88478ccc centralized TERM signal handling 2016-02-09 18:21:33 -05:00
Brian Coca
1b8dec9c88 avoid termination message when term is internal 2016-02-09 18:10:36 -05:00
Brian Coca
b4b24a0889 moved to base class for shell plugins
fish now sets env vars correctly
fish checksum now works
fixed and cleaned up imports
fixed typo
2016-02-09 17:39:51 -05:00
Matthew Stoltenberg
c90ab8856d paramiko transport appears to hang if it gets a sudo lecture
* bring paramiko transport closer to ssh transport in how it deals with prompt
2016-02-09 15:08:33 -07:00
Brian Coca
f50b381dba Merge pull request #13678 from Etherdaemon/fix_datetime_objects
fix for datetime exception in ecs_tasks
2016-02-09 17:07:28 -05:00
James Cammarata
a54f472b08 Submodule pointer update for devel 2016-02-09 13:30:50 -05:00
Matthew Stoltenberg
d36394d6a6 strip BECOME-SUCCESS at lower level
Fixes #14395
2016-02-09 13:03:18 -05:00
James Cammarata
162dd2594f Filter become success string from the stdout of script results
Fixes #14390
2016-02-09 12:34:15 -05:00
Kamil Szczygiel
9f1eea43fa support for python < 2.7 2016-02-09 08:49:26 +01:00
Toshio Kuratomi
0f15e59cb2 Also hide the before state of files with --diff and no_log 2016-02-08 22:05:46 -08:00
Toshio Kuratomi
06b2400aae Need to apply to_str to each element of the list so that we don't mix types in the join()
"Third time's the charm"
2016-02-08 20:28:55 -08:00
Brian Coca
81a40ac235 fix winrm erorr formatting 2016-02-08 23:00:19 -05:00
Brian Coca
5014919099 Merge pull request #14347 from bcoca/die_now
fix termination on user/signal interrupt
2016-02-08 17:18:11 -05:00
Jonathan Davila
b220051c14 Added more info to the no action detected error
Error fix
2016-02-08 16:51:10 -05:00
Tom Paine
8e3cc3eecd Update profile_tasks.rst 2016-02-08 19:19:05 +00:00
Toshio Kuratomi
1aaf5a399c Merge pull request #14317 from resmo/feature/fail_on_missing_params
module_utils/basic: add generic method for checking for missing param…
2016-02-08 10:33:48 -08:00
Robin Roth
f3f3e3c660 fix typo 2016-02-08 19:10:04 +01:00
Robin Roth
c0ebb74ad0 add ismount function from python Lib/posixpath.py
needed for https://github.com/ansible/ansible-modules-core/pull/2737
2016-02-08 18:58:36 +01:00
THEBAULT Julien
7c2ff0e66b Ansible-galaxy support the include directive 2016-02-08 17:28:24 +01:00
Brian Coca
46ce9a0016 Merge pull request #13883 from shaba/devel
Add support ssh configs from /etc/openssh.
2016-02-08 10:27:44 -05:00
Tom Paine
5a88cd8ad9 Rename profile_tasks.md to profile_tasks.rst 2016-02-08 15:02:50 +00:00
James Cammarata
1ea21f1f8c Also chmod the args file path when using become for old-style modules
Fixes #14348
2016-02-08 10:00:26 -05:00
Brian Coca
5a1887cc76 correctly handle term signals
- adhoc now terminates gracefully
- avoid race condition on terminations by ignoring errors if
  worker might have been reaped between checking if active and termination call
- ansible-playbook now properly exits on sigint/term
- adhoc and playbook now give exceptions that we should not normally capture
  and rely on top level finally to reap children
- handle systemexit breaks in workers
- added debug to see at which frame we exit
partial fix for #14346
2016-02-08 09:51:16 -05:00
James Cammarata
45755bc0e5 Merge pull request #14353 from felixfontein/devel
Include's tags argument allows only one tag to be specified.
2016-02-08 08:52:12 -05:00
Toshio Kuratomi
ccbc7d217b Update submodule refs 2016-02-07 14:30:28 -08:00
Toshio Kuratomi
d1c2d16706 Allow setting run_command environment overrides for the life of an AnsibleModule 2016-02-07 12:46:04 -08:00
Michael Ludvig
ab64918cb5 Add support for AWS_SESSION_TOKEN environment variable.
According to http://blogs.aws.amazon.com/security/post/Tx3D6U6WSFGOK2H/A-New-and-Standardized-Way-to-Manage-Credentials-in-the-AWS-SDKs
the "official" environment variables that should be used for
AWS credentials should be:
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_SESSION_TOKEN
This patch adds support for the latter (the first two are already
supported).
2016-02-08 00:25:13 +13:00
Felix Fontein
8eea1c7e01 Allowing multiple tags to be specified in include's tags argument. 2016-02-06 21:19:03 +01:00
Brian Coca
ad37a91514 really only want to prevent None typep here
false is sometimes needed
2016-02-05 14:33:10 -05:00
Matt Martz
0e57c577f4 Add RedirectHandler class and factory function for controlling redirects in urllib2 2016-02-05 12:12:04 -06:00
Tom Paine
9eca815377 Update profile_tasks.md
Converted to RST.
2016-02-05 18:06:10 +00:00
James Cammarata
c79d9a9c62 Handle run_once scenarios in the free strategy
* Raise an error if the action is using BYPASS_HOST_LOOP, to prevent
  unexpected behavior from those actions
* Show a warning regarding tasks marked as run_once, as the free strategy
  does not yet support that behavior
* Minor tweak to linear strategies run_once code to make sure we don't
  raise an error if an action isn't found
2016-02-05 11:19:50 -05:00
James Cammarata
27f9cc05f8 Make sure run_once tasks also set any_errors_fatal so all hosts fail
Currently implemented only in the linear strategy (free strategy simply
ignores run_once/BYPASS_HOST_LOOP actions).

Fixes #14252
2016-02-05 10:58:24 -05:00
Brian Coca
d2846dbf30 Merge pull request #14280 from bcoca/always_tag_setup
WIP: tag the setup task with always
2016-02-05 10:33:34 -05:00
Peter Sprygada
18094d8595 Merge pull request #14313 from chouseknecht/net_template_changes
When in context of a role, create backup dir within role_path
2016-02-04 20:21:12 -05:00
Brian Coca
5679b5414c avoid errors from possible None/False args 2016-02-04 19:39:56 -05:00
James Cammarata
75b6f61619 Fix the way we re-add variables from PlayContext to the variable dict
* If the internal value is None, do not add the variable
* Make sure all aliases for a given variable name are set (if they're
  not already set in the dictionary)

Fixes #14310
2016-02-04 17:17:33 -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
Toshio Kuratomi
e2a7ba35db Fix --diff to respect no_log task parameter. 2016-02-04 12:44:45 -08:00
chouseknecht
4f61fb6cce Add safety check on _backup key. 2016-02-04 14:47:43 -05:00
chouseknecht
0766219f58 When in context of a role, create backup dir within role_path 2016-02-04 14:47:43 -05:00
Toshio Kuratomi
4b7b3794c9 Update submodule refs 2016-02-04 11:10:50 -08: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
Peter Sprygada
f30d5b1d94 Merge pull request #14012 from privateip/action_nxos_config
initial add of action plugin nxos_template
2016-02-04 11:41:41 -05:00
Peter Sprygada
c7180cf1a5 Merge pull request #14011 from privateip/action_ops_config
initial add of action plugin ops_template
2016-02-04 11:41:29 -05:00
Peter Sprygada
a48b521e62 Merge pull request #14010 from privateip/action_ios_config
initial add of action plugin ios_template
2016-02-04 11:41:08 -05:00
Peter Sprygada
30d03b93b4 Merge pull request #14009 from privateip/action_eos_config
initial add of action plugin eos_template
2016-02-04 11:40:21 -05:00
Peter Sprygada
ed3842aa87 Merge pull request #14008 from privateip/action_net_config
initial add of action plugin net_template
2016-02-04 11:40:07 -05:00
Brian Coca
6149685652 Merge pull request #14293 from dagwieers/fix-eval-json-booleans
Defined JSON booleans in global context for python eval()
2016-02-04 11:33:30 -05:00
Matt Martz
8bc2d3be9c Add new 'unsafe' YAML constructor 2016-02-04 10:08:42 -06:00
Dag Wieers
2e171610e0 Also add 'null' as a possible JSON value 2016-02-04 14:19:46 +01:00
James Cammarata
699a854bf3 Fixing bugs in play iteration and strategies
* Fixed a bug in PlayIterator when ITERATING_ALWAYS, where the block
  was advanced but the incorrect data structure elements were cleared
* Cleaned up the logic of is_failed() in PlayIterator
* Fixed a bug in the free strategy which had not been updated to use
  the base strategy _execute_meta() method
* Stopped strategies from using is_failed() to determine if tasks should
  still be fetched for a host

Fixes #14040
2016-02-03 18:42:27 -05:00
James Cammarata
da9ae14ff6 Adding new feature - meta: clear_host_errors
Allows for the clearing of any failed/unreachable hosts
2016-02-03 14:59:38 -05:00
Dag Wieers
dc48d27dd2 Defined JSON booleans in global context for python eval()
We define 'false' and 'true' as variables so that python eval() recognizes them as False and True.

This fixes #14291.
2016-02-03 19:11:55 +01:00
Brian Coca
26cd465068 Merge pull request #14281 from dagwieers/fix-first-found-list
Handle when the lookup-plugin is used in jinja-style
2016-02-03 11:13:57 -05:00
Dag Wieers
dee5dba82a Handle when the lookup-plugin is used in jinja-style
This fixes #14190.
2016-02-03 17:10:40 +01:00
Brian Coca
dc6f0c1290 avoid logging color codes 2016-02-03 10:55:30 -05:00
Tobias Wolf
c902f926ca Do not print empty diffs with _display.display() 2016-02-03 16:20:16 +01:00
Tobias Wolf
28169492f9 Do not insert newlines when diff is empty 2016-02-03 16:20:16 +01:00
Tobias Wolf
67594e8ec2 Fix handling of difflist containing multiple before/after pairs
Commit ansible/ansible@c337293 introduced a difflist feature. The return
value was not adequately outdented to append any diff after the first.
2016-02-03 16:20:16 +01:00
Peter Sprygada
4bda4a13e5 initial add of action plugin net_template
The net_config local action handles templating for network configuration
file.  It will also allow network device configurations to be backed up
to the control host

Note: this plugin was originally named net_config but has been refactored to
net_template
2016-02-02 22:27:05 -05:00
Brian Coca
84f8241ff8 tag the setup task with always
fixes #14228
2016-02-02 16:31:22 -05:00
Toshio Kuratomi
42e312d3bd Change $() into backticks. Backticks should work for both POSIX and non-POSIX compatible shells.
Fixes #14176
2016-02-02 12:38:21 -08:00
Toshio Kuratomi
147dba5d97 Merge pull request #14277 from ansible/default-shell-type
Establish sh as the default shell plugin.
2016-02-02 12:19:00 -08:00
Toshio Kuratomi
5b1d8cfd5c Establish sh as the default shell plugin.
This is a fix for one of the problems pointed out in #14176
2016-02-02 11:46:09 -08:00
Brian Coca
8d4bc2003f better fix for ansible-pull inventory handling
now it mirrors what it did in previous versions
and properly uses inventory and limit options
2016-02-02 14:22:15 -05:00
Brian Coca
197bed6fd8 make executable setting connection dependant
winrm shoudl not use executable, rest should?
fixes #14233
2016-02-02 13:13:02 -05:00
James Cammarata
b2c0abe998 Don't mark host as having gathered facts when peeking at next task
Fixes #14243
2016-02-02 10:22:52 -05:00
Kamil Szczygiel
fa13aa8c00 rename param from skip_ssl to validate_certs 2016-02-02 15:47:56 +01:00
Brian Coca
a584ab3420 Merge pull request #11113 from sysadmin75/11104_osx_facts_bridge
Fixes OSX fact gathering for the bridge interface.
2016-02-02 00:46:21 -05:00
Brian Coca
f628704a71 added option groups to make --help readable
Also moved -K to become to keep short option in view of removing the
separate sudo/su prompt options
2016-02-02 00:09:14 -05:00
Brian Coca
eafc31f3f8 Merge pull request #14197 from bcoca/safer_data_load
load now does not modify the incomming data
2016-02-02 00:02:23 -05:00
Brian Coca
dc15eb806e deprecate all bare variable conversions (not debug)
now deprecation message appears with variable name in all spots where this occurs
debug's var= option is excluded as this is only place where bare variables shold actually
be accepted.
2016-02-01 18:59:14 -05:00
Brian Coca
28cf4bc00b fix incorrect environment processing
it was assumed it could only be a dict or string (it starts out as a list)
also a 2nd assumption that bare vars only would appear in one of the dict keys.

removed deprecation warnings from here as they should be signaled in the bare conversion itself.
2016-02-01 18:54:09 -05:00
Brian Coca
6a62ad6c4b hide internal params once used 2016-02-01 15:17:23 -05:00
Brian Coca
e0ed88e668 normalize error message on src != dir when local
now action plugin returns same error as module
2016-02-01 13:43:35 -05:00
Matt Martz
ddfab5faf1 Use isinstance type checks in bool filter so we can handle unsafe proxy objects. Fixes #14240 2016-02-01 12:32:59 -06:00
Peter Sprygada
b2f1c0691d initial add of action plugin ops_template
Adds new local action ops_config for handling openswitch configurations using
either dc or cli based configurations.  Implements the common net_config
local action.

Note this refactors the ops_config plugin to ops_template
2016-02-01 11:54:56 -05:00
Peter Sprygada
4f2a75923e initial add of action plugin ios_template
Adds a new local action ios_config for working with cisco ios configuration
files.  Implements the common net_confing local action

Note this plugin was refactored from ios_config to ios_template
2016-02-01 11:54:02 -05:00
Peter Sprygada
54f7a7b6d2 initial add of action plugin nxos_template
Adds new local action for working with cisco nxos configurations.  Implemements
the net_config local action.

Note this action plugin was refactored from nxos_config to nxos_template
2016-02-01 11:52:50 -05:00
Peter Sprygada
be82caefd2 initial add of action plugin eos_template
Adds a new local action for eos_config module to handle templating configs
and backing up running configurations.   Implements the local action
net_config

Note this action was refactored from eos_config to eos_template
2016-02-01 11:51:52 -05:00
Peter Sprygada
1733bf4053 minor update for nxos
This fixes a minor bug in the nxos config module to ensure that both the
cli and nxapi transport return the running config as a string and not
a list object.
2016-01-31 22:59:49 -05:00
Peter Sprygada
633b16d116 add exeception handling for invalid commands over nxapi
This commit will catch invalid commands being send over nxapi and call
fail_json on the module.  The nxos shared module will now return the
failure
2016-01-31 20:10:20 -05:00
Brian Coca
49c15c8137 Merge pull request #14220 from bcoca/ansible_pull_once
harcoding inventory/hosts when pulling from repo
2016-01-30 11:35:12 -05:00
Toshio Kuratomi
9e3932ffca Some attributes of callbacks aren't in v2. Port plugins to the v2 way to do that
Update porting guide with info on callback porting
2016-01-29 19:45:12 -08:00
Toshio Kuratomi
fb57818ea3 Explicitly set validate_certs=False as the boto default is True
Fixes #14089
2016-01-29 16:37:15 -08:00
Brian Coca
7964a35918 harcoding inventory/hosts when pulling from repo
return to pre 2.0 behaviour which did not factor inventory into the repo pull
2016-01-29 18:46:56 -05:00
Brian Coca
1aae6499ca fixed code for v1 callback runtime compatiblity
old exception code obsoleted by exception avoidance
errors on callback produce warnings and don't stop play
2016-01-29 16:55:23 -05:00
James Cammarata
5587b08335 Make sure setup tasks inherit properly from their parent play
Fixes #13602
2016-01-29 15:38:46 -05:00
Toshio Kuratomi
ceef202024 Update submodule refs 2016-01-29 09:59:58 -08:00
Toshio Kuratomi
315fd15f69 Merge pull request #12909 from photoninger/sles11.4-fix_2nd_try
Fix for SLES 11.4, which has now also an /etc/os-release file.
2016-01-29 09:11:51 -08:00
Brian Coca
dd4787701f fix unicode input for template lookup
fixes #14207
2016-01-29 10:42:52 -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
Brian Coca
db375c22af load now does not modify the incomming data
also removed json loader as yaml loader can do both
2016-01-28 19:43:17 -05:00
Toshio Kuratomi
2c825539ff When setting up the local connection for the rsync we need to set the shell as well.
Fixes #13490
2016-01-28 16:02:57 -08:00
Matt Martz
4547ac7fb1 v2 version of slack callback plugin 2016-01-28 16:13:29 -06: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
5ecfa8ddfc Merge pull request #14189 from ansible/unicode-pager
Changes to convert to unicode at the borders
2016-01-28 11:46:34 -08:00
Toshio Kuratomi
605fb08487 Merge pull request #14168 from ansible/safer-squashing
Squashing was occuring even though pkgs didn't have a template that would be affected by squash
2016-01-28 10:57:43 -08:00
Toshio Kuratomi
fa9822df0f Changes to convert to unicode at the borders
The module docs and vault changes solve issues where tracebacks can
happen.  The galaxy changes are mostly refactoring to be more pythonic
with a small chance that a unicode traceback could have occurred there
without the changes.  The change in __init__.py when we actually call
the pager makes things more robust but could hide places where we had
bytes coming in already so I didn't want to change that without auditing
where the text was coming from.

Fixes #14178
2016-01-28 10:56:46 -08:00
Toshio Kuratomi
e7a9031d61 Update submodule refs 2016-01-28 09:43:29 -08:00
Toshio Kuratomi
0e410bbc8a Squashing was occuring even though pkgs didn't have a template that would be affected by squash
This broke other uses of looping (looping for delegate_to in the
reported bug)

Fixes #13980
2016-01-27 21:55:00 -08:00
Brian Coca
c857b20043 fixed issue with vars prompt warning causing error
sometimes display object is not magically available, use it explicitly,
no need to be classmethod anymore
fixes #14147
2016-01-27 16:13:06 -05:00
Toshio Kuratomi
3f3e3e3d5b Return an error when synchronize is used with something other than an ssh connection
Suggested in #2832
2016-01-27 12:48:15 -08:00
Kamil Szczygiel
a381c1bbd6 added skip_ssl argument for VMware module to skip SSL verification (required when using self signed certificates) 2016-01-27 20:41:28 +01:00
Brian Coca
6bf2f45ff5 fix for so su works in more cases
should not fail anymore on csh, fish nor the BSDs
fixes #14116
2016-01-27 14:13:01 -05:00
Peter Sprygada
4fa6902c96 address minor bugs in nxos shared module
This addresses two issues with the nxos shared module.  The first issue is
argument precedence checking.  The module should prefer explicit arguments
over arguments passed vi the provider.  This is now fixed to honor that
precedence.  The second issue is collecting output from nxapi and returning
the response.  Prior to this change the entire json structure was returned.
Now just the output is returned to align it better with cli based output
2016-01-27 11:25:56 -05:00
Peter Sprygada
c59916c43d fixes issue with eos shared module argument precedence
The eos shared module should prefer to use explicit task arguments over
arguments provided through the provider.  This fixes a problem where
that was not the case
2016-01-27 11:25:47 -05:00
James Cammarata
a61e51efb7 Don't try to generate retry files if the tqm hasn't been initialized
Fixes #14144
2016-01-27 09:56:50 -05:00
Toshio Kuratomi
cb2b19ced8 Fix for inventory hosts on localhost with alternate ports.
Fixes https://github.com/ansible/ansible-modules-core/issues/2831
2016-01-26 13:53:42 -08:00
James Cammarata
3ed3a5f43a Make retry file generation not use StringIO 2016-01-26 14:52:41 -05:00
James Cammarata
78d499140c Re-implementing the retry file feature for 2.0
Fixes #13944
2016-01-26 14:11:28 -05:00
James Cammarata
07a9a54b0e Fix lookup of parent attribute when parent doesn't have the attr
Fixes #14100
2016-01-26 13:10:23 -05:00
Brian Coca
66104191d1 fixed permissions check for ansible.log
fixes #13990
2016-01-26 11:22:52 -05:00
Brian Coca
46fde754af Merge pull request #14044 from skorochkin/devel
Adding support for scm-based role source urls (ansible-galaxy)
2016-01-26 10:41:05 -05:00
Tobias Wolf
5b293b56d6 Handle the key 'prepared' in the 'diff' result from modules
So far, when a 'diff' dict is returned with module results, it is
checked for 'before' and 'after' texts, which are processed in
_get_diff() by python difflib.  This generates the changes to display
when CLI users specify --diff.

However, some modules will generate changes that cannot easily be
expressed in a conventional diff. One example is the output of the
synchronize module, which presents changed files in a common log format
as in `rsync --itemize-changes`.

Add a check for a diff['prepared'] key, which can contain prepared diff text
from modules.
2016-01-26 09:29:37 +01:00
Toshio Kuratomi
c44110bc81 Update submodule refs to pick up the synchronize internal parameter 2016-01-25 19:57:28 -08:00
Toshio Kuratomi
a23a5d1b93 Merge pull request #13968 from ansible/synchronize-become-is-reversed
synchronize: First cut at not doing sudo on the control machine but on the remote machine instead.
2016-01-25 19:52:03 -08:00
Toshio Kuratomi
d0a062ffa3 python3 doesn't have raw explicit-unicode literals. Workaround it with a raw native string that we make unicode in py2. 2016-01-25 19:46:57 -08: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
f4d68b8860 Transform tracebacks into unicode before printing
Fixes #14042
2016-01-25 19:18:59 -08:00
Brian Coca
c063803a91 raise AnsibleError as an 'expected' exception
fixes #14065
2016-01-25 22:20:55 -05:00
Brian Coca
9df0662408 simpler conditional 2016-01-25 22:01:48 -05:00
Jonathan Davila
041e1979c4 Boto3 error handle fix 2016-01-25 17:40:20 -05:00
Brian Coca
ac1d1673be adhoc now respects limit when listing hosts
also removed cruft about localhost as if used it is specified inline
fixes #13848
2016-01-25 17:39:01 -05:00
Jonathan Davila
f95652e7db Merge remote-tracking branch 'upstream/devel' into ec2_util_boto3 2016-01-25 17:35:39 -05:00
Brian Coca
87fe32319f ensure stdout callback alwasy is loaded first
it is now called for every event prior to any other callbacks
fixes #14114
2016-01-25 17:11:36 -05:00
Brian Coca
af88e34831 better error when host inventory script isnt dict 2016-01-25 16:32:09 -05:00
James Cammarata
a8ffa02134 Make sure blocks use their parents dependency chains
Fixes a bug inroduced in fb797a9 where included tasks in a role
were not being executed because the child blocks had no dep chain
set.
2016-01-25 09:02:44 -05:00
James Cammarata
2b02e8e2b4 Allow certain base attributes to be used as role params
Role definitions typically require params to be different from those
which are specified as FieldAttributes on the playbook classes used
for roles, however a certain subset should be allowed (typically those
used for connection stuff).

Fixes #14095
2016-01-24 23:04:50 -05:00
James Cammarata
46ede563dd Use templated handler name during callback
Fixes #14082
2016-01-23 09:25:50 -05:00
James Cammarata
fb797a9e77 Fixing role dependency chain creation
The dep chain for roles created during the compile step had bugs, in
which the dep chain was overwriten and the original tasks in the role
were not assigned a dep chain. This lead to problems in determining
whether roles had already run when in a "diamond" structure, and in
some cases roles were not correctly getting variables from parents.

Fixes #14046
2016-01-22 12:54:00 -05:00
Emilien Kenler
3b71710827 ansible.utils._git_repo_info() now supports branch names with slashes 2016-01-22 12:32:15 +09:00
James Cammarata
4651155942 Fix bug with any_errors_fatal where task was not available 2016-01-21 16:42:31 -05:00
James Cammarata
d02dee37a1 Disallow setting state on template tasks
Fixes #14056
2016-01-21 15:02:24 -05:00
Toshio Kuratomi
ecf867af6f Update submodule refs 2016-01-21 11:11:05 -08:00
Toshio Kuratomi
f594cc0a5b Merge pull request #13993 from towolf/avoid_json_to_unicode
Avoid recursively checking JSON inventory for Unicode
2016-01-21 08:41:16 -08:00
Tobias Wolf
d6ae9e2c29 Avoid recursively checking JSON inventory for Unicode
by moving to en-bloc unicode conversion to act on scripts stdout

Both python-json and simplejson always return unicode strings when using
their loads() method on unicode strings. This is true at least since
2009. This makes checking each substring unnecessary, because we do not
need to recursively check the strings contained in the inventory dict
later one-by-one

This commit makes parsing of large dynamic inventory at least 2 seconds
faster.

cf: https://github.com/towolf/ansible-large-inventory-testcase
2016-01-21 17:35:40 +01:00
Brian Coca
f26adcc7da avoid shredding empty files, also x/0
also cleaned up unused import and exception var
2016-01-21 10:54:56 -05:00
Sergii Korochkin
1325c21ca0 Adding support for scm-based role source urls (incl. integration test to cover it) 2016-01-21 14:00:29 +02:00
James Cammarata
627dec716b Template the run_once value in the linear strategy as we use it there
This is pre-post_validation, so we have to template it on the fly
as we use it to determine if we bypass the host loop.

Fixes #11876
2016-01-20 20:54:12 -05:00
James Cammarata
365c5b23ce Re-add cache clearing call to Inventory init
This prevents a bug where the existing cache outside of the class
is not cleared when creating a new Inventory object. This only really
affects people using the API directly right now, but wanted to fix it
to prevent weird errors from popping up.
2016-01-20 20:54:12 -05:00
Brian Coca
c2ac1507ea corrected host/group match in inventory_hostnames
now the lookup works when using ! and & operators
fixes #13997
2016-01-20 18:32:39 -05:00
James Cammarata
9b05a670c7 Merge pull request #14031 from selivan/devel
plugins/strategy: added significant details to parser error message.
2016-01-20 15:49:38 -05:00
James Cammarata
54cde0d082 Standardize removal of BECOME-SUCCESS method and use it for async too
Fixes #13965
Fixes #13971
2016-01-20 15:27:28 -05:00
Toshio Kuratomi
61009604e3 Update submodules to bring in yum fix 2016-01-20 12:18:52 -08:00
Toshio Kuratomi
d97d28ecb0 Merge pull request #14025 from ansible/run_command-env-rework
rework run_command's env setting to not change os.environ for the res…
2016-01-20 12:13:43 -08:00
Selivanov Pavel
3201f5d90e plugins/strategy: added significant details to parser error message.
See discussion at
https://github.com/ansible/ansible/issues/13753
2016-01-20 23:12:26 +03: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
Matt Martz
d49b11e996 Only use os.path.basename if get_file_content returned a value, and ensure that service_mgr has line endings stripped. Fixes #14026 2016-01-20 13:08:16 -06:00
Brian Coca
cc4506b451 Merge pull request #14006 from bcoca/always_shell_again
go back to always wrapping commands in shell
2016-01-20 13:17:34 -05:00
James Cammarata
ac89b0de7a Fix incorrect handling of any_errors_fatal in the linear strategy
Instead of bombing out of the strategy, we now properly mark hosts failed
so that the play iterator can handle block rescue/always properly.

Fixes #14024
2016-01-20 12:16:27 -05:00
James Cammarata
e3a6accc1d Forward conditionals onto included plays when conditional eval errors
When using a playbook-level include, we now catch any errors raised during
the conditional evaluation step and set a flag to indicate we need to pass
those conditionals on to the included play (most likely because they contain
inventory variables for evaluation).

Fixes #14003
2016-01-20 01:32:45 -05:00
James Cammarata
c8bbdd6b39 Don't assign both parent blocks and task includes to blocks
This causes problems when fetching parent attributes, as the include
was being skipped because the parent block would fetch the attribute
from the parent play first.

Fixes #13872
2016-01-19 22:47:07 -05:00
Brian Coca
c09c01a1f5 go back to defaulting wrapping commands in shell
this was taken out in an effort to default to the user's shell but creates issues as this is not known ahead of time
and its painful to set executable and shell_type for all servers, it should only be needed for those that restrict the user
to specific shells and when /bin/sh is not available. raw and command may still bypass this by explicitly passing None.
fixes #13882

still conditional
2016-01-19 22:09:17 -05:00
Peter Sprygada
981265ac84 adds provider argument to nxos shared module
The provider argument accepts the set of device common arguments as a
dict object.  Individual connection arguments can still be included and
take priority over the provider argument.  This update includes additions
to the nxos doc fragment
2016-01-19 19:02:41 -05:00
Peter Sprygada
9cba1a7c69 adds provider argument to ios shared module
New argument `provider` added to the ios shared module that provides
the ability to pass all of the common ios arguments as a dict.  This commit
includes some minor bugfixes and refactoring of names.   It also includes
udpates to the ios documentation fragment for the new argument
2016-01-19 19:00:52 -05:00
Peter Sprygada
e2ff26a5cf add provider argument to eos shared module
Adds a new argument `provider` to the eos shared module and updates the
eos doc fragment.  This commit includes some additional minor fixes and
code refactors for naming conventions.  The `provider` argument allows the
shared module arguments to be passed as a dict object instead of having
to pass each argument invididually.
2016-01-19 18:57:26 -05:00
James Cammarata
d07d974ad8 Revert "Properly look for parent become attribute"
This reverts commit 1b46a422aa.
2016-01-19 18:17:42 -05:00
Toshio Kuratomi
ca8261ed31 Don't tracback trying to retore settings
Can occur if we exit the timeout before the settings were changed
2016-01-19 14:09:22 -08:00
Peter Sprygada
0f2917fde3 add provider to iosxr shared module
This commit adds a new argument `provider` to the iosxr shared module that
allows common connection parameters to be passed as a dict object.  The
constraints on the args still applies.  This commit also updates the iosxr
doc fragment.
2016-01-19 14:51:06 -05:00
Peter Sprygada
7640eca368 adds provider argument to openswitch shared module
Adds new argument `provider` to the openswitch shared module.  The provider
argument can pass all openswitch connection arguments as a dict object.  This
update includes adding the provider argument to the openswitch doc fragment
2016-01-19 14:50:39 -05:00
Peter Sprygada
33d390fb58 adds provider argument to junos shared module
This commit adds a new argument `provider` to the junos shared module.  The
argument allows the set of common connection args to be passed to the
junos shared module.  This commit also updates the junos doc fragment
2016-01-19 14:50:01 -05:00
Peter Sprygada
5144ee226e adds private key file support to shell shared module
This commit provides an argument to provide a path to the private key
file.  This will allow paramiko to use the key file as opposed to only
username / password combinations for CLI connections.
2016-01-19 14:26:23 -05:00
James Cammarata
1b46a422aa Properly look for parent become attribute
Corrects inheritence of the boolean value, which needs some special
consideration from other (string/int) values.

Fixes #13872
2016-01-19 14:12:27 -05:00
James Cammarata
b1223746cd Relocate use of ERROR to display class, to avoid doubling up 2016-01-19 12:10:39 -05:00
James Cammarata
a7dd425620 Catch INI section parsing misses and raise an appropriate error
Fixes #13917
2016-01-19 12:07:45 -05:00
James Cammarata
1af473548b Fix role hashing failure/traceback when params contain lists
Fixes #13857
2016-01-19 11:02:15 -05:00
Toshio Kuratomi
94a9ed0ee1 Set decoding of path to unicode to raise an exception if non-utf8
Letting it pass would just cause an error later on (no such file found)
so it's better to catch it here and know that we have users dealing with
non-utf8 pathnames than to have to track it down from later on.
2016-01-19 05:48:12 -08:00
Toshio Kuratomi
40373dea4d Make all parts of messages and pathnames into unicode so that we don't get UnicodeError tracebacks.
Note that the fix for display normalizing to unicode is correct but the
fix for pathnames is probably not.  Changing pathnames to unicode type
means that we will handle utf8 pathnames fine but pathnames can be any
sequence of bytes that do not contain null.  We do not handle sequences
of bytes that are not valid utf8 here.  To do that we need to revamp the
handling of basedir and paths to transform to bytes instead of unicode.
Didn't want to do that in 2.0.x as it will potentially introduce other
bugs as we find all the places that we combine basedir with other path
elements.  Since no one has raised that as an issue thus far so it's not
something we need to handle yet.  But it's something to keep in mind for
the future.

To test utf8 handling, create a utf8 directory and run a playbook from
within there.

To test non-utf8 handling (currently doesn't work as stated above), create
a directory with non-utf8 chars an run a playbook from there.  In bash,
create that directory like this: mkdir $'\377'

Fixes #13937
2016-01-19 05:45:21 -08:00
Brian Coca
a773486432 fixed exception handling to be 2.4 compatible
previous 'fix' broke on 2.4
2016-01-19 08:31:53 -05:00
James Cammarata
1f7492171e Don't clear start at task flag until all hosts are advanced
Clearing the flag after the first host was advanced caused all other
hosts to not advance at all.

Fixes #13864
2016-01-18 22:56:10 -05:00
Brian Coca
9f05ce3e2b be consistent about conversion to_str 2016-01-18 21:55:56 -05:00
Brian Coca
54435261e8 updated submodule refs 2016-01-18 21:55:56 -05:00
Brian Coca
5dd2aad535 ignore exceptions in get_file_contents
it should be common enough to not be able to read files in some jailed/container environments
even though permissions tell us otherwise
2016-01-18 21:55:56 -05:00
Toshio Kuratomi
5e18bc5955 Turn results that come from traceback messages into unicode, not str.
Fixes #13964
Fixes #13967
2016-01-18 14:43:55 -08:00
James Cammarata
1733d434d1 Fix with loop + delegate issues
* Don't re-use the existing connection if the remote_addr field of
  the play context has changed
* When overriding variables in PlayContext (from task/variables),
  don't set the same attribute based on a different variable name
  if we had already previously set it from another variable name

Fixes #13880
2016-01-18 17:35:00 -05:00
Toshio Kuratomi
2c512e5a63 Update submodule refs 2016-01-18 13:59:57 -08:00
Toshio Kuratomi
ded02b4968 Fix proposed by @Yannig to fix become success detection when the output is multiline
See the Bug report for a specific error case with local connection,
sudo, and the raw module

Fixes #13728
2016-01-18 13:48:37 -08:00
Brian Coca
27f4730c29 correctly deals with non serializable type
combine_vars shoudl really be data types, but some just get in
in test, add dict to mock and avoid combine_vars using object
2016-01-18 15:17:43 -05:00
Brian Coca
83069a38d5 better init detection 2016-01-18 15:17:43 -05:00
James Cammarata
b5058736ce Fix set_fact + run_once to assign variables to all hosts in the list
Fixes #13921
2016-01-18 14:50:20 -05:00
James Cammarata
46e515131e Allow module args as k=v pairs when using the module: option with local_action
This task format is valid in 1.x, but was broken in 2.x:
  - local_action:
     module: shell echo "hello world"
2016-01-18 14:32:44 -05:00
James Cammarata
c42484a029 Minor cleanup when reassigning play context to reused connections
* Relocate the assignment of the host address to the remote_addr field
  in the play context, which was only done when the connection was created
  (it's now done after the post_validate() is called on the play context)
* Make the assignment of the play context to the connection an else, since
  it's not required if the connection is not reused
2016-01-18 13:36:40 -05:00
James Cammarata
bc1bcc3419 Merge branch 'patch-1' of https://github.com/ktaragorn/ansible into ktaragorn-patch-1 2016-01-18 13:12:01 -05:00
Toshio Kuratomi
36aa89ac7e Fix erroneous fetch fail when fail_on_missing is set to False
Fixes #13832
2016-01-15 16:28:17 -08:00
Chrrrles Paul
3f66f58fde Merge pull request #13819 from chrrrles/vmware_doc_fragments
doc fragments for vmware and vca modules
2016-01-15 15:42:43 -06:00
Peter Sprygada
4e5dc44289 fixes documentation string 2016-01-15 15:08:15 -05:00
Brian Coca
a2a23c14ac Merge pull request #13901 from bcoca/add_hosts_fix
fix issue with add_hosts overwriting existing vars
2016-01-15 14:22:26 -05:00
James Cammarata
1825b4a9c7 Fix any_errors_fatal incorrect implementation in 2.0
Also adds that flag to blocks.

Fixes #13744
2016-01-15 13:15:10 -05:00
Toshio Kuratomi
1b82de2354 Non-newstyle modules can't use pipelining
This is because we pass arguments to non-newstyle modules via an
external file.  If we pipeline, then the interpreter thinks it has to
run the arguments as the script instead of what is piped in via stdin.
2016-01-14 17:21:15 -08:00
Brian Coca
cd0ad03053 Merge pull request #13902 from bcoca/update_not_blast_inventory
overwrite/merge not remove prev inventory data
2016-01-14 18:37:36 -05:00
Brian Coca
a311872c5b overwrite/merge not remove prev inventory data 2016-01-14 18:06:54 -05:00
Brian Coca
c2d314dec5 fix issue with add_hosts overwriting existing vars
fixes github.com/ansible/ansible-modules-core/issues/2799 and is alternative to #13841
2016-01-14 17:55:44 -05:00
Yannig Perré
e5ea576461 Allow Ansible to return error with unicode within it.
Fix for https://github.com/ansible/ansible/issues/13899
2016-01-14 23:44:48 +01:00
Brian Coca
94fa9c2a7a test aliases to enable gramatical consistancy
keeps backwards compat by not removing the previouslly non grammer matching states
and introduces new ones so user can decide which one he wants
(or keep both and still be inconsistent to annoy those that care)
2016-01-14 12:29:02 -05:00
James Cammarata
abc82fee13 Fix typo in 0b86aa6 2016-01-14 11:57:12 -05:00
James Cammarata
0b86aa62e1 Hack to work around callback API change for v2_playbook_on_start 2016-01-14 11:54:44 -05:00
Brian Coca
c14eece0c6 md5 now uses smaller salt
fixes #13891
2016-01-14 10:24:34 -05:00
Brian Coca
9d1b280689 now combine vars errors dump vars
very hard to debug w/o knowing what vars were being merged at the time of the error
2016-01-14 10:23:35 -05:00
Alexey Shabalin
9be8ecda06 Add support ssh configs from /etc/openssh.
In Altlinux system config dir for openssh is /etc/openssh.
2016-01-14 13:01:49 +03:00
Toshio Kuratomi
b1a56051bd Prevent traceback.
https://github.com/ansible/ansible/issues/13743#issuecomment-171520585

In some circumstance, the file fails to open.  When that occurs, we
can't try to close it in the finally clause.  Using a context manager is
the cleanest way to change the code to account for that case.
2016-01-13 20:50:19 -08:00
Toshio Kuratomi
965602882a Update submodule refs 2016-01-13 20:07:04 -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
Toshio Kuratomi
58f387a6dd Fix circular import 2016-01-13 14:04:56 -08:00
Toshio Kuratomi
8068f23bad do_encrypt import needed to move as well
Fixes #13861
2016-01-13 13:08:33 -08:00
Toshio Kuratomi
4958180333 use integer division instead of floating point division.
Fixes #13855
2016-01-13 12:35:28 -08:00
Brian Coca
14f300f212 Merge pull request #13851 from shaba/devel
add detect Altlinux distributive
2016-01-13 11:50:03 -05:00
Alexey Shabalin
0b32e1586d add detect Altlinux distributive 2016-01-13 19:20:59 +03:00
Brian Coca
739e4c0386 corrected info about windows module naming and loc 2016-01-13 10:32:36 -05:00
Brian Coca
a196c7d737 only send event if tqm exists
fixes #13843
2016-01-13 10:18:36 -05:00
Toshio Kuratomi
589971fe7e Update submodule refs to try and fix the taiga_issue module-is-actually-old travis failures 2016-01-12 12:00:09 -08:00
Brian Coca
5760f0effb dont error out on new internal vars 2016-01-12 13:17:02 -05:00
Brian Coca
06fa841516 made loading of galaxy data files lazy 2016-01-12 12:25:09 -05:00
Charles Paul
9f9bff88c2 doc fragments for vmware_ vca_ 2016-01-12 11:06:22 -06:00
Brian Coca
cf9dfde15b Merge pull request #13751 from bcoca/module_internal_options
pass diff and verbosity settings to modules
2016-01-12 11:49:48 -05:00
Chrrrles Paul
bd147ab592 Merge pull request #13736 from chrrrles/nolog
adding password no_log and cleaning up argument spec for vca module
2016-01-12 10:24:37 -06:00
Brian Coca
c91df36ebe added module name to missing interpreter error
fixes #13816
2016-01-12 11:25:11 -05:00
Brian Coca
f56c15e7e2 Merge pull request #13766 from nflx/devel
Allow InventoryScript JSON with childgroups only
2016-01-12 10:01:11 -05:00
James Cammarata
b58673289a Split up comma-separated tags properly
Fixes #13795
2016-01-12 08:18:06 -05:00
Peter Sprygada
4d3aa72143 bugfix in nxos shared module for including defaults 2016-01-11 22:46:42 -05:00
Peter Sprygada
a758806287 bugfix in ios shared module for including defaults 2016-01-11 22:46:32 -05:00
Peter Sprygada
935ae2801f bugfix in eos shared module for including defaults 2016-01-11 22:45:40 -05:00
Toshio Kuratomi
d274fea358 Update submodules ref to pick up fix #558 2016-01-11 17:16:40 -08:00
Brian Coca
477d632118 now file mode diff shows octal values 2016-01-11 19:47:47 -05:00
Brian Coca
247ae748f5 Merge pull request #13786 from quinot/bug/attributes_typo
Fix minor typo in comment
2016-01-11 14:32:45 -05:00
Toshio Kuratomi
4ac76f60ee Merge pull request #13694 from resmo/fix/case-insensitivity
[2.0] cloudstack: fix more case insensitivity
2016-01-11 11:00:53 -08:00
Tom Paine
76ac6294e0 profile_tasks README.md
As agreed with Brian Coca in Ansible Project group:
https://groups.google.com/forum/#!searchin/ansible-project/tom$20paine/ansible-project/__nv6BZs2yU/AkYQ0HU-BQAJ
2016-01-11 18:21:28 +00:00
Matt Martz
45d9cfcc6f Coalesce forms of ssh_args in order of most specific to least 2016-01-11 11:55:25 -06:00
James Cammarata
6ec4d98764 When setting fail state skip RESCUE/ALWAYS if cur_block doesn't have them
Fixes #13749
2016-01-11 12:51:04 -05:00
Robin Roth
e01ff3b352 remove unused imports
clean up imports of time.sleep and stat that are no (longer) used here
2016-01-11 14:14:20 +01:00
Karthik T
c4cbeeffa8 Fixes #13763 Update connections _play_context on every iteration
If this isnt updated, the _connection is reused, and thus has an outdated _play_context
This results in outdated `success_key` and `prompt` causing issues if sudo is run in a loop
Refer to the issue #13763 for more debugging and details
2016-01-11 16:30:52 +08:00
Rene Moser
766738ef7c cloudstack: fix case insensitivity
cloudstack: fix has_change reports changed for case insensitivity values
2016-01-10 22:38:18 +01:00
Peter Sprygada
c3dd0213ef deletes nxapi from shared modules
The nxapi module has been superseded by the nxos shared module and is not longer needed. This commit removes (deletes) nxapi from module_utils.  All custom modules that have used nxapi should be using nxos instead.
2016-01-10 14:56:15 -05:00
Peter Sprygada
f99b834583 Merge pull request #13789 from privateip/shared_module_netcfg
adds network config file parser to shared modules
2016-01-10 14:44:00 -05:00
Peter Sprygada
b7fec945be Merge pull request #13788 from privateip/shared_module_junos
initial add of junos shared module
2016-01-10 14:39:37 -05:00
Peter Sprygada
60e0e1a12e Merge pull request #13784 from privateip/shared_module_openswitch
initial add of openswitch shared module
2016-01-10 14:35:42 -05:00
Peter Sprygada
771d8014fc Merge pull request #13779 from privateip/shared_module_nxos
adds shared module nxos for building cisco nxos modules
2016-01-10 14:32:23 -05:00
Peter Sprygada
a0a4edd494 Merge pull request #13777 from privateip/shared_module_ios
updates the ios shared module with new shell
2016-01-10 14:28:00 -05:00
Peter Sprygada
a648097285 Merge pull request #13778 from privateip/shared_module_iosxr
adds new iosxr shared module for developing modules that work with IO…
2016-01-10 14:23:22 -05:00
Peter Sprygada
41fed323bc Merge pull request #13776 from privateip/shared_module_eos
initial add of eos shared module
2016-01-10 14:19:31 -05:00
Peter Sprygada
7e677899a4 Merge pull request #13775 from privateip/shared_module_shell
adds shared module shell for creating cli based transports
2016-01-10 14:09:43 -05:00
Peter Sprygada
01bf3940e3 adds network config file parser to shared modules
This commit adds a new shared module that parses network device configuration
files.  It is used to build modules that work with the various supported
network device operating systems
2016-01-10 10:47:28 -05:00
Peter Sprygada
e709095f53 initial add of junos shared module
This commit adds a new shared module for working with network devices running
the Juniper Junos operating system.  The commit includes a new document
fragment junos to be used when building modules.  The junos shared module
currently only supports CLI
2016-01-10 10:36:44 -05:00
Thomas Quinot
2eb22d5536 Fix minor typo in comment 2016-01-10 10:27:50 +01:00
Peter Sprygada
3ae6fd4b31 initial add of openswitch shared module
This commit adds a new shared module openswitch for building modules that
work with OpenSwitch.  This shared module supports connectivity to
OpenSwitch devices over SSH, CLI or REST.  It also adds an openswitch
documentation fragment for use in modules
2016-01-09 10:38:48 -05:00
Peter Sprygada
01a99f52a9 adds shared module nxos for building cisco nxos modules
This commit refactors the nxapi into a new shared module nxos that supports
connectivity over both ssh (cli) and nxapi.  It supercedes the nxapi shared
module and removes it from module_utils.  This commit also adds a
documentation fragement supporting the nxos shared module
2016-01-09 09:10:02 -05:00
Brian Coca
c9a5f7ea7e updated self to cls to match convention
tempted to just use this. in all cases
2016-01-08 17:57:09 -05:00
Brian Coca
792db08259 Merge pull request #13772 from bcoca/vars_prompt_fixes
restructure vars_prompt and fix regression
2016-01-08 17:51:48 -05:00
Peter Sprygada
456b3d2c23 adds new iosxr shared module for developing modules that work with IOS XR devices
This commit adds a new shared module for working with Cisco IOS XR devices over
CLI (SSH).  It also provides a documentation fragement for the commmon arguments
provided by the iosxr module.
2016-01-08 14:14:29 -05:00
Peter Sprygada
d1dacfb3ca updates the ios shared module with new shell
This update refactor the ios shared module to use the new shell shared
library instead of issh and cli.  It also adds the ios documentation
fragment to be used when building ios based modules.
2016-01-08 14:14:08 -05:00
Peter Sprygada
87ccc5c869 initial add of eos shared module
This adds a shared module for communicating with Arista EOS devices over
SSH (cli) or JSON-RPC (eapi).  This modules replaces the eapi.py module
previously added to module_utils.  This commit includes a documentation
fragment that describes the eos common arguments
2016-01-08 14:13:48 -05:00
Matt Martz
5f0a348447 Restore ability for a module to specify WANT_JSON 2016-01-08 11:37:28 -06:00
Brian Coca
1cc5ac06e7 restructure vars_prompt and fix regression
pushed it to use the existing propmpt from display and moved the vars prompt code there also for uniformity
changed vars_prompt to check extra vars vs the empty play.vars to restore 1.9 behaviour
sipmlified the code as it didn't need to check for syntax again (tqm is made none prior based on that)
fixes #13770
2016-01-08 11:46:04 -05:00
Brian Coca
737090dd13 now show full callback stacktrace when vvv+
Still is a warning as we don't want to repeat it multiple times nor additional callbacks to stop ansible execution.
hopefully we can avoid shipping w/o exceptions in the default/minimal callbacks...

Also added feature that now allows for 'preformated' strings passed to warning
2016-01-08 10:42:12 -05:00
Peter Sprygada
1d240902c6 adds shared module shell for creating cli based transports
This commit add a new shared module shell that is used to build connections
to network devices that operate in a CLI environment.  This commit supercedes
the issh.py and cli.py commits and removes them from module_utils.
2016-01-08 10:24:44 -05:00
Emil Lind
b0fe705384 Allow InventoryScript JSON with childgroups only
and without hosts and vars

Without this patch, the simplified syntax is triggered when a group
is defined like this:

    "platforms": {
        "children": [
            "cloudstack"
        ]
    }

Which results in a group 'platforms' with 1 host 'platforms'.

more details in https://github.com/ansible/ansible/issues/13655
2016-01-08 13:52:44 +01:00
nitzmahone
45355cd566 convert winrm put_file script template to Unicode string literal
Fixes traceback on homedirs with non-ascii chars
2016-01-07 16:23:55 -08:00
Brian Coca
eb4ab5fa2a Revert "Show version without supplying a dummy action"
This reverts commit 11b55be5bb.
Parsing before action will fail if one of the action specific options is used
As per issue #13743
2016-01-07 08:28:18 -05:00
Brian Coca
b7dcd7a3a0 pass diff and verbosity settings to modules
also simplifies and guarantees that all flags are always passed, even when false
this should make checks simpler as you always expect them to exist
2016-01-07 01:37:19 -05:00
Toshio Kuratomi
d26d76ea58 Fix typo 2016-01-06 15:46:42 -08:00
Toshio Kuratomi
46903c80fa More fixes for unicode handling in the connection plugins.
Tested that ssh, docker, local, lxc-libvirt, chroot all work with the
updated unicode integration test.
2016-01-06 15:19:40 -08:00
James Cammarata
90cb7e1937 Don't drop noops from task counting code in linear strategy 2016-01-06 14:02:33 -05:00
Tomasz Kontusz
9ac9c75d76 linear strategy: don't look at tasks from the next block 2016-01-06 14:02:33 -05:00
Charles Paul
b4ed3a4f52 properly handle addresses on /31 networks 2016-01-06 10:57:52 -06:00
muffl0n
11b55be5bb Show version without supplying a dummy action
fixes #12004
parsing x2 does not seem to break anything
2016-01-06 11:53:33 -05:00
Abhijit Menon-Sen
7c8374e0f8 Strip string terms before templating
The earlier code did call terms.strip(), but ignored the return value
instead of passing that in to templar.template(). Clearly an oversight.
2016-01-06 20:44:19 +05:30
James Cammarata
dc47c25e58 Minor tweak to ensure diff is not empty in callback for file diffs 2016-01-05 22:01:01 -05:00
Charles Paul
a65543bbaf adding password no_log and cleaning up argument spec 2016-01-05 14:52:22 -06:00
Brian Coca
095790ac5c Merge pull request #13691 from bcoca/colors
output color is now configurable
2016-01-05 14:33:01 -05:00
Brian Coca
84f46701d0 Merge pull request #13626 from bcoca/hostvars_vars
move hostvars.vars to vars
2016-01-05 14:32:13 -05:00
Brian Coca
f3c45adfb8 simplified diff handling in callback
no need for the copy or other complexity
2016-01-05 14:26:38 -05:00
Brian Coca
9972c27a9b now handles 'non file diffs'
this allows modules to pass back a 'diff' dict and it will still show using the file interface
2016-01-05 14:26:38 -05:00
Toshio Kuratomi
22d4dc9d85 Merge pull request #13700 from feliksik/shred-vault-tmpfile
[security] shred ansible-vault tmp_file. Also when editor is interruped
2016-01-05 09:25:42 -08:00
Eric Feliksik
11ce08b9dd cleaner implementation and random chunk length. 2016-01-05 18:04:38 +01:00
Toshio Kuratomi
6470f7de2c Update submodule refs 2016-01-05 07:53:22 -08:00
Toshio Kuratomi
c0a8cd950b Fix problems with non-ascii values passed as part of the command to connection plugins
@drybjed discovered this with non-ascii environment variables and
command line arguments to script and raw module.
2016-01-04 20:35:25 -08:00
Toshio Kuratomi
8d57ffd16b Revert "Transform the command we pass to subprocess into a byte string in _low_level-exec_command"
This reverts commit 0c013f592a.

Going to do this in the connection plugin
2016-01-04 19:25:40 -08:00
Toshio Kuratomi
559ba467c0 Revert "Convert to bytes later so that make_become_command can jsut operate on text type."
This reverts commit c4da5840b5.

Going to do this in the connection plugins
2016-01-04 19:25:40 -08:00
Eric Feliksik
151e09d129 use unix shred if possible, otherwise fast custom impl; do not shred encrypted file 2016-01-05 01:43:42 +01:00
Eric Feliksik
1e911375e8 add docs, remove unnecessary int() cast 2016-01-04 18:13:59 +01:00
Michael Scherer
8599c56670 Do not set 'changed' to True when using group_by
Since group_by is not changing in any way to the remote
system, there is no change. This also make things more consistent
with the set_fact plugin.
2016-01-04 17:46:40 +01:00
Eric Feliksik
7193d27acc add os.fsync() so that the shredding data (hopefully) hits the drive 2016-01-04 17:22:18 +01:00
Michel Alexandre Salim
afb2abf980 Make credstash lookup plugin support encryption contexts
Previously, the lookup plugin passes all its keyword arguments to
credstash's `getSecret`; while this works for passing the standard
parameters (version, region and table), this does not allow passing
a dictionary of key-value pairs as `getSecret`'s context parameter.

Instead, pop `version`, `region` and `table` from `kwargs`, supplying
the default value if they are not defined, and pass the rest of the `kwargs`
as the `context` parameter.
2016-01-02 15:23:27 +07:00
James Cammarata
210cf06d9a Tweak how strategies evaluate failed hosts via the iterator and bug fixes
* Added additional methods to the iterator code to assess host failures
  while also taking into account the block rescue/always states
* Fixed bugs in the free strategy, where results were not always being
  processed after being collected
* Added some prettier printing to the state output from iterator

Fixes #13699
2016-01-02 01:00:12 -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
Yannig Perré
c4d2dbfcdb Replace to_string by to_unicode.
Fix https://github.com/ansible/ansible/issues/13707
2016-01-01 15:55:51 +01:00
Thilo Uttendorfer
5c34be15b1 Fix unsupported format character 2015-12-31 02:31:38 +01:00
James Cammarata
e39e8ba308 Fix logic mistake in unarchive action plugin 2015-12-30 13:49:39 -05:00
Eric Feliksik
946b82bef7 shred ansible-vault tmp_file. Also when editor is interruped. 2015-12-30 18:21:34 +01:00
Brian Coca
d3deb24ead output color is now configurable 2015-12-29 17:40:47 -05:00
James Cammarata
2d11cfab92 Squashed commit of the following:
commit 24efa310b58c431b4d888a6315d1285da918f670
Author: James Cammarata <jimi@sngx.net>
Date:   Tue Dec 29 11:23:52 2015 -0500

    Adding an additional test for copy exclusion

    Adds a negative test for the situation when an exclusion doesn't
    exist in the target to be copied.

commit 643ba054877cf042177d65e6e2958178bdd2fe88
Merge: e6ee59f 66a8f7e
Author: James Cammarata <jimi@sngx.net>
Date:   Tue Dec 29 10:59:18 2015 -0500

    Merge branch 'speedup' of https://github.com/chrismeyersfsu/ansible into chrismeyersfsu-speedup

commit 66a8f7e873
Author: Chris Meyers <chris.meyers.fsu@gmail.com>
Date:   Mon Dec 28 09:47:00 2015 -0500

    better api and tests added

    * _copy_results = deepcopy for better performance
    * _copy_results_exclude to deepcopy but exclude certain fields. Pop
    fields that do not need to be deep copied. Re-assign popped fields
    after deep copy so we don't modify the original, to be copied, object.
    * _copy_results_exclude unit tests

commit 93490960ff
Author: Chris Meyers <chris.meyers.fsu@gmail.com>
Date:   Fri Dec 25 23:17:26 2015 -0600

    remove uneeded deepcopy fields
2015-12-29 11:40:18 -05:00
Brian Coca
56454d6a91 added newer vars to 'reset_vars'
these vars pass back info to the task about the connection
moved to their own block at start at file for readability and
added the newer standard vars
2015-12-28 12:25:27 -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
Toshio Kuratomi
d70a97b562 Update submodule refs 2015-12-25 12:17:22 -08:00
Matt Martz
2587edb4f3 Move proxycommand parsing into _parse_proxy_command 2015-12-24 15:10:42 -06:00
Matt Martz
0296209bc1 Parse ansible_ssh_common_args looking for ProxyCommand, for use in paramiko 2015-12-24 15:01:41 -06:00
Matt Martz
a8e0763d1e Move _split_args from ssh.py to ConnectionBase so we can use it in other connection plugins 2015-12-24 15:00:53 -06:00
Toshio Kuratomi
deac4d00b2 bigip changes as requested by bcoca and abadger:
* Fix to error if validate_cert is True and python doesn't support it.
* Only globally disable certificate checking if really needed.  Use
  bigip verify parameter if available instead.
* Remove public disable certificate function to make it less likely
  people will attempt to reuse that
2015-12-24 11:49:31 -08:00
Brian Coca
fd7e01696f updated submodule refs to pick up module changes 2015-12-23 17:16:21 -05:00
Matt Martz
630a35adb0 Add ProxyCommand support to the paramiko connection plugin 2015-12-23 15:15:07 -06:00
Brian Coca
db1d153aca Merge pull request #13647 from bcoca/fix_role_search
corrected role path search order
2015-12-23 15:11:49 -05: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
202b92179d corrected role path search order
the unfraking was matching roles in current dir as it always returns a full path,
pushed to the bottom as match of last resort
fixes #13645
2015-12-22 22:09:45 -05:00
Brian Coca
010839aedc fix no_log disclosure when using aliases 2015-12-22 17:15:58 -05:00
Toshio Kuratomi
c4da5840b5 Convert to bytes later so that make_become_command can jsut operate on text type. 2015-12-22 08:22:02 -08: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
Brian Coca
bbdfaf0522 move hostvars.vars to vars
this fixes duplication under hostvars and exposes all vars in the vars dict
which makes dynamic reference possible on 'non hostvars'
2015-12-22 00:24:35 -05:00
Andrew Gaffney
0f4d1eb051 Add 'filtered' stdout callback plugin
This plugin filters output for any task that is 'ok' or 'skipped'.
It works by subclassing the 'default' stdout callback plugin and
overriding certain functions. It will suppress display of the task
banner until there is a 'changed' or 'failed' result or an
unreachable host.
2015-12-21 22:41:52 +00:00
Toshio Kuratomi
0c013f592a Transform the command we pass to subprocess into a byte string in _low_level-exec_command 2015-12-21 13:53:35 -08:00
Brian Coca
75e94e0cba allow for non standard hostnames
* Changed parse_addresses to throw exceptions instead of passing None
* Switched callers to trap and pass through the original values.
* Added very verbose notice
* Look at deprecating this and possibly validate at plugin instead
fixes #13608
2015-12-21 13:42:34 -05:00
Yannig Perré
a4674906c6 Merge role params into variables separately from other variables
Fixes #13617
2015-12-21 13:03:09 -05:00
James Cammarata
6ae04c1e4f Fix logic in PlayIterator when inserting tasks during rescue/always
Because the fail_state is potentially non-zero in these block sections,
the prior logic led to included tasks not being inserted at all.

Related issue: #13605
2015-12-20 12:39:08 -05:00
James Cammarata
3ec0104128 Fixing bugs in conditional testing with until and some integration runner tweaks 2015-12-19 21:14:48 -05:00
Brian Coca
bb2935549f corrected service detection in docker versions
now if 1 == bash it falls back into tool detection
2015-12-19 16:16:10 -05:00
Toshio Kuratomi
e66c070e5c Add package module to squash list 2015-12-19 13:00:58 -08:00
Toshio Kuratomi
224d596336 Remove args from get_name() as we can't tell if any of the args are no_log 2015-12-19 11:51:16 -08:00
Toshio Kuratomi
8ffc1fa838 Comment to explain why we strip _ansible_notify specially 2015-12-19 11:31:46 -08: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
2936682f00 Revert "removed invocation info as it is not no_log aware"
This reverts commit 6127a8585e.
2015-12-19 11:09:20 -08:00
Brian Coca
6127a8585e removed invocation info as it is not no_log aware
This was added in 1.9 and 2.0 tried to copy, but since it cannot
obey no_log restrictions I commented it out. I did not remove as
it is still very useful for module invocation debugging.
2015-12-19 11:48:48 -05:00
Toshio Kuratomi
07a0059306 update submodule ref for doc fix 2015-12-18 22:23:25 -08:00
Toshio Kuratomi
3197eeaaa8 update submodule refs 2015-12-18 22:16:49 -08:00
James Cammarata
a3dcb910b8 Fixing bugs with {changed,failed}_when and until with registered vars
* Saving of the registered variable was occuring after the tests for
  changed/failed_when.
* Each of the above fields and until were being post_validated too early,
  so variables which were not defined at that time were causing task
  failures.

Fixes #13591
2015-12-18 10:58:55 -05:00
Toshio Kuratomi
3057fc1753 Update submodule ref for mysql_user fix 2015-12-17 13:46:15 -08:00
James Cammarata
4ba7158282 Fixing a mistake from tweaking list stuff too much
Use the action only if the task name is not set
2015-12-17 16:33:23 -05:00
James Cammarata
d4ffc96c80 Further tweaks to the output format of list tasks/tags 2015-12-17 16:30:23 -05:00
James Cammarata
5929ffc7c3 Make --list-tasks respect tags
Also makes the output closer to the appearance of v1

Fixes #13260
2015-12-17 16:10:27 -05:00
Toshio Kuratomi
bad1c173b8 Update core submodule for mysql_db fix 2015-12-17 11:36:36 -08:00
Toshio Kuratomi
1b5e7ce025 Update submodule refs 2015-12-17 10:23:30 -08:00
James Cammarata
e546219426 Revert "Enable host_key checking at the strategy level"
This reverts commit 1a6d660d7e285cceec474952a33af4d8dffd0a8d.
2015-12-17 12:43:47 -05:00
James Cammarata
586208234c Revert "Fixing bugs in ssh known_host fetching"
This reverts commit 21c127c581.
2015-12-17 12:43:47 -05:00
James Cammarata
21c127c581 Fixing bugs in ssh known_host fetching
* If remote_addr is not set in the PlayContext, use the host.address
  field instead (which is how the action plugin works)

Fixes #13581
2015-12-17 12:06:17 -05:00
James Cammarata
d9c74536be Fix handling of environment inheritence, and template each inherited env
Environments were not being templated individually, so a variable environment
value was causing the exception regarding dicts to be hit. Also, environments
as inherited were coming through with the tasks listed first, followed by the
parents, so they were being merged backwards. Reversing the list of environments
fixed this.
2015-12-17 09:44:40 -05:00
James Cammarata
e5c2c03dea Enable host_key checking at the strategy level
Implements a new method in the ssh connection plugin (fetch_and_store_key)
which is used to prefetch the key using ssh-keyscan.
2015-12-16 21:41:07 -05:00
James Cammarata
15135f3c16 Make sure we're using the original host when processing include results
Also fixes a bug where we were passing an incorrect number of parameters to
_do_handler_run() when processing an include file in a handler task/block.

Fixes #13560
2015-12-16 19:13:45 -05:00
James Cammarata
857456ea5f Fixing template integration test for python 2.6 versions
No longer immediately fallback to to_json if simplejson is not installed
2015-12-16 18:22:22 -05:00
Toshio Kuratomi
fd4ad2c8f2 Update submodule ref to fix a bug in mysql_user with mariadb 2015-12-16 14:08:08 -08:00
James Cammarata
8716bf8021 All variables in complex args again
Also updates the CHANGELOG to note the slight change, where bare variables
in args are no longer allowed to be bare variables

Fixes #13518
2015-12-16 16:39:08 -05:00
James Cammarata
76b4b9ed2c Merge pull request #13501 from chouseknecht/galaxy-2.0-update
Galaxy 2.0 update
2015-12-16 15:01:12 -05:00
nitzmahone
baece499df fix plugin loading for Windows modules
force plugin loader to only consider .py files, since that's the only place docs can live ATM...
2015-12-16 11:47:12 -08:00
Toshio Kuratomi
9724117bbb Update submodule refs for mysql refactor 2015-12-16 11:15:39 -08:00
Toshio Kuratomi
1116bc6ca6 Merge pull request #13191 from Jmainguy/mysql
Add shared connection code for mysql modules
2015-12-16 10:47:49 -08:00
Jonathan Mainguy
34e88e48a5 Add shared connection code for mysql modules 2015-12-16 13:36:18 -05:00
James Cammarata
6a252a3f77 Preserve the cumulative path for checking includes which have parents
Otherwise, each relative include path is checked on its own, rather
than in relation to the (possibly relative) path of its parent, meaning
includes multiple level deep may fail to find the correct (or any) file.

Fixes #13472
2015-12-16 11:23:06 -05:00
Toshio Kuratomi
0095d04af9 Update submodule refs 2015-12-16 08:02:46 -08:00
Toshio Kuratomi
7d519127fe Merge pull request #13573 from ansible/ssl-context-with-proxy
Fix a few problems with url handling.
2015-12-16 08:00:59 -08:00
Toshio Kuratomi
33863eb653 Conditionally create the CustomHTTPSConnection class only if we have the required baseclasses.
Fixes #11918
2015-12-16 07:47:09 -08:00
Toshio Kuratomi
72a0654b81 Fixes for proxy on RHEL5 2015-12-16 07:47:07 -08:00
Toshio Kuratomi
73ead4fbba First attempt to fix https certificate errors through a proxy with python-2.7.9+
Fixes #12549
2015-12-16 07:46:54 -08:00
Brian Coca
97275110d7 Merge pull request #13533 from bcoca/debug_fixes
debug now validates its params
2015-12-16 10:36:20 -05:00
James Cammarata
fcc9258b74 Use the original host rather than the serialized one when processing results
Fixes #13526
Fixes #13564
Fixes #13566
2015-12-16 01:48:22 -05:00
Toshio Kuratomi
d203438a2c Merge pull request #13554 from Yannig/devel_fix_python3_tests
Use six lib to import urlparse properly.
2015-12-15 07:55:56 -08:00
Brian Coca
be5488cb60 clean debug output to match prev versions 2015-12-15 09:27:53 -05:00
Brian Coca
a0842781a6 renamed ssh.py shared module file to clarify 2015-12-15 08:45:12 -05:00
Yannig Perré
be4d1f9ee3 Fix a part of python 3 tests (make tests-py3, see https://github.com/ansible/ansible/issues/13553 for more details). 2015-12-15 13:37:35 +01:00
Peter Sprygada
27cd7668c1 the ssh shared module will try to use keys if the password is not supplied
The current ssh shared module forces only password based authentication.  This
change will allow the ssh module to use keys if a password is not provided.
2015-12-15 07:16:28 -05:00
Toshio Kuratomi
8d16638fec Fix for template module not creating a file that was not present when force=false 2015-12-14 10:55:21 -08:00
Michael Scherer
a7ac98262d Make module_utils.known_hosts.get_fqdn work on ipv6 2015-12-14 19:30:54 +01:00
Toshio Kuratomi
c9eb41109f Update submodule refs 2015-12-14 08:03:56 -08:00
James Cammarata
80d23d639c Use an octal representation that works from 2.4->3+ for known_hosts 2015-12-14 10:43:30 -05:00
James Cammarata
6312e38133 Fixing up some non-py3 things for unit tests 2015-12-14 10:35:58 -05:00
Brian Coca
2a37f11738 Merge pull request #13542 from h0nIg/devel_default_ask
ansible vault, ask pass: use default settings from ansible.cfg
2015-12-14 09:14:48 -05:00
Hans-Joachim Kliemeck
f5f9b2fd35 use default settings from ansible.cfg 2015-12-14 15:04:31 +01:00
James Cammarata
f8ff63f8c8 A few tweaks to improve new forking code 2015-12-14 03:06:52 -05:00
Brian Coca
175c2d6510 Merge pull request #13502 from robinro/patch-3
use shallow clones by default in ansible-pull
2015-12-13 09:31:35 -05:00
Toshio Kuratomi
2bc3683d41 Restore comment about for-else since it is an uncommon idiom 2015-12-13 05:55:31 -08:00
chouseknecht
06dde0d332 Fixed documentation typos and bits that needed clarification. Fixed missing spaces in VALID_ACTIONS. 2015-12-13 05:23:04 -05:00
chouseknecht
342dee0023 Define and handle ignore_certs correctly. Preserve search term order. Tweak to Galaxy docsite. 2015-12-13 05:23:04 -05:00
chouseknecht
bc73920090 Updated ansible-galaxy man page. Removed -b option for import. 2015-12-13 05:23:04 -05:00
chouseknecht
d8e6bc98a2 Fix overloaded options. Show an error when no action given. Don't show a helpful list of commands and descriptions. 2015-12-13 05:23:04 -05:00
Robin Roth
1bd8d97093 fix whitespace 2015-12-13 11:19:50 +01:00
Robin Roth
1b2ebe8def make shallow clone the default for ansibel-pull 2015-12-13 10:56:47 +01:00
Brian Coca
d73562902b debug now validates its params
simplified var handling
made default message the same as in pre 2.0
fixes #13532
2015-12-13 00:13:13 -05:00
Brian Coca
f3bedbae29 simplified skippy
thanks agaffney!
2015-12-12 17:50:55 -05:00
Brian Coca
99e46440bd changed shell delimiters for csh
fixes #13459
2015-12-12 16:10:18 -05:00
Brian Coca
8e445c551a removed unused imports in galaxy/cli 2015-12-12 13:43:10 -05:00
James Cammarata
120b9a7ac6 Changing the way workers are forked 2015-12-11 23:35:07 -05:00
Brian Coca
ae988ed753 avoid set to unique hosts to preserver order
swiched to using a list comp and set to still unique but keep expected order
fixes #13522
2015-12-11 15:38:04 -05:00
Brian Coca
de71171fc2 removed merge conflict 2015-12-11 15:11:26 -05:00
James Cammarata
7f7e730dea Don't mark hosts failed if they've moved to a rescue portion of a block
Fixes #13521
2015-12-11 14:55:44 -05:00
Brian Coca
d9e510b192 narrow down exception catching in block builds
this was obscuring other errors and should have always been narrow scope
2015-12-11 13:13:05 -05:00
Chrrrles Paul
e56efa49c4 Merge pull request #13509 from chrrrles/vca_default_host
fix default host for non vcd service types
2015-12-11 10:17:55 -05:00
Abhijit Menon-Sen
37c4e9aee3 Clean up debug logging around _low_level_execute_command
We were logging the command to be executed many times, which made debug
logs very hard to read. Now we do it only once.

Also makes the logged ssh command line cut-and-paste-able (the lack of
which has confused a number of people by now; the problem being that we
pass the command as a single argument to execve(), so it doesn't need an
extra level of quoting as it does when you try to run it by hand).
2015-12-11 07:11:48 +05:30
Charles Paul
a6a58d6947 fix default host for non vcd service types 2015-12-10 16:39:27 -05:00
Toshio Kuratomi
bd9582d072 Update submodule refs 2015-12-10 08:10:45 -08:00
Toshio Kuratomi
1dda8158ff become_pass needs to be bytes when it is passed to ssh.
Fixes #13240
2015-12-10 07:29:38 -08:00
Charles Paul
6680cc7052 allow custom callbacks with adhoc cli for scripting
missing import of CallbackBase
2015-12-10 09:49:54 -05:00
Robin Roth
c20c1a6d49 add depth option to ansible-pull
Allows shallow checkouts in ansible-pull by adding `--depth 1` (or higher number)
2015-12-10 11:16:21 +01:00
James Cammarata
2b36343451 Missed one place we were appending the incorrectly escaped item to raw params 2015-12-09 17:58:44 -05:00
Toshio Kuratomi
62cbc03af6 Revert "Remove the funcd connection plugin"
This reverts commit c0d79cf7e1.

We may still port the funcd connection plugin, just not in time for
2.0.0
2015-12-09 13:32:11 -08:00
James Cammarata
30b6dd8bcd Merge pull request #13495 from Yannig/devel_debug_null_error
Do not fail when variable is not correct in debug action.
2015-12-09 16:27:05 -05:00
Yannig Perré
18ac12aee6 Do not fail when variable is not correct in debug action.
See https://github.com/ansible/ansible/issues/13484 for more information.
2015-12-09 22:08:30 +01:00
Toshio Kuratomi
c0d79cf7e1 Remove the funcd connection plugin 2015-12-09 13:07:00 -08:00
Brian Coca
64864829c4 changed deprecation to removal warning 2015-12-09 12:37:56 -08:00
Toshio Kuratomi
61dc4a7e67 Update module refs 2015-12-09 12:10:21 -08:00
James Cammarata
14e19c239d Make on_file_diff callback item-aware 2015-12-09 14:52:53 -05:00
Brian Coca
04d74fd680 reenabled --tree for ansible adhoc command
previous fix to avoid callbacks now conflicted with tree optoin
which is implemented as a callback in 2.0
2015-12-09 10:13:50 -08:00
Brian Coca
7936a4687e adhoc avoids callbacks by default as it did before
Previous emptying of whitelist only affected callbacks that were
constructed for need whitelist. This now works for all callbacks.
2015-12-09 10:01:21 -08:00
Brian Coca
ae2447df91 attribute defaults that are containers are a copy
This is simpler way to prevent persistent containers across instances
of classes that use field attributes
2015-12-09 08:40:06 -08:00
Brian Coca
2bfb13bfb3 removed unused 'pattern' from ansible.cfg
also moved the config param to a 'deprecated' list in constants.py
added TODO for producing a deprecation warning for such vars
2015-12-09 08:40:06 -08:00
Brian Coca
2820b4c243 removed default from hosts to make it requried
prevents writing a play w/o a hosts entry which would default to
all/empty
2015-12-09 08:40:06 -08:00
Brian Coca
c64298de02 Revert "avoid persistent containers in attribute defaults"
This reverts commit 87969868d4.
found better way to do it
2015-12-09 08:40:06 -08:00
James Cammarata
332a008273 Merge pull request #13489 from chouseknecht/galaxy-2.0
Galaxy 2.0
2015-12-09 11:29:20 -05:00
chouseknecht
4f84769a17 Galaxy 2.0 2015-12-09 10:51:12 -05:00
Brian Coca
87969868d4 avoid persistent containers in attribute defaults
moved from the field attribute declaration and created a placeholder
which then is resolved in the field attribute class.

this is to avoid unwanted persistent of the defaults across objects which introduces
stealth bugs when multiple objects of the same kind are used in succession while
not overriding the default values.
2015-12-09 07:29:36 -08:00
Brian Coca
0719eb3e2d clarified warning from tree callback 2015-12-09 07:29:12 -08:00
Brian Coca
d82d65ee7b keep string type filters as strings
now we don't try to convert types if using a filter that outputs a specifically formated string
made list of filters configurable
2015-12-08 12:52:20 -08:00
James Cammarata
1799de8528 Preserve original token when appending to _raw_params in parse_kv
Fixes #13311
2015-12-08 15:06:36 -05:00
Brian Coca
795fac917e fixed typo in tree callback, added default dir
this would allow it to work with playbooks also
2015-12-08 11:59:04 -08:00
James Cammarata
398f6bbb89 Fix typo from 5ae850c 2015-12-08 14:36:36 -05:00
James Cammarata
de690445bc Make fact delegating configurable, defaulting to 1.x behavior 2015-12-08 14:36:33 -05:00
Brian Coca
7ffd578a9d Revert "Fix always_run support in the action plugin for template when copying"
This reverts commit 9c4eae5253.
2015-12-08 09:24:20 -08:00
Brian Coca
d4ccb0be59 have always_run override check mode for a task
Fixes #13418
2015-12-08 09:24:07 -08:00
James Cammarata
9c4eae5253 Fix always_run support in the action plugin for template when copying
Fixes #13418
2015-12-08 11:56:39 -05:00
David L Ballenger
cdc3c88018 Merge remote-tracking branch 'ansible/devel' into issue_13438 2015-12-08 07:42:49 -08:00
Peter Sprygada
2d5b4b1799 Merge pull request #13273 from privateip/nxapi
adds new device argument to nxapi command arguments
2015-12-08 10:24:07 -05:00
David L Ballenger
970d7cadb7 Add ssh_host support for MacOSX El Capitan.
OS X El Capitan moved the /etc/ssh_* files into /etc/ssh/. This fix
adds a distribution version check for Darwin to set the keydir
appropriately on El Capitan and later.
2015-12-08 07:11:02 -08:00
Brian Coca
9ae1dede03 adhoc does not load plugins by default
reimplemented feature from 1.x which kept additional callbacks from
poluting adhoc unless specifically asked for through configuration.
2015-12-08 06:37:57 -08:00
Brian Coca
17b334d4a5 Merge pull request #13450 from privateip/feature_ios_shared_module
bugfix for ios.py shared module argument creation
2015-12-07 09:59:04 -05:00
James Cammarata
540cbe0f64 Merge pull request #13445 from n-st/tasks-string-repr
More meaningful string representation for meta tasks (like 'noop' and 'flush_handlers')
2015-12-07 08:10:54 -05:00
James Cammarata
2884ff3932 Merge pull request #13455 from Yannig/devel_fix_debug_var_when_content_same_as_name
Fix issue when var name is the same as content.
2015-12-07 08:02:22 -05:00
Yannig Perré
2c8eee956f Fix issue when var name is the same as content.
See https://github.com/ansible/ansible/issues/13453 for more details.
2015-12-07 09:25:37 +01:00
Toshio Kuratomi
4d637e5780 Use self.args when we parse arguments that way the arguments can be constructed manually 2015-12-06 22:17:47 -08:00
Toshio Kuratomi
a8e015cc22 Add representers so we can output yaml for all the types we read in from yaml 2015-12-06 22:17:47 -08:00
Peter Sprygada
41773630ed adds new device argument to nxapi command arguments
The device argument allows a dict of nxapi parameters to be passed to
the module to simplify passing the nxapi parameters
2015-12-05 22:51:40 -05:00
Brian Coca
8607aa527d Merge pull request #13446 from lberruti/no_target_syslog
Make no_target_syslog consistent.
2015-12-05 16:08:00 -05:00
Brian Coca
955710267c only set become defaults at last possible moment
tasks were overriding commandline with their defaults, not with the
explicit setting, removed the setting of defaults from task init and
pushed down to play context at last possible moment.
fixes #13362
2015-12-05 16:03:50 -05:00
Luca Berruti
8ea45e8608 Make no_target_syslog consistent.
no_target_syslog = False --> do log on target
2015-12-05 19:43:02 +01:00
Brian Coca
f89f906f87 simplified get_hosts code to have 1 retrun point 2015-12-05 10:10:25 -05:00
Nils Steinger
a1f6d17e37 More meaningful string representation for meta tasks (like 'noop' and 'flush_handlers') 2015-12-05 15:55:39 +01:00
Nils Steinger
0129fb0a44 Remove duplicates from host list *before* caching it
Ansible previously added hosts to the host list multiple times for commands
like `ansible -i 'localhost,' -c local -m ping 'localhost,localhost'
--list-hosts`.
8d5f36a fixed the obvious error, but still added the un-deduplicated list to a
cache, so all future invocations of get_hosts() would retrieve a
non-deduplicated list.
This caused problems down the line: For some reason, Ansible only ever
schedules "flush_handlers" tasks (instead of scheduling any actual tasks from
the playbook) for hosts that are contained in the host lists multiple times.
This probably happens because the host states are stored in a dictionary
indexed by the hostnames, so duplicate hostname would cause the state to be
overwritten by subsequent invocations of … something.
2015-12-05 15:54:08 +01: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
0434644d12 Transform exceptions into ansible messages via to_unicode instead of str to avoid tracebacks.
Fixes #13385
2015-12-04 11:50:39 -08:00
James Cammarata
84507aedd4 Adding a uuid field so we can track host equality across serialization too 2015-12-04 13:33:27 -05:00
James Cammarata
750adbaa27 Changing up how host (in)equality is checked
Fixes #13397
2015-12-04 12:57:46 -05:00
Toshio Kuratomi
e385c91fa5 Update submodule refs# 2015-12-04 09:57:06 -08:00
Brian Coca
d5446f9804 fixed ansible-pull broken options
* sudo was not working, now it supports full become
* now default checkout dir works, not only when specifying
* paths for checkout dir get expanded
* fixed limit options for playbook
* added verbose and debug info
2015-12-03 20:47:02 -08:00
Brian Coca
e1c62fb5af reverted to previous pull checkout dir behaviour
This fixes bugs with not finding plays when not specifying checkout dir
Also makes it backwards compatible
2015-12-03 19:42:05 -08:00
Brian Coca
8d5f36a6c2 return unique list of hosts 2015-12-03 19:39:57 -08:00
Thomas Steinbach
349fb42f54 Allow setup of docker remote connections 2015-12-04 03:24:44 +01:00
Brian Coca
a1f516824e corrected playbook path, reformated options help
the last just to make the help consistent and readable
2015-12-03 18:23:53 -08:00
Brian Coca
26520442bd Now and/or shell expressions depend on shell plugin
This should fix issues with fish shell users as && and || are
not valid syntax, fish uses actual 'and' and 'or' programs.
Also updated to allow for fish backticks pushed quotes to subshell,
fish seems to handle spaces w/o them.
Lastly, removed encompassing subshell () for fish compatibility.
fixes #13199
2015-12-03 16:38:34 -08:00
James Cammarata
f467f1770f Properly compare object references for Hosts when adding new ones
Fixes #13397
2015-12-03 15:25:54 -05:00
James Cammarata
4426b7f6e0 fix sorting of groups for host vars
Fixes #13371
2015-12-03 14:23:02 -05:00
Brian Coca
7d073bdd17 Merge pull request #13345 from amenonsen/extract
Add an 'extract' filter
2015-12-03 11:19:06 -08:00
Peter Sprygada
29f5c5db71 bugfix for ios.py shared module argument creation
This patch fixes a bug in module_utils/ios.py where the the wrong shared
module arguments are being generated.  This bug prevented the shared module
from operating correctly.  This patch should be generally applied.
2015-12-03 12:53:07 -05:00
James Cammarata
5f83a6aeda Properly default remote_user for delegated-to hosts
Fixes #13323
2015-12-03 11:31:33 -05:00
Toshio Kuratomi
e201a255d1 Revert "Make sudo+requiretty and ANSIBLE_PIPELINING work together"
This reverts commit f488de8599.

Reverting for now due to hard to pin down bugs: #13410  #13411
2015-12-03 08:01:05 -08:00
Toshio Kuratomi
9b81c35d06 Don't compare or merge str with unicode
Fixes #13387
2015-12-02 20:53:50 -08:00
James Cammarata
a183972477 Don't use play vars in HostVars
Fixes #13398
2015-12-02 14:16:47 -05:00
James Cammarata
8ff67e0494 Default msg param to AnsibleError to avoid serialization problems 2015-12-02 14:16:47 -05:00
James Cammarata
5f1f2acfea Merge pull request #13405 from sivel/v2-playbook-on-start
Get v2_playbook_on_start working
2015-12-02 12:40:24 -05:00
Matt Martz
384b2e0234 Get v2_playbook_on_start working
* Move self._tqm.load_callbacks() earlier to ensure that v2_on_playbook_start can fire
* Pass the playbook instance to v2_on_playbook_start
* Add a _file_name instance attribute to the playbook
2015-12-02 11:29:51 -06:00
Brian Coca
7708661270 Merge pull request #13402 from amenonsen/expandpath
Use CLI.expand_tilde also for the vault --output file
2015-12-02 09:23:46 -08:00
Brian Coca
94d2958e1f Merge pull request #13403 from amenonsen/module-lang
Make module_lang default to whatever LANG is set to on the control node
2015-12-02 09:06:57 -08:00
Abhijit Menon-Sen
0d16d16ab8 Make module_lang default to whatever LANG is set to on the control node 2015-12-02 22:25:10 +05:30
Abhijit Menon-Sen
fac7626230 Use CLI.expand_tilde also for the vault --output file 2015-12-02 22:08:37 +05:30
Matt Martz
ce54a59cdc Catch additional assertion errors for load_list_of_blocks 2015-12-02 10:35:20 -06:00
Brian Coca
53cd802251 better error on invalid task lists 2015-12-02 08:14:20 -08:00
James Cammarata
f7dc5a9515 Minor tweak and comment addition to 974a0ce3 2015-12-02 09:11:08 -05:00
James Cammarata
f1d53a87e5 Merge pull request #13394 from Christoph-D/issue-13370
Fix #13370
2015-12-02 08:57:09 -05:00
Abhijit Menon-Sen
8cf1815867 Add an 'extract' filter
At its most basic, this is nothing more than an array or hash lookup,
but when used in conjunction with map, it is very useful. For example,
while constructing an "ssh-keyscan …" command to update known_hosts on
all hosts in a group, one can get a list of IP addresses with:

    groups['x']|map('extract', hostvars, 'ec2_ip_address')|list

This returns hostvars[a].ec2_ip_address, hostvars[b].ec2_ip_address, and
so on. You can even specify an array of keys for a recursive lookup, and
mix string and integer keys depending on what you're looking up:

    ['localhost']|map('extract', hostvars, ['vars','group_names',0])|first
        == hostvars['localhost']['vars']['group_names'][0]
            == 'ungrouped'

Includes documentation and tests.
2015-12-02 18:16:38 +05:30
Abhijit Menon-Sen
22381be253 Bump version in devel now that stable-2.0 has been branched 2015-12-02 17:57:53 +05:30
Christoph Dittmann
267199fdd5 Update debug messages and comments
The comment was taken literally from lib/plugins/strategy/linear.py and
makes no sense in free.py where we have no noop tasks.

Also update the debug messages.
2015-12-02 11:17:24 +01:00
Christoph Dittmann
c6e400fbea Fix issue #13370
all_blocks is referenced after the loop over included_files, so it needs
to be initialized before this loop, not inside.
2015-12-02 11:17:24 +01:00
Christoph Dittmann
9a6ae1d62a Let PlayIterator.add_tasks accept empty task lists
PlayIterator.add_tasks raised an error when trying to add an empty task
list.  This was the root cause of ansible issue #13370.
2015-12-02 11:17:24 +01:00
Brian Coca
b92cb93539 unconditionally set vars on init to avoid issues with var precedence 2015-12-01 21:24:46 -08:00
Peter Sprygada
2491afc8b6 fixes a syntax issue with module_utils/eapi.py
This patch fixes an issue with the common args dict in the eapi shared
module.  This patch is required for the eapi shared module to be properly
imported and is therefore should be applied to all instances.
2015-12-01 23:34:59 -05:00
Brian Coca
8c630406c9 Merge pull request #13357 from privateip/feature_ssh_shared_module
initial add of ssh shared module.
2015-12-01 19:15:03 -08:00
Brian Coca
923b5467e3 Merge pull request #13354 from privateip/feature_eapi
adds device common argument to shared module
2015-12-01 19:14:07 -08:00
Brian Coca
574d7be8d5 Merge pull request #13358 from privateip/feature_ios_shared_module
Feature ios shared module
2015-12-01 19:04:24 -08:00
Peter Sprygada
93cd7a2a5f adds module create function for eapi.py shared module
This commit changes the way modules create an instance of AnsibleModule to
now use a common function, eapi_module.  This function will now automatically
append the common argument spec to the module argument_spec.  Module
arguments can override common module arguments
2015-12-01 20:00:41 -05:00
Peter Sprygada
8638e0ccf8 initial add of the ios shared module
This adds shared module support for building modules that connect to Cisco
IOS devices.  It builds on the module_utils/ssh.py shared module.
2015-12-01 19:55:41 -05:00
Brian Coca
3e01516783 fixed signature for init on callbacks
also removed passing display to base class which already handles this
2015-12-01 14:06:54 -08:00
nitzmahone
c94509f273 allow shell plugin to affect remote module filename
Fix for 13368, added get_remote_filename to shell plugins, powershell version appends .ps1 if necessary, base shell plugin no-ops
2015-12-01 13:39:02 -08:00
Abhijit Menon-Sen
f488de8599 Make sudo+requiretty and ANSIBLE_PIPELINING work together
Pipelining is a *significant* performance benefit, because each task can
be completed with a single SSH connection (vs. one ssh connection at the
start to mkdir, plus one sftp and one ssh per task).

Pipelining is disabled by default in Ansible because it conflicts with
the use of sudo if 'Defaults requiretty' is set in /etc/sudoers (as it
is on Red Hat) and su (which always requires a tty).

We can (and already do) make sudo/su happy by using "ssh -t" to allocate
a tty, but then the python interpreter goes into interactive mode and is
unhappy with module source being written to its stdin, per the following
comment from connections/ssh.py:

        # we can only use tty when we are not pipelining the modules.
        # piping data into /usr/bin/python inside a tty automatically
        # invokes the python interactive-mode but the modules are not
        # compatible with the interactive-mode ("unexpected indent"
        # mainly because of empty lines)

Instead of the (current) drastic solution of turning off pipelining when
we use a tty, we can instead use a tty but suppress the behaviour of the
Python interpreter to switch to interactive mode. The easiest way to do
this is to make its stdin *not* be a tty, e.g. with cat|python.

This works, but there's a problem: ssh will ignore -t if its input isn't
really a tty. So we could open a pseudo-tty and use that as ssh's stdin,
but if we then write Python source into it, it's all echoed back to us
(because we're a tty). So we have to use -tt to force tty allocation; in
that case, however, ssh puts the tty into "raw" mode (~ICANON), so there
is no good way for the process on the other end to detect EOF on stdin.
So if we do:

    echo -e "print('hello world')\n"|ssh -tt someho.st "cat|python"

…it hangs forever, because cat keeps on reading input even after we've
closed our pipe into ssh's stdin. We can get around this by writing a
special __EOF__ marker after writing in_data, and doing this:

    echo -e "print('hello world')\n__EOF__\n"|ssh -tt someho.st "sed -ne '/__EOF__/q' -e p|python"

This works fine, but in fact I use a clever python one-liner by mgedmin
to achieve the same effect without depending on sed (at the expense of a
much longer command line, alas; Python really isn't one-liner-friendly).

We also enable pipelining by default as a consequence.
2015-12-01 23:32:20 +05:30
Toshio Kuratomi
50553bc2ba _connect no longer takes a port argument 2015-12-01 09:12:25 -08:00
Brian Coca
f1fcab4610 ignore password flags in become conflict check
since all the --ask pass options end up triggering the same code
and are functionally equivalent, ignore them when it comes to checking
privilege escalation conflicts. This allows using -K when --become-method=su
and so on.
2015-12-01 08:18:31 -08:00
Brian Coca
a6f6a80caa avoid inheritance issues with default=dict declaration at class level
this should avoid the issue of subsequent plays not prompting for a var
prompted for in a previous play.
2015-12-01 08:18:31 -08:00
Toshio Kuratomi
30094912eb boto is expecting that we pass it unicode strings.
The secret_key parameter especially can contain non-ascii characters and
will throw an error if such a string is passed as a byte str.

Potential fix for #13303
2015-12-01 07:03:57 -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
ba4e571029 Update submodule refs to go along with the StandardError change in ec2 moudles 2015-11-30 19:05:33 -08:00
Toshio Kuratomi
19d5759771 raise AnsibleAWSError instead of StandardError.
* StandardError doesn't exist in python3
* because it is the root of builtin expections, we can't catch it
  separate from the builtin exceptions
* It doesn't tell us anything about the error being thrown as it's too
  generic
2015-11-30 19:05:33 -08:00
James Cammarata
dc0fae1af7 Also make sure remote_user is defaulted correctly for delegated hosts
Fixes #13323
2015-11-30 16:15:14 -05:00
Toshio Kuratomi
e2ddc2f6ab Call the function :-)
Fixes #13330
2015-11-30 12:34:20 -08:00
James Cammarata
cc36eedf76 Ensure port is (re)set for delegated-to hosts
Fixes #13265
2015-11-30 14:40:23 -05:00
Brian Coca
b5f2c3def2 fixed typo 2015-11-30 09:20:59 -08:00
Brian Coca
eefb4931dd allow for bad stdout return from make temp dir command
fixes #13359
2015-11-30 09:19:16 -08:00
Brian Coca
005b17afec corrected become_methods class variable in winrm
This should now correctly react when using become with winrm
fixes #13331
2015-11-30 08:35:08 -08:00
James Cammarata
80db6bacc4 Make sure run_once tasks properly set variables for all active hosts
Fixes #13267
2015-11-30 11:27:05 -05:00
James Cammarata
fbc9553bd4 Use text_type instead of unicode 2015-11-30 10:33:36 -05:00
James Cammarata
c6a30f7000 Make sure the uuid in vars is string 2015-11-30 10:26:12 -05:00
James Cammarata
f926e81782 Re-implement lookup wantlist
Fixes #13285
2015-11-29 23:45:54 -05:00
James Cammarata
dfa576b037 Merge pull request #13307 from Yannig/devel_fix_big_include_vars
Fix for https://github.com/ansible/ansible/issues/13221
2015-11-29 23:14:03 -05:00
Peter Sprygada
c087160652 initial add of ssh shared module.
This ssh shared module is used for building modules that require an
interactive shell environment such as those required for connecting
to network devices
2015-11-29 21:48:52 -05:00
James Cammarata
6671d78f95 Tweak location of stats callback execution and properly relocate stats output code 2015-11-28 14:03:21 -05:00
James Cammarata
ea23159be4 Merge pull request #13348 from emonty/bug/iterate-on-none
Put in trap for args being None
2015-11-28 13:44:09 -05:00
Monty Taylor
d20e67d708 Put in trap for args being None
_normalize_old_style_args can return None. If it does, the loop
"for args in args" blows up.
2015-11-28 13:38:11 -05:00
James Cammarata
800811a15f Trigger on_stats just once, not once for each play
Fixes #13271
2015-11-28 13:37:43 -05:00
James Cammarata
a7f7f8bd29 Merge pull request #13297 from amenonsen/ssh-escalation
Explicitly accept become_success in awaiting_prompt state
2015-11-28 10:03:00 -05:00
James Cammarata
5b6162a166 Re-adding role_name/role_uuid variables 2015-11-28 09:08:24 -05:00
James Cammarata
8d9835c40b Merge pull request #13342 from Yannig/devel_fix_bomb_shell
Devel fix bomb shell
2015-11-28 09:02:12 -05:00
Yannig Perré
5227c6bb52 Do not copy variable_manager each time. Instead, keep host and local variable_manager sync.
Fix https://github.com/ansible/ansible/issues/13221
2015-11-28 14:58:33 +01:00
Yannig Perré
2fc7c8b460 More restrictive test against variable name to allow setting variable starting with _. 2015-11-28 10:35:06 +01:00
Brian Coca
fa358d9d61 avoids prompting for vars during syntax check
fixes #13319
2015-11-27 11:41:00 -08:00
Yannig Perré
2c54fb1339 Switch parameters validation after parsing in order to be more consistent between old and new style. 2015-11-26 13:33:58 +01:00
Abhijit Menon-Sen
f20e2630b0 Explicitly accept become_success in awaiting_prompt state
If we request escalation with a password, we start in expecting_prompt
state. If the escalation then succeeds without the password, i.e., the
become_success response arrives, we must explicitly move into the next
state (awaiting_escalation, which immediately goes into ready_to_send),
so that we no longer try to apply the timeout.

Otherwise, we would leak the success notification and eventually
timeout. But if the module response did arrive before the timeout
expired, the "process has already exited" test would do the right
thing by accident (which is why it didn't fail more often).

Fixes #13289
2015-11-26 06:06:01 +05:30
Toshio Kuratomi
1b743436b9 Do not double transform to unicode 2015-11-25 07:48:52 -08:00
Chrrrles Paul
157230c3e8 Merge pull request #13257 from chrrrles/utf8
fixing error with using non-ascii values for ask-sudo-password
2015-11-25 11:52:17 +09:00
Charles Paul
1e5a205389 fixing errors with utf-8 values
removing utf-8 stanza

changing cast to binary_type instead

using to_unicode
2015-11-25 11:47:25 +09:00
Brian Coca
71fe49ee3a Merge pull request #13247 from bcoca/fetch_fixes
fixes to fetch action module
2015-11-24 10:55:23 -08:00
Brian Coca
7244b5ae49 added missing : 2015-11-25 10:52:42 -08:00
Brian Coca
0ec60ac09b added missing events to base class 2015-11-25 10:49:03 -08:00
James Cammarata
70de8bc96f Fix ssh state issues by simply assuming it's never connected 2015-11-24 12:00:37 -05:00
James Cammarata
65747285a4 Properly check for prompting state when re-using ssh connection
Fixes #13278
2015-11-24 09:09:54 -05:00
James Cammarata
96fcfe45d0 Merge pull request #13264 from Yannig/devel_debug_var_list_or_dict
Allow debug var parameter to accept a list or dict.
2015-11-23 16:47:45 -05:00
Yannig Perré
5fa49a9ad8 Use to_unicode instead of str() 2015-11-23 22:04:55 +01:00
James Cammarata
679488fdb5 Merge pull request #13239 from sysreq0/devel
We should give pipes.quote() a string every time
2015-11-23 14:27:26 -05:00
James Cammarata
53e86f3130 Merge pull request #13261 from cchurch/with_items_reuse_connection
Modify task executor to reuse connections inside a loop.
2015-11-23 13:57:12 -05:00
James Cammarata
e06b107d2d Template (and include vars) PlaybookInclude paths
Fixes #13249
2015-11-23 11:54:06 -05:00
Chris Church
272778f732 Modify task executor to reuse connection inside a loop. Fix WinRM connection to set _connected properly and display when remote shell is opened/closed. Add integration test using raw + with_items. 2015-11-23 11:53:05 -05:00
Toshio Kuratomi
adf2d53fa2 Update submodule refs 2015-11-23 08:41:19 -08:00
Yannig Perré
0480b44f50 Allow debug var parameter to accept a list or dict. Fix https://github.com/ansible/ansible/issues/13252 2015-11-23 16:58:24 +01:00
Brian Coca
478c6c756a marked spot that should send per item reulsts 2015-11-22 14:44:51 -08:00
Brian Coca
fb96748d7c fixes to fetch action module
* now only runs remote checksum when needed (fixes #12290)
 * unified return points to simplify program flow
2015-11-22 09:52:34 -08:00
Toshio Kuratomi
2631a8e6e4 Update extras to fix docs build 2015-11-20 14:14:12 -08:00
Toshio Kuratomi
8fd15ae2a3 Merge pull request #13217 from ansible/more-strict-plugin-lookup
Fix non-module plugins picking up files that did not end in .py.
2015-11-20 13:50:45 -08:00
Toshio Kuratomi
77c83fd520 Commit submodule refs to the devel HEAD 2015-11-20 12:46:22 -08:00
Toshio Kuratomi
664c7980a2 Update submodule refs 2015-11-20 12:42:44 -08:00
Sebastien Couture
087dbc1ed5 We should give pipes.quote() a string every time 2015-11-20 12:58:50 -05:00
Toshio Kuratomi
591c81e95f Docker cp sets file ownership to root:root so we can't use it.
Fixes #13219
2015-11-20 07:45:00 -08:00
Toshio Kuratomi
d75e707af5 Simplify code a little 2015-11-19 09:55:06 -08:00
Toshio Kuratomi
72558f7ecd Merge pull request #13074 from joernheissler/patch-13073
Use ansible_host in synchronize module
2015-11-19 09:51:43 -08:00
Toshio Kuratomi
c86120cea6 Fix non-module plugins picking up files that did not end in .py.
This was caused by accessing the cache using the passed in mod_type
rather than the suffix that we calculate with knowledge of whether this
is a module or non-module plugin.
2015-11-19 09:39:37 -08:00
James Cammarata
c97c101bd3 Merge pull request #13209 from nitzmahone/winrm_put_file
fast winrm put_file without size restrictions
2015-11-19 09:58:06 -05:00
James Cammarata
8a0d2e0ef2 Submodule pointer update 2015-11-19 09:08:49 -05:00
James Cammarata
91500f8f5f Fix include param precedence in variable manager 2015-11-19 09:01:51 -05:00
James Cammarata
78e4f176e6 Return skipped/failed async results directly
Fixes #13205
2015-11-19 08:30:00 -05:00
James Cammarata
3b16ad973c Merge pull request #13201 from ma82/patch-1
Fix DataLoader's docstring
2015-11-19 08:13:02 -05:00
Marius Gedminas
66347c9449 Fix NameError when using loops
vars_copy disappeared in 3d1255d190.

Fixes #13213.
2015-11-19 09:21:06 +02:00
nitzmahone
db83c0e7cd winrm error handling tweaks 2015-11-18 23:09:16 -08:00
James Cammarata
3d1255d190 Don't update job vars too early when getting loop items in TaskExecutor
Fixes #13113
2015-11-18 19:12:38 -05:00
Brian Coca
f8ed99e5e4 Revert "success should not include skipped"
This reverts commit 300ee227a2.
2015-11-19 11:12:18 -08:00
nitzmahone
549163170f fast winrm put_file without size restrictions 2015-11-18 10:33:45 -08:00
Mick Bass
9761250a4b Allow tree-ish to be used for galaxy role version
Ensure that ansible-galaxy version can be a branch, a tag, or any tree-ish
supported by git including specific commit IDs.  For git scm roles, adds an
explicit git checkout of the specified role_version prior to the git archive.
This means that we'll always archive from HEAD of whatever role_version is
checked out. role_version can be a branch, a tag, or any <tree-ish> supported
by git including specific commit IDs.  These changes also ensure
ansible-galaxy works for scm clones when specified version differs from
repository default branch.
2015-11-18 20:47:15 +10:00
Matteo Acerbi
0127d32652 Fix DataLoader's docstring
DataLoader.__init__ doesn't take an argument named vault_password
2015-11-18 11:20:34 +01:00
James Cammarata
9b9fb51d9d Template the final_environment value in _compute_environment_string()
Fixes #13123
2015-11-17 15:39:03 -05:00
Toshio Kuratomi
782aa9a7fd Update submodule refs 2015-11-17 12:09:46 -08:00
James Cammarata
180159b01d Adding vars back in and trying to add a little more speed by avoiding copies 2015-11-17 14:44:46 -05:00
James Cammarata
25807f5404 Don't modify things we've put on the queue
Fixes #12937
2015-11-17 14:22:52 -05:00
Brian Coca
d35f615af8 added more debug info for command results 2015-11-18 11:18:03 -08:00
Brian Coca
aa55db69fe Merge pull request #12687 from nitzmahone/pywinrm_arg_passthru
Force SSL transport for pywinrm updates, get host+group vars
2015-11-17 11:14:19 -08:00
James Cammarata
f10d2c57c8 Restoring templating of hostvars returned by __getitem__ 2015-11-17 10:19:56 -05:00
James Cammarata
9f31c073fe Fixing a few bugs in the HostVars performance areas
* Also refresh inventory in the HostVars manager process when things
  are changed via add_host/group_by
* Raise j2undefined rather than return it
2015-11-17 09:15:10 -05:00
James Cammarata
984729016e Fix tag filtering on included files and add more debugging
Previously, we were filtering the task list on tags for each host
that was including the file, based on the idea that the variables
had to include the host information. However, the top level task
filtering is play-context only, which should also apply to the
included tasks. Tags cannot and should not be based on hostvars.
2015-11-16 17:15:52 -05:00
James Cammarata
5cbeab5a3c Performance improvements for HostVars and some bugfixes 2015-11-16 17:15:52 -05:00
Dann Bohn
7f2cae5405 add REPLACER_SELINUX back into module_common 2015-11-16 16:35:55 -05:00
Brian Coca
355fa4797a Merge pull request #13186 from nitzmahone/add_host_cache_fix
fix for dynamic (add_host) hosts not available in hostvars
2015-11-16 12:01:00 -08:00
Brian Coca
6a2559be02 Merge pull request #13184 from nitzmahone/hostvars_undefined_fix
hostvars should return j2 undefined as instance, not type
2015-11-16 11:59:20 -08:00
Toshio Kuratomi
fc7e2912f2 zone connection plugin bugfixes and pipelining and sudo become methods enabled!
Thanks to peinheber for helping test and debug this!
2015-11-16 11:14:13 -08:00
nitzmahone
349e072a74 fix for dynamic (add_host) hosts not available in hostvars
Looks like there are two pattern caches that need to be cleared for this to work- added the second one.
Added integration tests for add_host to prevent future regressions.
2015-11-16 10:53:10 -08:00
nitzmahone
3bb1f7a561 hostvars should return j2 undefined as instance, not type
Looks like someone forgot to create an instance of undefined here- we were returning the undefined type object, which broke all the undefined checks.

Added an integration test around add_host that will catch this (separate PR to follow)
2015-11-16 09:58:23 -08:00
Brian Coca
db27541a0e Merge pull request #13053 from Etherdaemon/fix_13010_boto3_aws_profile
Fixes #13010 by updating boto3 methods
2015-11-16 09:46:26 -08:00
Brian Coca
89646d4253 no need to be executable 2015-11-16 14:40:35 -08:00
Jonathan Davila
1b76a9cef2 Patch to remove dependency on boto when only using boto3
Updated with explicit check for HAS_BOTO3
2015-11-16 09:21:26 -05:00
Brian Coca
2083a2dffa Merge pull request #13174 from sebi-hgdata/sebi/consul_kv_issue
Consul kv lookup super invocation fix
2015-11-15 14:37:51 -08:00
Brian Coca
83f7942dcf removed print entries, corrected display calls to match latest devel 2015-11-16 11:35:10 -08:00
Brian Coca
78be81b96d Merge pull request #12510 from jcftang/devel
Initial add of logentries callback plugin
2015-11-15 11:28:02 -08:00
Brian Coca
f1db99caa7 updated with latest changes to default 2015-11-15 10:09:24 -08:00
Brian Coca
eeedaf2cbc fixed var name typo 2015-11-15 08:43:42 -08:00
Brian Coca
e174247734 evaluate includes for skipped tags
cannot evaluate for include tags as underlying tasks might have them, but skips override so this should be a performance boost
2015-11-15 07:51:36 -08:00
Sebi Calbaza
1f052d5ce6 fixed super invocation 2015-11-15 13:48:40 +02:00
Brian Coca
300ee227a2 success should not include skipped
fixes #13161
2015-11-14 14:39:42 -08:00
Jimmy Tang
19ba54c9fd Don't be fatal on import errors so plays don't fail if plugin doesn't have required dependencies 2015-11-14 20:02:03 +00:00
Jimmy Tang
125370ab48 Run when whitelisted 2015-11-14 19:46:00 +00:00
Jimmy Tang
5f2f5e2b59 Add boilerplate and fix initialisation to match what 2.0 expects 2015-11-14 08:54:41 +00:00
Jimmy Tang
c02ceb8f12 Remove threading and queues. Added license information and cleaned up callback. 2015-11-14 08:40:16 +00:00
Jimmy Tang
85277c8aae Initial add of logentries callback plugin
This callback plugin will generate json objects to be sent to the
logentries service for auditing/debugging purposes.

To use:

Add this to your ansible.cfg file in the defaults block

    [defaults]
    callback_plugins = ./callback_plugins
    callback_stdout = logentries
    callback_whitelist = logentries

Copy the callback plugin into the callback_plugings directory

Either set the environment variables

    export LOGENTRIES_API=data.logentries.com
    export LOGENTRIES_PORT=10000
    export LOGENTRIES_ANSIBLE_TOKEN=dd21fc88-f00a-43ff-b977-e3a4233c53af

Or create a logentries.ini config file that sites next to the plugin with the following contents

    [logentries]
    api = data.logentries.com
    port = 10000
    tls_port = 20000
    use_tls = no
    token = dd21fc88-f00a-43ff-b977-e3a4233c53af
2015-11-14 08:40:16 +00:00
James Cammarata
07b588f6c0 Version bump for new beta 2.0.0-0.5.beta3 2015-11-13 16:48:25 -05:00
James Cammarata
2b25b7974c Remove unnecessary sleep from result process 2015-11-13 16:45:45 -05:00
Brian Coca
634e10e5b8 Merge pull request #13156 from amenonsen/broken-timeout
If ssh died, it's an error, not a timeout
2015-11-13 10:45:21 -08:00
Abhijit Menon-Sen
26ea9c4351 If ssh died, it's an error, not a timeout 2015-11-13 20:10:08 +05:30
David M. Lee
5bd096208c Increase the escalation prompt timeout
It was set to match the SSH connect timeout. Unfortunately, they would
race when ssh fails to connect, and the connect timeout usually failed.
This led to some misleading error messages.

Fixes #12916
2015-11-13 08:02:37 -06:00
James Cammarata
31b1abf580 Merge pull request #13146 from nitzmahone/gce_error_messaging
fix gce module error reporting
2015-11-13 08:46:51 -05:00
nitzmahone
4163655099 fix gce module error reporting
Error reporting was broken for GCE modules- pprint didn't work with exceptions, so you'd always get "Unexpected response: {}" instead of the real error.
2015-11-12 16:30:46 -08:00
Toshio Kuratomi
958fb29b78 Merge pull request #12881 from Scypho/devel
fix for issue #11885 - allowing json in lookup template calls
2015-11-12 15:39:35 -08:00
James Cammarata
13750f68ee Reduce spinning while waiting on queues 2015-11-12 14:41:09 -05:00
Daniel Menet
0918416b83 substitute tilde and env vars before storing C.CACHE_PLUGIN_CONNECTION as instance attribute 2015-11-12 16:52:02 +01:00
Toshio Kuratomi
7fd8b86a10 Fix documentation build problems 2015-11-11 12:39:06 -08:00
Toshio Kuratomi
d38ac6a394 Update submodule ref for another new module 2015-11-11 12:33:32 -08:00
Toshio Kuratomi
7807e99bca A bunch of shipit's merged 2015-11-11 12:19:34 -08:00
Toshio Kuratomi
8aa2cbd647 Fix traceback because we're using display from another object that no
longer has it.
2015-11-11 12:19:00 -08:00
James Cammarata
b2b0fa8d13 Changed do/until failed color
Fixes #13130
2015-11-11 14:43:15 -05:00
James Cammarata
94c20c9ac6 Cleanup failed/changed logic in TaskExecutor
Fixes #12980
2015-11-11 14:23:37 -05:00
Toshio Kuratomi
62979efa14 Finish up plugin porting to global display
Also remove display = display which does nothing
2015-11-11 10:44:23 -08:00
Toshio Kuratomi
2bd695ed42 Port cache plugins to global display 2015-11-11 10:44:22 -08:00
Toshio Kuratomi
b05d0b8c9c Port lookup plugins to global display. 2015-11-11 10:44:22 -08:00
Toshio Kuratomi
4c7128da17 Port action plugins to global display 2015-11-11 10:44:22 -08:00
Toshio Kuratomi
186e034515 Move the rest of executor code to global display 2015-11-11 10:44:22 -08:00
Toshio Kuratomi
7ecfa072da Move the rest of the playbook code to use global display 2015-11-11 10:44:22 -08:00
Toshio Kuratomi
aa4f213cb5 Move connection plugins to using global display 2015-11-11 10:44:22 -08:00
Toshio Kuratomi
318bfbb207 Migrate cli and dependencies to use global display 2015-11-11 10:44:22 -08:00
Brian Coca
1b7d3f2898 updated submodule refs 2015-11-12 09:41:51 -08:00
Brian Coca
99f45f2e19 pass task args without filtering, copy module needs to explcitly support
remote_src or it will remove the src file
2015-11-12 09:40:43 -08:00
Toshio Kuratomi
c7b69127ec Remove dead code 2015-11-11 08:12:21 -08:00
Toshio Kuratomi
e45ce871a7 Fix for traceback when neither name nor pkg are in the module params 2015-11-11 07:32:21 -08:00
Toshio Kuratomi
4737305837 Remove dead code as this was moved to another class 2015-11-10 12:18:20 -08:00
Brian Coca
be22a670e5 addes deprecated information to ansible-doc display
fixes #13118
2015-11-11 11:15:22 -08:00
Brian Coca
1b349fdf34 Merge pull request #13112 from privateip/eapi
add initial support for Arista eAPI
2015-11-10 10:31:26 -08:00
James Cammarata
566144461f Remove internal use of display and use the top-level import 2015-11-10 12:02:29 -05:00
James Cammarata
0fc187893d Catch import warnings in a common location for both get() and all()
Potential solution for #12979
2015-11-10 11:25:07 -05:00
James Cammarata
9f0c2cfda5 Merge pull request #13114 from mgedmin/fix-plugin-loader
Check sys.modules before loading modules
2015-11-10 11:04:35 -05:00
Marius Gedminas
54eae4a793 Check sys.modules before loading modules
Code for a plugin is usually loaded by a PluginLoader(), and henceforth
available from self._module_cache, which prevents duplicate loading.
However there are situations (e.g. where one action plugin imports code
from another one) where the plugin module might be already imported (and
resident in sys.modules), but not present in the PluginLoader's
_module_cache, which causes imp.load_source() to effectively reload the
module, overwriting global class declarations and causing subtle latent
bugs.

Fixes #13110.
Fixes #12979.
2015-11-10 17:57:43 +02:00
James Cammarata
a99f2fd52f Save delegated vars in result for use in callback methods
Fixes #13014
2015-11-10 10:14:30 -05:00
Peter Sprygada
2e98f7f429 add initial support for Arista eAPI
This commit adds the shared module support for Arisat EOS devices
running eAPI.  The shared module builds on top of module_utils/urls.py.
2015-11-10 07:59:59 -06:00
James Cammarata
e56fd9e95d Make sure pattern cache components are converted to unicode 2015-11-10 08:28:45 -05:00
James Cammarata
0b999c602a Properly figure subset and restrictions into host cache pattern
Fixes #13111
2015-11-10 08:23:51 -05:00
James Cammarata
d8fb5efa90 Merge pull request #13102 from Yannig/devel_cache_enhancement
New method template_no_cache for template object.
2015-11-10 02:23:42 -05:00
Yannig Perré
0c360d17cb New parameter for template method.
We do not compute hash when we know that the result does not need to be cached (like with_items loop).
It also result in a small speed improvement.
2015-11-10 07:19:19 +01:00
Etherdaemon
27398131cf Fixes #13010 by updating boto3 methods to update boto3_conn to check for profile_name and if detected, remove from params and set a new variable of profile which is passed into Session separately 2015-11-10 15:22:07 +10:00
James Cammarata
09994c18f3 Correct logic around determining environment variable existence
Fixes #13105
2015-11-09 21:04:24 -05:00
James Cammarata
c753ae6e22 Fixing up host pattern caching to avoid bugs
* Always cache and return unique list objects, so that if the list
  is changed later it does not impact the cached results
* Take additional parameters and the type of the pattern into account
  when building the hash string
2015-11-09 20:55:13 -05:00
James Cammarata
e8f83dcba3 Revert "Temporarily disable template caching"
This reverts commit 4d1757ce64.
2015-11-09 20:41:59 -05:00
James Cammarata
4d1757ce64 Temporarily disable template caching 2015-11-09 17:09:13 -05:00
Toshio Kuratomi
995db275f8 Update submodule refs 2015-11-09 13:48:34 -08:00
Toshio Kuratomi
db5d3f03a9 Fix first_found not finding files in roles (only templates) 2015-11-09 13:47:17 -08:00
James Cammarata
ccbcfcddfc Move where we add environment and make it conditional on not existing
Also displays a warning now, because users should not be using that variable
name as it causes a collision with the internal variable of the same name.
2015-11-09 16:28:54 -05:00
Brian Coca
37ae243587 made get_file_lines rely on get_file_content which deals with many error
conditions that the former did not.
2015-11-10 13:22:45 -08:00
ghislainbourgeois
eb850d7e5b Fix get_dns_facts on inexistent resolv.conf 2015-11-09 15:02:03 -05:00
James Cammarata
e36b4e2a13 Merge pull request #13072 from Yannig/devel_cache_optimization
Cache optimization
2015-11-09 14:54:06 -05:00
James Cammarata
76ae577519 Ensure environment is inherited properly (task->block/include->play) 2015-11-09 14:51:07 -05:00
James Cammarata
937584cd52 Ensure 'environment' is set in the magic variables
Fixes #13033
2015-11-09 14:50:39 -05:00
James Cammarata
7e04947599 Be more selective about what variables we cache during templating
Fixes #13087
2015-11-09 14:07:48 -05:00
Toshio Kuratomi
1a04f354f3 For with_first_found loops, set undefined variables to fall through rather than failing the task 2015-11-09 10:51:54 -08:00
Brian Coca
240acb1924 Merge pull request #13092 from privateip/nxapi
initial shared module support for nxapi
2015-11-09 08:43:30 -08:00
Peter Sprygada
f88273eb87 changes the nxapi argument spec to require url_password 2015-11-09 09:45:26 -05:00
Peter Sprygada
d3d36eb766 fixes conditional statement for py24 compatibility 2015-11-09 09:36:17 -05:00
Peter Sprygada
64e139adb1 add initial support for Cisco NXAPI
This commit adds the shared module support for Cisco NXAPI.  The shared
module builds on top of the urls shared module.  The urls module provides
the http/s transport.  This module only supports the JSON request message
format.
2015-11-09 09:18:38 -05:00
Rene Moser
1d59caed07 cloudstack: change order of tags handling, fixes update of tag value does not work 2015-11-08 20:27:01 +01:00
Rene Moser
3410a855b0 cloudstack: use jop polling in tag handling, fixes outdated tags returned.
In some cases the async job did not finish fast enough, causing returning an unexpeded result.
2015-11-08 20:23:06 +01:00
Joern Heissler
647b92a79b Use ansible_host in synchronize module
Fixes #13073
2015-11-08 13:15:16 +01:00
Yannig Perré
12a6fb9633 Small speed improvement with huge inventory (100+ hosts). 2015-11-07 19:32:10 +01:00
James Cammarata
dd4ca66e1e Make sure hostvars cache is recreated during serialization 2015-11-06 22:21:50 -05:00
James Cammarata
5040abaaf2 Merge branch 'devel_cache_for_do_template_call' of https://github.com/Yannig/ansible into Yannig-devel_cache_for_do_template_call 2015-11-06 22:04:52 -05:00
Brian Coca
9a25e16140 set corrected force default 2015-11-06 19:06:58 -05:00
Toshio Kuratomi
47f187b221 Update submodule refs 2015-11-06 10:30:42 -08:00
James Cammarata
59b67a2f68 Reset workers list when recreating processes
Also renames some things to be more accurate
2015-11-06 12:10:15 -05:00
Brian Coca
5b84bd6b5d Merge pull request #13056 from alxgu/sles_sap_family
Add SLES_SAP as a Suse family
2015-11-06 08:58:31 -05:00
Brian Coca
226c7f4c7b Revert "added setting of ansible_ssh_user to current user as backwards compatibilty issue"
scope was wrong, this var should not be 'reset' here.

This reverts commit c271c0eb04.
2015-11-06 08:31:56 -05:00
Brian Coca
9c24f88eca updated forks comment 2015-11-06 08:31:56 -05:00
Rene Moser
768f2fe6d4 template: fix regression bug in template in case force=false
Fixes regression bug, previously reported in #12844 fixed with
4b20884719 re-introduced with
c64ac90560
2015-11-06 11:24:39 +01:00
Alexander Gubin
215fc12234 Add SLES_SAP as a Suse family 2015-11-06 09:42:39 +01:00
Brian Coca
5c7d717f31 made ansibledoc more consistent with term sizes, it now uses display class column calculations
cleared up snippet display
2015-11-05 17:42:14 -05:00
James Cammarata
1027abd596 Cleaning up bugs related to perf improvement changes 2015-11-05 16:42:12 -05:00
James Cammarata
f10022dbd2 Fix use of add_tqm_variables 2015-11-05 16:30:03 -05:00
James Cammarata
efbc6054a4 Add variable compression option 2015-11-05 16:22:37 -05:00
James Cammarata
63c47fb271 Fixing up performance 2015-11-05 16:22:37 -05:00
Brian Coca
c64ac90560 fixed check mode change response in template
fixes #13049
2015-11-05 15:55:19 -05:00
Brian Coca
483c25a609 Revert "switched host patterns to use sets, simplified logic which now uses buitins"
need this to be lists, for order and other considerations
This reverts commit 8e2f0b3f2c.
2015-11-05 15:41:17 -05:00
Brian Coca
88ba46aee0 Revert "fixed append to add"
good change on top of bad
This reverts commit 699f344e17.
2015-11-05 15:40:52 -05:00
Brian Coca
699f344e17 fixed append to add 2015-11-05 15:24:20 -05:00
Brian Coca
8e2f0b3f2c switched host patterns to use sets, simplified logic which now uses buitins 2015-11-05 15:02:06 -05:00
Brian Coca
883f451158 fixed snippet display, short_desc is a string, not a list 2015-11-05 14:32:18 -05:00
Brian Coca
95604573ee improved the message when there is no module path override 2015-11-05 14:32:18 -05:00
Brian Coca
f4912dd88a added callback fallback to v1 methods for backwards compat with existing callbacks 2015-11-05 13:04:50 -05:00
Brian Coca
e2c56efca6 Merge pull request #12867 from bcoca/callback_whitelist_tweak
make callbacks declare needing whitelisting
2015-11-05 12:58:05 -05:00
Toshio Kuratomi
4f6d4c6bf6 Set task_action when the action does not need to be templated
Fixes #13042
2015-11-05 08:38:21 -08:00
Brian Coca
9753de35a7 Merge pull request #13038 from bcoca/min_forks_to_play
use minimal number of forks
2015-11-05 11:22:15 -05:00
Toshio Kuratomi
586cbb9fda Update core submodule ref 2015-11-04 19:44:42 -08:00
Toshio Kuratomi
483491ddfb template the task_action before checking whether to optimize with_item loops for it.
Fixes the second problem discovered in #12976
2015-11-04 19:41:55 -08:00
Toshio Kuratomi
9e758d3d97 Do not optimize with_items loop if the items are not strings
The code isn't sophisticated enough to understand lists and dicts yet.
This mirrors how 1.9.x handled non-string items so its not a regression.

One portion of a fix for #12976
2015-11-04 18:48:41 -08:00
Brian Coca
931eb16e55 clearer selection of min value
cleanup workers at each run to avoid stragglers
2015-11-04 17:28:08 -05:00
Yannig Perre
ccbdd6229a Use static vars when computing host vars known to be static (inventory_hostname, inventory_dir etc.). 2015-11-04 22:16:14 +01:00
Yannig Perre
e0aa3ff232 Cache against hosts pattern (fix a part of problem describe in https://github.com/ansible/ansible/issues/13023). 2015-11-04 22:15:02 +01:00
Brian Coca
b44f1428d0 use minimal number of forks taking serial, forks and play patterns into account 2015-11-04 15:16:20 -05:00
Brian Coca
3c35655b52 removed serial as it is not avialable for fork control
fixes #13037
2015-11-04 14:04:47 -05:00
Brian Coca
0abeff4511 better limiting of forks to lowest actual restriction 2015-11-04 12:47:10 -05:00
nitzmahone
113c4350e3 Force SSL transport for pywinrm updates, get host+group vars
I PR'd a change to pywinrm to allow server certs to be ignored; but it's only on the SSL transport (which we were previously ignoring). For this to work more generally, we're also now pulling the named ansible_winrm_* args from the merged set of host/group vars, not just host_vars.
2015-11-04 09:31:43 -08:00
Lars Larsson
3289670a04 treat forks config parameter as max value instead of always creating that number of workers 2015-11-04 17:13:26 +01:00
Will Thames
91b6004149 Allow blank lines and comments/spaces in galaxy spec files
Fixes #10641 again. (Regression)
Added test to discourage future such regression.
2015-11-04 15:36:20 +10:00
Toshio Kuratomi
07d0d2720c Update submodule refs 2015-11-03 14:13:16 -08:00
Toshio Kuratomi
9ce3adbeb1 remove assigned but unused variables in module_utils.
These were mostly saving exceptions but not using them.  Getting rid of
those will help with eventually running modules via either python2.4 or
python3.x.
2015-11-03 09:53:18 -08:00
Toshio Kuratomi
c08648999d Remove some more unused stdlib deps. 2015-11-03 09:53:18 -08:00
Toshio Kuratomi
658ea053ea Cleanup timer callback plugin's overwriting of modules it imported 2015-11-03 09:53:18 -08:00
Eric Johnson
dfad7c64fb Allow PATCH to list of valid HTTP methods 2015-11-03 17:38:52 +00:00
Brian Coca
8d3da20302 fixed bsd service_mgr_facts using removed check_init fucntion 2015-11-03 11:43:50 -05:00
Yannig Perré
30f827d92d Fix python3 test. 2015-11-03 11:52:09 +01:00
Abhijit Menon-Sen
7caefa5cd9 Fix typo 2015-11-03 10:57:48 +05:30
Toshio Kuratomi
a7d1a39b81 Update core submodule ref 2015-11-02 17:38:28 -08:00
Toshio Kuratomi
2df0022a3e Update submodule refs 2015-11-02 17:12:16 -08:00
Brian Coca
eb04650ffb Merge pull request #12162 from bcoca/service_mgr_facts
fact gathering service_mgr info
2015-11-02 15:34:43 -05:00
Brian Coca
a1a5dadef6 remove uneeded module 2015-11-02 15:36:11 -05:00
Yannig Perré
130139dc80 Fix unicode issue introduced by previous commit. 2015-11-02 21:32:49 +01:00
Toshio Kuratomi
3219744d32 One more stdlib import in module_utils 2015-11-02 12:25:18 -08:00
Brian Coca
d194e2c788 check_systemd is not inline but a private fact function now 2015-11-02 15:23:47 -05:00
Brian Coca
e9efd008ed moved distutils import to mac, darn solaris would complain in certain cases 2015-11-02 15:23:47 -05:00
Brian Coca
99d775a0c1 fact gathering service_mgr info
also added dragonfly facts support
2015-11-02 15:23:47 -05:00
Yannig Perré
4a8d1703d4 New patch against hostvars.py. With this patch, Ansible run lose 50% of time.
Little rewrite of previous patch to use sha1 signature.
Use fail_on_undefined to compute sha1 signature.
2015-11-02 21:04:20 +01:00
Toshio Kuratomi
1bc75374dc Add imports for stdlib modules that are used.
This is cleanup that will aid us when we get ziploader implemented for 2.1
2015-11-02 12:02:26 -08:00
Toshio Kuratomi
107d025d8a Update extras submodule ref for doc fixes 2015-11-02 11:39:57 -08:00
Toshio Kuratomi
99561e88d4 Update submodule refs 2015-11-02 10:56:39 -08:00
Brian Coca
79bf66336b switched clean_data from hardcoded delimiters to actual currently set jinja2 environment delimiters 2015-11-02 09:00:56 -05:00
Yannig Perré
805f768dab Clear cache when updating template variables. 2015-11-02 07:57:44 +01:00
Brian Coca
467c29e3db show task path on 2 vs 2015-11-01 17:43:11 -05:00
Yannig Perré
87a9485b2f Cache for _do_template call. May result in nice speed improvement (4-5 times faster). 2015-11-01 22:30:55 +01:00
Rene Moser
c09a34bb10 cloudstack: clean up unneeded ";" 2015-11-01 17:13:46 +01:00
Brian Coca
f528ad1848 added xbps pkg mgr to facts 2015-10-31 22:03:12 -04:00
Brian Coca
13bf62d0e6 remove deprecation for :, add ; functionality (its deprecated but it should work) 2015-10-31 16:35:40 -04:00
Brian Coca
d341ba14a5 fixed rekey password handling 2015-10-31 14:13:03 -04:00
Brian Coca
00bc74404a vault noe preserves permissions on edit and rekey and sets a restricitve default umask for all other cases 2015-10-31 14:13:03 -04:00
Brian Coca
7368030651 removed action plugin as service facts and separate modules don't work yet and this forces gathering facts 2015-10-30 17:56:05 -04:00
Brian Coca
f5b095f6c8 properly sanitize registered vars 2015-10-30 16:42:06 -04:00
Brian Coca
b6c92dacb5 removed key striping as they are read up the chain 2015-10-30 14:03:37 -04:00
Brian Coca
57d3245d0d remove commented out prints 2015-10-30 14:02:41 -04:00
Brian Coca
7ba4f5ee12 removed no_log redundant code 2015-10-30 14:01:47 -04:00
Brian Coca
b97887ba41 simplified invocation removal, added no_log awareness 2015-10-30 10:17:19 -04:00
James Cammarata
c61499168e Merge pull request #12962 from bcoca/pull_fixes
fixes options for ansible pull
2015-10-30 09:46:09 -04:00
James Cammarata
56e5e72aaa Make handlers obey run_once (or BYPASS_HOST_LOOP)
Fixes #12972
2015-10-30 09:44:35 -04:00
James Cammarata
a5bd92ca4b Merge branch 'devel_fix_debug_var' of https://github.com/Yannig/ansible into Yannig-devel_fix_debug_var 2015-10-30 08:37:03 -04:00
Brian Coca
237f8c9df7 removed debug print 2015-10-29 20:34:55 -04:00
James Cammarata
479cbfc63c Don't immediately fail on PlayContext setup
As we may end up skipping the task due to conditionals.

Fixes #12774
2015-10-29 19:23:42 -04:00
Brian Coca
9f148fc046 removed requirement of destination and set documented default 2015-10-29 16:28:46 -04:00
Brian Coca
40d22be2ef fixes options for ansible pull
* remove requirement for host patterns, use the defaults
 * require destination directory (None in cwd is not a good default)
 * fixed usage messages
 * updated default inventory to use , and not deprecated :
2015-10-29 16:28:46 -04:00
Brian Coca
b73941b95f updated submodule refs 2015-10-29 16:06:33 -04:00
Toshio Kuratomi
508bffef02 Update extras submodule ref 2015-10-29 10:20:55 -07:00
Brian Coca
b8bc15fe02 switched to backticks to allow for non bourne shells to work 2015-10-29 12:45:53 -04:00
Yannig Perré
1febf7cb88 Fix for issue #12952: this code interfere with debug+var and seems to be unnecessary. 2015-10-28 22:09:13 +01:00
James Cammarata
5d92b00d9c Cleanup some include logic
* Properly mark hosts with failures in includes as failed
* Don't send callbacks until we're sure we're done, and also fix how
  we increment stats so failures don't show up as ok's
* Fix a bug in the include file logic where a failed include could lead
  to an infinite loop in the task iteration logic

Fixes #12933
2015-10-28 14:02:24 -04:00
Toshio Kuratomi
56b310b18d Update submodule refs 2015-10-28 09:04:52 -07:00
James Cammarata
299054852a Allow tags to be specified in included file params
Fixes #12940
2015-10-28 10:14:20 -04:00
Brian Coca
b2fc5142eb moved sudo -S and -n into configurable flags as they might be absent in much older systems
if password is supplied exsiting -n would get remove from flags
2015-10-28 02:06:25 -04:00
Toshio Kuratomi
e3e2db1119 Improve the warning message about duplicate yaml dict keys 2015-10-27 14:20:36 -07:00
James Cammarata
87269599a0 Also consider the full role name when searching for --start-at-task 2015-10-27 16:31:23 -04:00
Toshio Kuratomi
acbea65b1d Update core submodule ref to fix doc build 2015-10-27 12:52:41 -07:00
Toshio Kuratomi
2c5da0923a Update submodule refs 2015-10-27 12:50:24 -07:00
Toshio Kuratomi
7334389de6 Merge pull request #12930 from ansible/dict-key-overwrite-warning
Break apart a looped dependency to show a warning when parsing playbooks
2015-10-27 12:44:01 -07:00
Toshio Kuratomi
4203850d1a Break apart a looped dependency to show a warning when parsing playbooks
Display a warning when a dict key is overwritten by pyyaml
Fixes #12888
2015-10-27 12:39:42 -07:00
James Cammarata
3fc2209ca0 Fixing retry/until logic and default value for retries
Fixes #12928
Fixes #12929
2015-10-27 15:37:48 -04:00
James Cammarata
57fe0d6aed Merge pull request #12911 from bcoca/manpage_fixes
Manpage fixes
2015-10-27 14:48:38 -04:00
James Cammarata
1dc23ea779 Merge pull request #12866 from bcoca/more_inheritence
More inheritence
2015-10-27 14:46:42 -04:00
James Cammarata
cace91df56 Allow hostvars cache to be invalidated so hostvars contain all hosts after add_host
Fixes #12925
2015-10-27 14:12:17 -04:00
James Cammarata
2825c188bd Merge pull request #12901 from bcoca/sanitize_results
sanatize results
2015-10-27 08:42:34 -04:00
Jason O'Donnell
9dfa3719be Fixing typo 2015-10-26 17:13:49 -04:00
Jason O'Donnell
ac9b35cc2b Found another typo 2015-10-26 17:04:28 -04:00
Jason O'Donnell
80433c2a2d Fxing typo 2015-10-26 17:01:30 -04:00
Toshio Kuratomi
de54f26376 Update submodule refs 2015-10-26 13:13:11 -07:00
Brian Coca
c271c0eb04 added setting of ansible_ssh_user to current user as backwards compatibilty issue 2015-10-26 16:10:13 -04:00
Brian Coca
4486e136ea Merge pull request #12899 from bcoca/vault_fixes
simplified vault password functions
2015-10-26 14:14:17 -04:00
Brian Coca
5b33b0ddfd Merge pull request #12896 from bcoca/ssh_current_user_config
don't set user to current user
2015-10-26 13:26:43 -04:00
James Cammarata
677a2f95e5 Make sure Base attributes are copied cleanly
Fixes #12882
2015-10-26 12:09:58 -04:00
Toshio Kuratomi
8f77dd1cf2 Update submodule refs 2015-10-26 08:37:37 -07:00
Brian Coca
f3a0adcfa5 added info about using -i 'hostname,' to usage/help 2015-10-26 11:03:15 -04:00
Bernhard Lichtinger
00ccd2ee6e Fix for SLES 11.4, which has now also an /etc/os-release file. 2015-10-26 14:22:21 +01:00
Brian Coca
7ebfe72015 added missing string_types 2015-10-24 15:49:30 -04:00
Brian Coca
8ce864db6f sanatize results 2015-10-24 15:23:12 -04:00
Brian Coca
368f4448dc simplified vault password functions
also fixes #12864
2015-10-24 15:06:43 -04:00
Toshio Kuratomi
92dd563a75 Fix invocation from bad merge and note where it would need to go to keep
it out of registered vars as well.
2015-10-24 07:29:42 -07:00
Brian Coca
f78c82b9ee don't set user to current user
also remove condition to bypass setting user if user matches current user
this enables forcing user when set to the same user as current user and ignoring .ssh/config
while keeping .ssh/config with current user if nothing is specified.
2015-10-23 23:15:45 -04:00
Brian Coca
25e3fe04a8 finalized changed to use abridtged_result instead of result
removed no longer defined no_log
2015-10-23 23:10:57 -04:00
Toshio Kuratomi
b109b83809 Update submodule refs 2015-10-23 14:34:40 -07:00
Toshio Kuratomi
ca32d5bacc Potential fix for #12816 2015-10-23 13:38:44 -07:00
James Cammarata
3eea4e23d5 Manually add plugin directories when running the adhoc command
Fixes #12891
2015-10-23 16:33:51 -04:00
Toshio Kuratomi
3812ec8d1d Implement invocation hiding for all callbacks if the verbosity is low 2015-10-23 11:11:34 -07:00
Brian Coca
275764d4a5 avoid showing invokation when no_log is set or verbosity is low 2015-10-23 14:06:20 -04:00
James Cammarata
63ea614b4c Version bump for 2.0.0-0.4.beta2 2015-10-23 13:34:30 -04:00
Toshio Kuratomi
99c6f77e59 Fix callback 2015-10-23 09:15:22 -07:00
Jens Peter Schroer
ecae636160 allowing json in lookup template calls 2015-10-23 14:21:46 +02:00
James Cammarata
4fd4f3374a Merge pull request #12879 from larsks/bug/12876
allow include: directive to work during exception processing
2015-10-22 22:15:32 -04:00
Lars Kellogg-Stedman
914f68f9af allow include: directive to work during exception processing
prior to this commit, an attempt to use the `include:` directive would
fail in a `rescue:` or `always:` block if there were failures in the
main block task list.

Resolves #12876.
2015-10-22 22:12:20 -04:00
Toshio Kuratomi
ce2b18174e Merge pull request #12878 from ansible/invocation-fix
Invocation fix
2015-10-22 16:17:40 -07:00
Toshio Kuratomi
2e87c1f74e Two fixes to action plugins
* Fix the task_vars parameter to not default to a mutable type (dict)
* Implement invocation in the base class's run() method have each action
  module call the run() method's implemention in the base class.
* Return values from the action plugins' run() method takes the return
  value from the base class run() method into account so that invocation
  makes its way to the output.

Fixes #12869
2015-10-22 16:07:26 -07:00
Brian Coca
5017a96948 Revert "make callbacks declare needing whitelisting"
another premature merge
This reverts commit df8ff85787.
2015-10-22 16:34:51 -04:00
James Cammarata
86de1429e5 Cleaning up FIXMEs 2015-10-22 16:03:50 -04:00
Toshio Kuratomi
1e50d31cdc Update submodule refs 2015-10-22 10:14:31 -07:00
Brian Coca
df8ff85787 make callbacks declare needing whitelisting
this will allow for custom or v1 callbacks locally loaded to automatically be triggered as they were in 1.x
2015-10-22 12:30:23 -04:00
Toshio Kuratomi
75cff7129c Fix for invocation not being added to output.
We want invocation to be omitted when we are running async, not when we
aren't running async.
2015-10-22 09:03:35 -07:00
Toshio Kuratomi
6b6d03290a Restore the automatic addition of invocation to the output
Revert "Remove auto-added invocation return value as it is not used by v2 and could leak sensitive data."

This reverts commit 6ce6b20268.

Remove the note that invocation was removed as we've now restored it.

Revert "keyword not in ubuntu 14.04"

This reverts commit 5c01622457.

Revert "remove invocation keyword check"

This reverts commit 5177cb3f74.
2015-10-22 08:53:37 -07:00
James Cammarata
498c27d09a Re-adding role_names magic variable
Fixes #12863
2015-10-22 11:06:47 -04:00
Brian Coca
c267c23020 make callbacks declare needing whitelisting
this will allow for custom or v1 callbacks locally loaded to automatically be triggered as they were in 1.x
2015-10-22 08:27:32 -04:00
Brian Coca
54e821ca94 added deprecation warning to comma separated role spec 2015-10-22 08:10:51 -04:00
Brian Coca
09899b7c43 Merge pull request #12783 from larsks/bug/12782
correct value of remote_user for local connections
2015-10-22 08:10:07 -04:00
Brian Coca
9886829e40 Merge pull request #12861 from willthames/galaxy_spec_in_meta_main_fix
Allow meta/main.yml to include roles through spec file
2015-10-22 08:01:02 -04:00
Brian Coca
d861e7dd5d moved several directives so they are not settable at play, block, role and task levels 2015-10-22 07:51:22 -04:00
Brian Coca
fc3a44485b skip errors on conditional if task is include
fixes #12843
2015-10-22 07:50:43 -04:00
Will Thames
002972c6cf Allow meta/main.yml to include roles through spec file
ansible-playbook now works when run with a playbook
that includes a role that includes another role
specified using csv format

Updated one of the roles used in the tests to fix
broken tests - `make test_galaxy` now works

Fixes #11486. Also addresses the problem alluded to in #10620.
2015-10-22 13:30:42 +10:00
Brian Coca
08c9e70307 made display part of variable manager and corrected reference to it
fixes #12859
2015-10-21 22:29:27 -04:00
James Cammarata
2b3c5aa41e Support cmd param in Tasks by assigning it to _raw_params
Fixes #12856
2015-10-21 15:47:09 -04:00
James Cammarata
0e447e3f41 Merge branch 'devel' of https://github.com/mathieumd/ansible into mathieumd-devel 2015-10-21 13:59:51 -04:00
James Cammarata
4b20884719 Return correct changed flag when using check mode with template and force=no
Fixes #12844
2015-10-21 13:51:39 -04:00
Brian Coca
04aa7701d1 fix prompt, static methods don't get 'self'
fixes #12833
2015-10-21 12:06:29 -04:00
Toshio Kuratomi
42ce3de8d0 Merge pull request #12853 from ansible/winrm-return-bytes
In v2, exec_command should return bytes and the caller will take responsibility for converting to unicode
2015-10-21 08:42:54 -07:00
Toshio Kuratomi
3d57a202b5 And another fix for docs 2015-10-21 08:40:30 -07:00
Toshio Kuratomi
9dc9a606f6 Correct docs build 2015-10-21 08:36:21 -07:00
Toshio Kuratomi
632d356d22 Update submodule refs 2015-10-21 08:31:58 -07: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
James Cammarata
ec56b29ba4 Fix setting of interpreter values for delegated hosts
Fixes #12772
2015-10-21 11:05:45 -04:00
Toshio Kuratomi
c845181dc1 In v2, exec_command should return bytes and the caller will take responsibility for converting to unicode 2015-10-21 07:59:46 -07:00
gduke
744679601f Remove mutable default arguments. 2015-10-20 22:13:23 -07:00
Toshio Kuratomi
10e2fc6f60 Update submodule ref 2015-10-20 15:37:50 -07:00
Toshio Kuratomi
1126ce34e3 Merge pull request #12846 from ansible/nolog-for-return-value
Hide values in json returns which were given in parameters marked no_log.
2015-10-20 15:28:16 -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
James Cammarata
3ddda2f460 Merge pull request #12842 from mcsalgado/include_with_items
Revert back to copying self._task.args
2015-10-20 15:33:34 -04:00
Brian Coca
1ecad5aed2 now galaxy correctly detects empty requirements file
also allow for 'scm' and 'src' not to be populated in requirements entries
2015-10-20 14:39:22 -04:00
Victor Salgado
c5c5f3bf7a Revert back to copying self._task.args 2015-10-20 16:21:25 -02:00
Victor Salgado
0e671baa33 Fix typo 2015-10-20 16:18:01 -02:00
James Cammarata
b46ce47a84 Don't use local transport for delegated hosts if the inventory_hostname isn't local
For some situations like Vagrant, the remote_addr may be a localhost addr, but ssh
is still desired. This corrects the assumption that any localhost remote_addr should
be using the local connection by checking the inventory_hostname value as well.

Fixes #12817
2015-10-20 14:04:39 -04:00
Toshio Kuratomi
99e7bb35c1 Simplify UnsafeProxy as we don't need to use it for byte strings, only text 2015-10-20 10:57:23 -07:00
James Cammarata
3c87c44af5 Fixing bug in includes caused by 892d9b8
Fixes #12837
2015-10-20 13:49:52 -04:00
Toshio Kuratomi
31ebafcbdd Update submodule refs 2015-10-20 09:22:58 -07:00
Toshio Kuratomi
f34b55ac2b Add python3-compat boilerplate to all .py files in lib/ansible 2015-10-19 18:36:19 -07:00
Brian Coca
de3ca57a33 avoid relative shlex import
fixes #12777
2015-10-19 19:55:22 -04:00
James Cammarata
e5b6d802bf Removing some cruft related to _local_action value on Task, which was removed
Fixes #12819
2015-10-19 16:52:27 -04:00
Mathieu
260a3e5ce7 Fixes #11055 - Set locale via LC_ALL 2015-10-19 21:25:30 +02:00
Toshio Kuratomi
923fc9fb15 Cleanup pyflakes warning (real error) 2015-10-19 12:01:01 -07:00
Toshio Kuratomi
7aa9f6754a Cleanup more pyflakes warnings (2 real problems) 2015-10-19 12:01:01 -07:00
James Cammarata
1fa975d81a Simplify group_by by removing BYPASS_HOST_LOOP from the action
Fixes #12825
2015-10-19 14:57:07 -04:00
Toshio Kuratomi
0888d78b84 Cleanup some pyflakes warning (1 real error) 2015-10-19 11:42:46 -07:00
Toshio Kuratomi
c6d44738ad Clean up some more pyflakes warnings 2015-10-19 11:35:10 -07:00
Toshio Kuratomi
3da8bab3ff Cleanup pyflakes warning (real error) 2015-10-19 11:29:51 -07:00
Toshio Kuratomi
a526eae543 Clean up a few more pyflakes warnings 2015-10-19 11:20:21 -07:00
Toshio Kuratomi
a17ae6f07e Clean up pyflakes warnings in inventory 2015-10-19 11:13:56 -07:00
James Cammarata
892d9b8dfb Move post_validate for tasks after checking for an include
Simplifies logic and prevents us from accidentally post_validating
an include that would otherwise be skipped due to tags causing a
problem because of potentially missing variables.

Fixes #12793
2015-10-19 13:42:17 -04:00
James Cammarata
1cfd941179 Adding a v2 callback for task includes 2015-10-19 13:42:17 -04:00
Toshio Kuratomi
dc33d30c6d Update submodule refs 2015-10-19 10:25:36 -07:00
Toshio Kuratomi
b67e51ea06 Information on when to use to_str() and what a native string is 2015-10-19 09:28:43 -07:00
Toshio Kuratomi
39d9bc3564 Update submodule refs 2015-10-19 09:09:07 -07:00
Toshio Kuratomi
6ce6b20268 Remove auto-added invocation return value as it is not used by v2 and could leak sensitive data. 2015-10-19 09:08:25 -07:00
Brian Coca
1280e2296c changed warning to debug and expanded info on what is really happening, it was a bit misleading 2015-10-18 11:00:50 -04:00
Brian Coca
2d1d21228a updated skippy to match default output 2015-10-18 11:00:50 -04:00
James Cammarata
0bbe9d5bd0 Make hostvars json/yaml serializable in filters
Fixes #12615
2015-10-18 10:09:05 -04:00
James Cammarata
a88c59f451 Reset basedir for plays that are not from a PlaybookInclude
Fixes #12524 (again)
2015-10-17 12:44:28 -04:00
James Cammarata
0aa018337a Fixing logic in json cache plugin get()
Fixes #12722
2015-10-17 11:50:14 -04:00
James Cammarata
5f617c601b Remove obsolute tag evaluation in free strategy
Fixes #12784
2015-10-17 11:29:39 -04:00
Brian Coca
6c8cf8acb7 now profile_tasks callback handles handlers correctly
fixes #12762
2015-10-16 18:01:27 -04:00
James Cammarata
1ab0e0e228 Disable RuntimeWarnings during all() plugin loading
Fixes #12778
2015-10-16 15:34:49 -04:00
Brian Coca
71ffb86c30 don't let cowsay issues stop execution
fixes #12773
2015-10-16 15:20:59 -04:00
Brian Coca
6d87bd405d Merge pull request #12765 from bcoca/lookup_inventory_hostname
implemented inventory_hostname lookup in v2
2015-10-16 15:05:23 -04:00
Toshio Kuratomi
a567f28657 Update submodules for docs fixes# Please enter the commit message for your changes. Lines starting 2015-10-16 11:12:21 -07:00
Toshio Kuratomi
5d8ab9b01b Update module refs 2015-10-16 10:05:57 -07:00
Toshio Kuratomi
b23a083776 Make vault use a mapping of cipher name to classes instead of formatting the name for safety. 2015-10-16 10:05:27 -07:00
Toshio Kuratomi
baa309309d Bundle a new version of python-six for compatibility along with some code to make it easy for distributions to override the bunndled copy if they have a new enough version. 2015-10-16 08:21:28 -07:00
Lars Kellogg-Stedman
aa0b7536c9 correct value of remote_user for local connections
When using 'local' connections, privilege escalation would fail if
ansible_ssh_user was in the current context to the same value as
become_user.

This commit ensures that for 'local' connections we reset remote_user to
the local username.

This fixes #12782.
2015-10-16 11:17:58 -04:00
Toshio Kuratomi
28c933ce5e properly fail_json when we don't have ssl on a non-redhat distro 2015-10-16 08:06:32 -07:00
Marius Gedminas
98958ec990 Simplify join expression 2015-10-16 17:39:27 +03:00
Marius Gedminas
56184a3d8c Python 3: avoid %-formatting of byte strings
This is needed for Python 3.4 compatibility; Python 3.5 can use
`b'%s\n' bytestring` again.
2015-10-16 17:18:35 +03:00
Brian Coca
9b088a1e40 implemented inventory_hostname lookup in v2 2015-10-15 13:11:42 -04:00
Brian Coca
aee6de5a76 group_names should not include implied 'all', fixes #12763 2015-10-15 11:46:43 -04:00
James Cammarata
dce58a78c9 Make random cowsay truly random
Also adds a cowsay whitelist config option, because there are some
truly NSFW stencils that come with cowsay by default.
2015-10-15 10:52:53 -04:00
Marius Gedminas
4fb6f62f1b Fix Unexpected Exception: global name 'os' is not defined
I inadvertently introduced it in
ca826508d9 and didn't notice, because
there are no unit tests for playbook_executor.py.  Sorry!

(The "from ansible.errors import *" was used *only* to get the 'os'
module, which makes go "what?")
2015-10-15 10:41:00 +03:00
Marius Gedminas
ab569cea22 Move to_str alias into ansible.utils.unicode
@abadger suggested on IRC that it's useful enough to go into
ansible.utils.unicode.
2015-10-15 10:27:38 +03:00
Marius Gedminas
ca826508d9 Python 3: fix AnsibleError formatting
If you convert the error string to bytes and embed it inside another
error string, you get

  Prefix:

  b'Embedded\nerror\nstring'

which is not what we want.

But we also don't want Unicode in error messages causing unexpected
UnicodeEncodeErrors when on Python 2.

So let's convert the error message into the native string type (bytes on
Python 2, unicode on Python 3).
2015-10-15 09:38:14 +03:00
Toshio Kuratomi
5617f6aad4 Update synchronize to use the correct host when delegating
Fixes #12752
2015-10-14 18:57:10 -07:00
Toshio Kuratomi
85abd61001 Add some more info to docstring 2015-10-14 18:57:10 -07:00
James Cammarata
d923d05a33 Reworking the way all() works in plugin_loader
* Don't throw away the full path of the module code being loaded,
  as this can cause conflicts when files of the same name are being
  instantiated
* Generalize the module loading code

Fixes #12738
2015-10-14 17:53:28 -04:00
James Cammarata
45b803efb4 Properly use test_loader from SharedPluginLoaderObj 2015-10-14 17:53:28 -04:00
Toshio Kuratomi
c8ad55103e Update extras modules ref to fix docs 2015-10-14 08:44:37 -07:00
Toshio Kuratomi
e00eeba9c3 Update submodule refs 2015-10-14 08:06:55 -07:00
James Cammarata
91b0b4d40c Check is_directory() before not is_file() in inventory basedir
Fixes #12742
2015-10-14 11:03:10 -04: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
James Cammarata
ee559e03f7 Merge pull request #12725 from mgedmin/py3k
Python 3: there's no basestring
2015-10-13 16:52:46 -04:00
James Cammarata
e6d3c6745f Revert to using local file/dir tests in inventory instead of loader's
Fixes #12719
2015-10-13 12:04:01 -04:00
Brian Coca
c637d60a8d fixed deprecation message 2015-10-13 11:40:21 -04:00
Brian Coca
f5227d494b added missing cachefile and changed str(e) to to_bytes(e) 2015-10-13 11:15:10 -04:00
Marius Gedminas
9ba6c087d3 Python 3: there's no basestring 2015-10-13 09:56:12 +03:00
Marius Gedminas
f03da5be42 Python 3: there's no iteritems() 2015-10-13 09:47:16 +03:00
James Cammarata
2d77c643e4 Merge pull request #12723 from mgedmin/py3k
Make ansible.vars.unsafe_proxy Python 3 friendly
2015-10-13 02:45:55 -04:00
Marius Gedminas
e511d6d458 Make UnsafeProxy work on Python 3
Instead of str and unicode we have to deal with bytes and str.
2015-10-13 09:41:08 +03:00
Marius Gedminas
af6a316d9b Remove unused import
Fixes ImportError: No module named '__builtin__' on Python 3.
2015-10-13 09:37:48 +03:00
James Cammarata
426187489f Add variable for format parameter 2015-10-13 02:33:18 -04:00
Toshio Kuratomi
8277747a04 Fix password lookup when password file exists and the password is not encrypted 2015-10-12 15:52:03 -07:00
James Cammarata
cd2cb178ae Totally rework the way UnsafeProxy does things 2015-10-12 18:13:09 -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
Toshio Kuratomi
b49e0995cb Fix typo 2015-10-12 13:29:04 -07:00
Toshio Kuratomi
b58d7470d4 Cleanup logic and be more paranoid about passwords with spaces 2015-10-12 12:55:33 -07:00
James Cammarata
5c5806d669 Fixing bugs related to jfonfile cache plugin
* corrupt/invalid file causes tracebacks
* incorrect initialization of display/_display in BaseCacheModule class
* tweaking the way errors in get() on jsonfile caches work, to raise
  a proper AnsibleError in that situation so the playbook/task is stopped

Fixes #12708
2015-10-12 13:06:41 -04:00
Toshio Kuratomi
b441bcb678 Fix display when run through a testing framework that overrides stderr/stdout 2015-10-12 10:06:13 -07:00
James Cammarata
d15fcf05f0 Fix bug in the way temp vars were created for templating vars_files
Fixes #12711
2015-10-12 12:17:45 -04:00
Brian Coca
f5f3bf06e4 Merge pull request #12550 from redrampage/remove-pw-salt-deletion
Removed deletion of salt by 'password' lookup
2015-10-12 11:33:19 -04:00
James Cammarata
73661d1761 Merge branch 'devel' of https://github.com/ansible/ansible into devel 2015-10-12 11:30:03 -04:00
Charles Paul
3d533cb423 fixing calls to fail_json 2015-10-12 08:50:18 -05:00
Brian Coca
50372eecc9 Merge pull request #12455 from privateip/devel
added methods for retrieving vapp and vm
2015-10-12 09:37:47 -04:00
James Cammarata
82e76e42e5 Tweak to the way serial percentages are handled 2015-10-12 09:00:43 -04:00
James Cammarata
63e288354e Fix bug in way omitted values were set 2015-10-12 09:00:27 -04:00
James Cammarata
4c85ae0712 Merge branch 'serial_should_be_string' of https://github.com/klshxsh/ansible into klshxsh-serial_should_be_string 2015-10-12 08:28:07 -04:00
klshxsh
ac00c9ced7 changed 'string' to 'percent' for _serial
Note that this allows both integers (e.g. 3) and percentages (e.g. "30%")
Also changed default back to 0 rather than '0'
2015-10-12 12:41:00 +01:00
James Cammarata
eb60ce1b6e Merge pull request #12703 from keitwb/inventory_file_var
Adding the inventory_file var back
2015-10-11 16:04:34 -04:00
James Cammarata
71a1a3c903 Submodule pointer update 2015-10-10 22:31:54 -04:00
Ben Keith
1f82971283 Adding the inventory_file var back 2015-10-10 21:54:28 -04:00
Toshio Kuratomi
45a161b0a1 Merge pull request #12429 from edmstudio/devel
Update synchronize module plugin to work on OS X
2015-10-09 16:05:46 -07:00
Petr Mifek
6e035a3e94 Move nested function test for ipv6 to top level in synchronize module. 2015-10-10 00:01:22 +02:00
Brian Coca
45788fbfad <homer>doh!</homer> 2015-10-09 16:58:01 -04:00
Brian Coca
d24532757c remove fix for local_action/connection local that is now not needed 2015-10-09 16:53:17 -04:00
klshxsh
4a5e52b2d2 The serial keyword can be specified as a percentage, e.g '30%' or a number e.g. '3'; therefore it needs to be a string to allow both types 2015-10-09 21:34:37 +01:00
Brian Coca
b9d54e9a01 corrects previous fix to deal with missing item key in results dict 2015-10-09 13:01:32 -04:00
Brian Coca
abf2e13955 Revert "Track local_action internally to prevent it from being overridden"
This reverts commit 49ca0eb797.
2015-10-09 13:01:32 -04:00
Brian Coca
101c8785ec removed changes to make local action equate connection=local and brought it back to equate delegate_to=localhost 2015-10-09 13:01:32 -04:00
Brian Coca
bcb173996b Merge pull request #12695 from matburt/fix_cache_plugins_for_v2
Fix an issue where cache plugins weren't updated in certain scenarios
2015-10-09 11:39:58 -04:00
Brian Coca
fbf4cafab5 on skipped you 'might' not have an item, changed to getattr to avoid keyerror
fixes #12683
2015-10-09 11:28:11 -04:00
Matthew Jones
7da478a4f4 Fix an issue where cache plugins weren't updated
The first call to persisting facts would work due to the assignment of a
MutableMapping calling __setitem__ but subsequent module fact data would
not be propogated to the fact cache plugins because update() doesn't
invoke __setitem__.  This changes the behavior a little bit and ensures
set() is called on cache plugins.
2015-10-09 11:16:41 -04:00
Brian Coca
ec02b255c3 Merge pull request #12689 from soarpenguin/bugfix
Remove some warning of undefined name and fix classmethod syntax error.
2015-10-09 11:09:50 -04:00
James Cammarata
770032648a Show -> localhost for local_action tasks 2015-10-09 10:53:53 -04:00
James Cammarata
f415d39dfd Merge pull request #12690 from stelligent/devel
Use AWS_DEFAULT_REGION env var if none specified
2015-10-09 10:02:48 -04:00
James Cammarata
cfa62e7a2a Submodule pointer update 2015-10-09 09:50:16 -04:00
James Cammarata
868819f9fa Make sure shlex split is returning properly encoded strings
Fixes #12676
2015-10-09 09:49:27 -04:00
Shayne Clausson
55b3f9e4e5 Use AWS_DEFAULT_REGION env var if none specified 2015-10-09 10:27:36 +02:00
soarpenguin
b11ea17385 fix classmethod syntax error. 2015-10-09 12:46:31 +08:00
soarpenguin
5efa4d29e3 fix some warning of undefined name. 2015-10-09 12:43:42 +08:00
James Cammarata
59d655c543 Double echo temp directory name to handle spaces and ~ expansion both
Fixes #12667
2015-10-08 16:22:38 -04:00
Toshio Kuratomi
d1b98ec776 Correct typo 2015-10-08 08:44:25 -07:00
Toshio Kuratomi
2f5e817007 Do not mix byte str with unicode type 2015-10-08 08:31:12 -07:00
Toshio Kuratomi
01ba2e94c0 Wait until later to convert to byte strings for output
Also some pre-emptive python3 compat and a code simplification
2015-10-08 08:22:17 -07:00
Brian Coca
76feba00c4 avoid callbacks during syntax check and listing
fixes #12682
2015-10-08 10:15:48 -04:00
Brian Coca
4463ced8ba simpler safe output 2015-10-08 10:15:48 -04:00
James Cammarata
de792ba3c2 Improve handling of unicode errors
Fixes #12669
2015-10-08 10:04:15 -04:00
James Cammarata
5a0f5f1254 Load vars for localhost when created implicitly
Fixes #12666
2015-10-08 09:26:20 -04:00
Brian Coca
d8769c93c7 updated ec2 region description to add missing other env var 2015-10-07 16:41:58 -04:00
Brian Coca
c77733e64e added docs for commonly used region parameter in some ec2 modules 2015-10-07 15:52:06 -04:00
Brian Coca
638bc14566 now deps is always a list 2015-10-07 15:41:11 -04:00
George Sudarkoff
fa332e1342 Fail if the vault password script returns non-zero. 2015-10-07 10:32:50 -07:00
Brian Coca
dac3684fd1 changed task color to dark gray to keep it from being confused with ignore/skip 2015-10-07 12:12:35 -04:00
Brian Coca
c459dd4e18 Merge pull request #12663 from Juraci/task-path
Displays the absolute path of a given task when verbosity is above level 3
2015-10-07 12:09:21 -04:00
James Cammarata
dbae110f6f Merge pull request #12660 from apollo13/fix_galaxy_init
Show a nice error if the role name is missing.
2015-10-07 10:31:47 -04:00
Juraci
e52950a939 Displaying task_path on task start when verbosity is more than 3 2015-10-07 10:11:50 -03:00
Juraci
254d6be520 Adding get_path method to Task class 2015-10-07 10:10:57 -03:00
Florian Apolloner
354383874f Show a nice error if the role name is missing. 2015-10-07 11:37:23 +02:00
=
345ce424c6 Explictly set the version of strict mode to use for powershell modules. 2015-10-07 06:24:37 +01:00
James Cammarata
9e364c2eb5 Don't modify results in callbacks
Fixes #12654
2015-10-06 21:43:43 -04:00
James Cammarata
8107c4efc7 Fixing a bug in galaxy parsing of text spec file lines 2015-10-06 21:25:28 -04:00
James Cammarata
7a815b7296 Force connection to local when localhost is delegated to 2015-10-06 20:37:57 -04:00
Toshio Kuratomi
97e8d25eb4 Fix for encoding errors when a command returns non-utf8 encoded values 2015-10-06 14:10:25 -07:00
Toshio Kuratomi
4f6f2c21e8 range vs xrange doesn't matter here and six.moves.range isn't available in six-1.3.0 (rhel7) 2015-10-06 12:19:03 -07:00
James Cammarata
5ae74f7d38 Version bump for 2.0.0-0.3.beta1 2015-10-06 08:19:20 -04:00
James Cammarata
d9b79b1bbc Also template the role name when loading roles
Fixes #12602
2015-10-06 03:33:08 -04:00
James Cammarata
9c9897805f More ansible-galaxy fixes for the old spec file format 2015-10-06 01:54:48 -04:00
James Cammarata
fb822a4305 Merge pull request #12637 from rcleere/rekey_fix
Fix ansible-vault rekey
2015-10-05 23:33:32 -04:00
James Cammarata
3b8eaf6128 Cleaning up some ansible-galaxy stuff 2015-10-05 22:59:08 -04:00
Ryan Cleere
0400ab8c0f Fix ansible-vault rekey 2015-10-05 16:41:34 -05:00
James Cammarata
d91b3c6b9d Make sure magic variables are available when templating vars_files
Also does some reorganization/cleanup on the magic vars/delegated
variable generation portions of VariableManager to make the above
possible.

Fixes #12633
2015-10-05 16:32:58 -04:00
James Cammarata
284bd118a0 Properly switch to the default transport when delegating from localhost 2015-10-05 16:32:58 -04:00
Brian Coca
6f88f79de9 removed dupe install code, now trap errors forom role.install 2015-10-05 13:04:12 -04:00
Brian Coca
f73329401b galaxy updates
better error reporting on fetching errors
use scm if it exists over src
unified functions in requirements
simplified logic
added verbose to tests
cleanup code refs, unused options and dead code
moved get_opt to base class
fixes #11920
fixes #12612
fixes #10454
2015-10-05 11:43:08 -04:00
Brian Coca
a3ed9fc131 updated to 'fixed' get_url so docs build again 2015-10-05 09:07:54 -04:00
Brian Coca
f3d0468726 updated submodule refs 2015-10-05 08:59:10 -04:00
James Cammarata
323012be2e Pop tags out of playbook include params
Fixes #12605
2015-10-05 08:41:34 -04:00
Toshio Kuratomi
10a4a4e986 Quote any file paths that we have to use with dd to copy.
This is because we pass the whole dd command string into the shell
that's running on the contained environment rather than running it
directly from python via subprocess without a shell.
2015-10-03 18:07:27 -07:00
Toshio Kuratomi
b83988d9fb Port libvirt_lxc connection plugin to v2 2015-10-03 17:42:49 -07:00
Toshio Kuratomi
567deb5ac2 Add explicit substitution of relative paths on the remote host just in case the connection programs do something unexpected. 2015-10-03 17:33:57 -07:00
Brian Coca
8528b20702 fixed usage text 2015-10-03 12:02:51 -04:00
Brian Coca
04a2b221b9 removed conflicting short options 2015-10-03 10:05:23 -04:00
James Cammarata
38528c8ef3 Show more info in the minimal callback for unreachable hosts
Fixes #12621
2015-10-03 01:41:57 -04:00
Toshio Kuratomi
613e87db6c FIx typo arg_path (not plural) 2015-10-02 19:55:32 -07:00
Brian Coca
4ba5ebd1c8 Merge pull request #12538 from yesbox/url_lookup_plugin_httperror_fix
Fix url lookup plugin HTTPError message not being reachable
2015-10-02 21:30:16 -04:00
Peter Sprygada
ab3239ecd7 added methods for retrieving vapp and vm 2015-10-02 18:01:35 -04:00
Toshio Kuratomi
10750214ea Since Connection.execute_command() returns bytes, deal with the repurcussions here. 2015-10-02 12:39:36 -07:00
Brian Coca
e2ae3215f6 corrected no_log for items and skipped tasks
corrected output from default callback
added new tests for no_log loops
updated makefile test to check for both positive and negative occurrences of no_log
2015-10-02 14:35:33 -04:00
James Cammarata
c28758d2a8 Merge branch 'ssh-args' of https://github.com/amenonsen/ansible into amenonsen-ssh-args 2015-10-02 13:38:00 -04:00
James Cammarata
82faba619e Also add args_path param to powershell shell plugin 2015-10-02 13:25:26 -04:00
James Cammarata
30d481ac57 Fix old-style (non-python) module support 2015-10-02 12:58:35 -04:00
Toshio Kuratomi
e40e08d799 Update core sumodule ref to fix docs 2015-10-02 09:22:43 -07:00
Abhijit Menon-Sen
b127221f50 Pass default None to getattr, remove repeated call 2015-10-02 21:26:25 +05:30
Abhijit Menon-Sen
96c4dc273a Set explicit default for ANSIBLE_SSH_ARGS
The earlier code behaved exactly as though this default had been set,
but it was actually handled as a(n unnecessary) special case inside the
connection plugin, rather than set as an explicit default.

If the default is overriden either in ansible.cfg or the environment,
the new code will continue to work (in fact, it won't know or care,
since it just uses the value set in the PlayContext).

This is submitted as a separate commit for easier review to address
backwards-compatibility concerns.
2015-10-02 21:26:25 +05:30
Abhijit Menon-Sen
1981bf2b95 Aggregate ssh arguments in PlayContext instead of the connection plugin
Using set_host_overrides() in the connection plugin to access the ssh
argument variables from the inventory didn't see group_vars/host_vars
settings, as noted earlier. Instead, we can set the correct values in
the PlayContext, which has access to all command-line options, task
settings, and variables.

The only downside of doing so is that the source of the settings is no
longer available in ssh.py, and therefore can't be logged. But the code
is simpler, and it actually works.

This change was suggested by @jimi-c in response to the FIXME in the
earlier commit.
2015-10-02 21:26:25 +05:30
Abhijit Menon-Sen
3ad9b4cba6 Rework additional ssh argument handling
Now we have the following ways to set additional arguments:

1. [ssh_connection]ssh_args in ansible.cfg: global setting, prepended to
   every command line for ssh/scp/sftp. Overrides default ControlPersist
   settings.
2. ansible_ssh_common_args inventory variable. Appended to every command
   line for ssh/scp/sftp. Used in addition to ssh_args, if set above, or
   the default settings.
3. ansible_{sftp,scp,ssh}_extra_args inventory variables. Appended to
   every command line for the relevant binary only. Used in addition to
   #1 and #2, if set above, or the default settings.
3. Using the --ssh-common-args or --{sftp,scp,ssh}-extra-args command
   line options (which are overriden by #2 and #3 above).

This preserves backwards compatibility (for ssh_args in ansible.cfg),
but also permits global settings (e.g. ProxyCommand via _common_args) or
ssh-specific options (e.g. -R via ssh_extra_args).

Fixes #12576
2015-10-02 21:26:25 +05:30
Toshio Kuratomi
f13d5201b8 Update module refs 2015-10-02 08:34:05 -07:00
Brian Coca
4c9f58a152 added no_log censoring to item output
should be last commit that fixes #12214
2015-10-02 09:11:41 -04:00
Brian Coca
ba4afcbbb6 added no_log to results
normalized outputs to use display class
cleaned up unused imports
2015-10-02 09:11:41 -04:00
Brian Coca
c27bd4fab0 {sudo,su}_user does not imply become 2015-10-02 09:11:41 -04:00
James Cammarata
57372906aa Pull host/group vars when adding hosts/groups
Fixes #12582
2015-10-02 02:47:09 -04:00
James Cammarata
aa3687d736 Fix syntax error for octal in encrypt methods 2015-10-02 02:27:57 -04:00
James Cammarata
538568305a Submodule pointer update for accelerate module fixes 2015-10-02 00:50:02 -04:00
James Cammarata
8ef78b1cf8 Fixing accelerated connection plugin 2015-10-02 00:50:02 -04:00
Brian Coca
3705d54485 fixed error reporting on splitter 2015-10-01 19:03:04 -04:00
Brian Coca
de2f62bd9e fixed error reporting for unkown become user 2015-10-01 18:58:16 -04:00
Brian Coca
6d6bfbc3d2 added missing import for pwd, was being obscured by exception catching and fallback 2015-10-01 18:56:30 -04:00
Brian Coca
a680ef66dd fixed vault password file script execution 2015-10-01 18:49:51 -04:00
Brian Coca
6b842d9c49 fixed incorrect data passing on certain events 2015-10-01 18:49:51 -04:00
Brian Coca
2463922306 fixed error reporting when missing redis import 2015-10-01 18:49:51 -04:00
Brian Coca
6e96188085 added missing entry for dealing with bcc 2015-10-01 18:49:51 -04:00
Brian Coca
6ec5abf1c3 fixed some pyflakes 2015-10-01 14:14:20 -04:00
Abhijit Menon-Sen
49b35ad5dd Remove mysterious old cruft
The two lines were added in 2673eb0a and modified in 60e1a1f8, but foo
is completely unused. Removing it doesn't break anything: out it goes!
2015-10-01 20:32:08 +05:30
Brian Coca
fe0e4f27ad Merge pull request #12584 from amenonsen/fixups
Remove an unwanted FIXME annotation
ok, confirmed we don't want to support it
2015-10-01 10:24:58 -04:00
Brian Coca
6c190aa8a4 updated ansible-doc to ignore more stuff that has been added to the module repos 2015-10-01 10:17:41 -04:00
Brian Coca
1a56a5c442 created debug method, renamed debug attribute to _debug 2015-10-01 10:17:41 -04:00
James Cammarata
deff045aa9 Fix bug caused by options not having start_at_task when used through adhoc
Fixes #12590
2015-10-01 10:09:58 -04:00
Toshio Kuratomi
a0920c06e1 Pull submodule refs to fix docs builds 2015-09-30 19:57:55 -07:00
Toshio Kuratomi
4dae7eeca1 Update submodule refs 2015-09-30 19:41:56 -07:00
Toshio Kuratomi
56fa9a5098 Port to v2 API 2015-09-30 19:39:07 -07:00
Toshio Kuratomi
d35c9a30fb Minor refactorings 2015-09-30 19:39:06 -07:00
Toshio Kuratomi
888bcd65a8 Create error messages instead of tracebacks. 2015-09-30 19:39:06 -07:00
Abhijit Menon-Sen
93515468c4 Remove an unwanted FIXME annotation
<crab> jimi|ansible: do you think it should be possible to add both
       foo:22 and foo:23 to the inventory?
<jimi|ansible> no

…so we don't want an invitation to FIXME.
2015-10-01 06:56:29 +05:30
Toshio Kuratomi
4cfcf5d61b Merge pull request #12568 from mgedmin/py3k
Python 3: fix most tests for ansible.module_utils.basic
2015-09-30 12:47:29 -07:00
Trond Hindenes
94cfbe7ee9 Get-AnsibleParam 2015-09-30 21:02:12 +02:00
James Cammarata
dcb8caf9e8 Remember if we already skipped tasks via --start-at-task
Fixes #12482
2015-09-30 14:12:38 -04:00
chouseknecht
57adf11262 Fix metadata description for galaxy_tags. 2015-09-30 13:36:28 -04:00
chouseknecht
f4690e3bfe Changing tag to galaxy_tag. 2015-09-30 13:36:23 -04:00
chouseknecht
8360a1b3f2 Replace categories with tags.
Also added --ignore-certs option for use with install and search commands. Helpful when
overriding server and server has self signed cert.
2015-09-30 13:36:17 -04:00
Abhijit Menon-Sen
0bb34fd076 Make «ansible-vault view» not write plaintext to a tempfile
CLI already provides a pager() method that feeds $PAGER on stdin, so we
just feed that the plaintext from the vault file. We can also eliminate
the redundant and now-unused shell_pager_command method in VaultEditor.
2015-09-30 22:13:36 +05:30
Brian Coca
bf06e36382 updated async to pass along no_log setting 2015-09-30 11:52:27 -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
ddafed4403 Merge pull request #12528 from bcoca/task_logging
task logging revamp
2015-09-30 11:38:34 -04:00
Brian Coca
7b64126c9d pushed up openvz detection for cases of 'stacked' virtualization 2015-09-30 11:27:50 -04:00
Linus Unnebäck
45f9800754 facts: correctly detect docker inside a xen host 2015-09-30 17:08:21 +02:00
James Cammarata
3bd71d0619 Use delegated_to field for play context remote_addr, if none other exists
Fixes #12527
2015-09-30 09:27:29 -04:00
James Cammarata
40bdf09998 Merge pull request #12561 from srvg/anotherdirpy
Inject existing groups at InventoryDir initialization
2015-09-30 08:18:34 -04:00
James Cammarata
6fcd292c5e Merge pull request #12569 from amenonsen/fixes
Bring groups handling in ini.py up-to-date (trivial fix)
2015-09-30 08:16:14 -04:00
James Cammarata
dfa33d0f23 Tweak variable manager use in role includes to avoid test failures 2015-09-30 08:05:55 -04:00
Abhijit Menon-Sen
50d75f8d6d Bring groups handling in ini.py up-to-date
Since c8f2483d, ini.py expects to always be passed in a pre-created list
of groups, and can no longer deal sensibly with an empty list; this just
makes that expectation clear.
2015-09-30 15:13:37 +05:30
James Cammarata
a89412ecb1 Fail all hosts if a run_once task fails
Fixes #12563
2015-09-29 15:10:00 -04:00
James Cammarata
7173f587ed Allow delegate_to on a role again
Fixes #12560
2015-09-29 15:07:32 -04:00
James Cammarata
a3e913da62 Don't assume handlers exist in the same role (if any)
Fixes #12536
2015-09-29 14:52:43 -04:00
Serge van Ginderachter
7461ba9998 Inject existing groups at InventoryDir initialization
This fixes a corner case where ini files live in a subdir
of the main inventory directory.

Reproducing the original error:

mkdir -p inventory/ini
cat > inventory/ini/hosts << EOF
[www]
www1
EOF

$ ansible -i inventory/ all -m ping
ERROR! 'all'

(or without the [www] group, it would complain about 'ungrouped')
2015-09-29 18:16:05 +02:00
James Cammarata
79e364d98b Properly template role dependency names
Fixes #12505
2015-09-29 09:55:57 -04:00
Marius Gedminas
5edd6d9be4 Python 3: there's no basestring
Fixes another failing test.

(I don't want to do a global search/replace for 'basestring' because I
want to have unit tests covering each occurrence.  When I run out of
existing failing tests, I'll try to write new ones.)
2015-09-29 09:01:57 +03:00
Toshio Kuratomi
95ede22a1e Add a comment about the docker connection and usage by non-root users 2015-09-28 22:50:06 -07:00
Toshio Kuratomi
0e110d23f8 Misc cleanups and some fixes for docker connection plugin
* Remove extraneous imports
* Fix some error handling
* Enable pipelining
* Disable su since it doesn't work
* Add error message when installed docker is not recent enough to
  support this plugin
* Move nested functions to class level
* Make transport a class attribute
* Make exec_command, put_file and fetch_file more robust
2015-09-28 22:35:52 -07:00
Toshio Kuratomi
1d119a1f46 Cleanup some extraneous imports 2015-09-28 22:35:52 -07:00
James Cammarata
ffdba96668 Save the included directory for playbook includes for use as the basedir
Fixes #12524
2015-09-29 00:28:45 -04:00
Konstantin Manna
4226e49bc6 bugfix: statement had no effect => statement now has assumed effect 2015-09-28 23:33:48 -04:00
Konstantin Manna
1ccfeafa76 bugfix: use correct close calls 2015-09-28 23:33:32 -04:00
Brian Coca
c1ad96e5cf removed fixme as it is already implemented below. 2015-09-28 23:32:57 -04:00
RedRampage
922b5c8109 Removed deletion of salt by 'password' lookup
Removed deletion of salt param from lookup file by 'password' lookup_filter.
Old behaviour leads to constant changed status when two tasks uses same lookup,
one with 'encrypt' parameter, and other without.

For example:

    tasks:
      - name: Create user
        user:
          password: "{{ lookup('password', inventory_dir + '/creds/user/pass' ncrypt=sha512_crypt) }}"
          ...
    # Lookup file 'creds/user/pass' now contain password with salt
      - name: Create htpasswd
        htpasswd:
          password: "{{ lookup('password', inventory_dir + '/creds/user/pass') }}"
          ...
    # Salt gets deleted from lookup file 'creds/user/pass'
    # Next run of "Create user" task will create it again and will have 'changed' status
2015-09-28 23:28:01 +03:00
Toshio Kuratomi
12a2585e84 chroot plugin minor touchups:
* Disable su as it's not currently working 100% (and was disabled in v1).
* Move BUFSIZE out of the class to match other conenction plugins
* _connect shouldn't return self.
2015-09-28 13:16:56 -07:00
Toshio Kuratomi
7a4266e9c5 One more try -- the error message should reference the become method
requested via play context
2015-09-28 11:28:33 -07:00
Toshio Kuratomi
696cf32d63 Correct name of variable 2015-09-28 11:28:33 -07:00
Brian Coca
8d024c3747 Merge pull request #12472 from resmo/for_ansible
cloudstack: improvements and tests
2015-09-28 14:27:22 -04:00
Toshio Kuratomi
0dfa1fb43a Correct call to method typo 2015-09-28 11:24:00 -07:00
Toshio Kuratomi
d827325644 Re-order the methods in ssh.py so that methods needed for implementation are near and just above the relevant public methods.
Standard with the rest of the code base.
2015-09-28 10:34:02 -07:00
Toshio Kuratomi
37844a5c1b Update submodule refs 2015-09-28 09:47:16 -07:00
Toshio Kuratomi
c811668a4d Merge pull request #12546 from amenonsen/ssh-cleanups
A couple of ssh cleanups
2015-09-28 09:46:24 -07:00
Toshio Kuratomi
05af4c8e91 Merge pull request #12471 from amenonsen/pipelining
Make pipelining a connection variable
2015-09-28 09:02:43 -07:00
Abhijit Menon-Sen
38c7422da5 Move ControlPersist/Path checking into a separate method
This is also peripheral to what _build_command needs, can be improved
and tested independently, and so makes more sense in a separate method.

This commit doesn't change any functionality (and I've verified that it
works with the various combinations: control_path set in ansible.cfg,
ssh_args adding or not adding ControlMaster/ControlPersist, etc.).
2015-09-28 21:11:56 +05:30
Toshio Kuratomi
c3a05b1181 Update to fix one more doc error 2015-09-28 08:38:24 -07:00
Abhijit Menon-Sen
f33d541964 Move sshpass checking into a separate method
Checking for sshpass is peripheral to the calling code, so it's easier
to follow when the details are moved into a method.
2015-09-28 20:58:30 +05:30
Abhijit Menon-Sen
565c6f1ae7 Make ansible_pipelining a connection variable
SSH pipelining can be a significant performance improvement, but it will
not work if sudoers is configured to requiretty. With this change, one
could have pipelining enabled in ansible.cfg, but use sudo to turn off
requiretty in a separate play (or task) where pipelining is disabled:

    - hosts: foo
      vars:
          ansible_pipelining: no
      tasks:
        - lineinfile: dest=/etc/sudoers line='Defaults requiretty' state=absent
          sudo_user: root

(Note that sudoers has a complicated syntax, so the above lineinfile
invocation may be too simplistic for production use; but the point is
that a separate play can do something to disable requiretty.)
2015-09-28 20:55:14 +05:30
Toshio Kuratomi
fd267989fb Fix docs build 2015-09-28 08:23:12 -07:00
Toshio Kuratomi
69ebb899a7 Update submodule refs 2015-09-28 07:52:04 -07:00
James Cammarata
c860775b5d Another fix for --limit in adhoc 2015-09-28 10:39:33 -04:00
James Cammarata
babf47decb Clean up some bugs related to --limit on adhoc commands 2015-09-28 09:02:24 -04:00
James Cammarata
621575681a Merge pull request #12542 from amenonsen/qfix
Clarify why we add -q only for ssh
2015-09-28 08:18:31 -04:00
Abhijit Menon-Sen
2ce219b5af Clarify why we add -q only for ssh 2015-09-28 16:00:23 +05:30
Marius Gedminas
9b39af8e9a Python 3: the StringIO module is gone
Fixes 17 failing tests on Python 3.4, restoring the 8 failures we had
last Friday.
2015-09-28 09:28:53 +03:00
Jesper Geertsen Jonsson
353b549eb0 Fix HTTPError message not being reachable 2015-09-27 18:01:19 +00:00
James Cammarata
4cd810a674 Only append -q option for ssh if we're using ssh 2015-09-26 21:27:38 -04:00
James Cammarata
46984a067c Don't wrap vars from include_vars with UnsafeProxy 2015-09-26 15:16:46 -04:00
James Cammarata
abfeb104df Merge pull request #12529 from soarpenguin/bug-fix
fix no self pointer out of class.
2015-09-26 14:18:58 -04:00
Toshio Kuratomi
342bc97322 Port chroot conection plugin to the latest v2 connection API.
Also get pipelining working for people who look to chroot as an example
for their own connection plugins

Note: In the latest v2 API, action handles become but chroot doesn't
reliably handle become.  Maybe we need to add a has_become attribute
that the action can display an appropriate error.
2015-09-26 10:00:28 -07:00
Toshio Kuratomi
056a020357 Do not fail if /proc/uptime is not present
This can happen in chroot environments that don't have all of /proc
available
2015-09-26 10:00:28 -07:00
Toshio Kuratomi
ae66d01a33 Document how a command is executed on the remote machine
Helps connection plugin implementors understand how to structure
exec_command()
2015-09-26 10:00:28 -07:00
James Cammarata
6dd38c2a10 Fix parent attribute lookup to be default
Fixes #12526
2015-09-26 11:28:29 -04:00
James Cammarata
a1c38a3fda Adding delegate_to to Blocks 2015-09-26 11:28:01 -04:00
Brian Coca
bb6141ec41 renamed managed_syslog to no_target_syslog 2015-09-26 08:22:32 -04:00
Abhijit Menon-Sen
8251ab2e37 Update outdated comment
Since #12165 was merged, hostnames are properly validated.
2015-09-26 17:32:13 +05:30
Abhijit Menon-Sen
6ff4d40d74 Update outdated comment
We now use "sudo -n" instead of "sudo -k && sudo …"
2015-09-26 17:28:22 +05:30
soarpenguin
1ea66e234f fix logic judgment error. 2015-09-26 15:15:53 +08:00
soarpenguin
2caa52a981 fix no self pointer out of class. 2015-09-26 14:09:56 +08: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
James Cammarata
60e1a1f8eb Fix bug in nested lookup where pop is called indiscriminately 2015-09-25 17:16:56 -04:00
Brian Coca
191ae0831d fixed syntax error 2015-09-25 17:15:26 -04:00
Brian Coca
48412c13b2 fixed copy n paste typo on future code 2015-09-25 17:08:03 -04:00
James Cammarata
bb1101498d Clean up typo from cdc6c52 2015-09-25 16:58:27 -04:00
James Cammarata
cdc6c5208e Clean string data run through the template engine
Also strip UnsafeProxy off of low level srings and objects to ensure
they don't cause issues later down the road

Fixes #12513
2015-09-25 16:49:31 -04:00
James Cammarata
ae9b34b1d9 Fix for equality checking in Host to make sure things are like types 2015-09-25 16:49:31 -04:00
Toshio Kuratomi
fa9ea32a86 Fix test of whether a result has a failed host 2015-09-25 12:09:27 -07:00
Brian Coca
1c49e3b842 draft shared service code for modules, part of spliting service module 2015-09-25 11:26:21 -04:00
Toshio Kuratomi
41756be4d3 Update core module ref 2015-09-25 07:49:32 -07: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
James Cammarata
ccddda1ebc Merge pull request #12502 from mgedmin/py3k
Python 3: make test_variable_manager_precedence pass
2015-09-25 03:05:02 -04:00
James Cammarata
eb8d7dcd14 Make sure formatted strings don't bomb on tuples
Fixes #12501
2015-09-25 03:01:42 -04:00
James Cammarata
31d5f88a1d Use the task loop to calculate multiple delegated hosts
Due to the way we're now calculating delegate_to, if that value is based
on a loop variable ('item') we need to calculate all of the possible
delegated_to variables for that loop.

Fixes #12499
2015-09-25 01:41:09 -04:00
Toshio Kuratomi
a1428d6bed Remove tmp as a parameter to the connection plugins
There doesn't appear to be anything that actually uses tmp_path in the
connection plugins so we don't need to pass that in to exec_command.
That change also means that we don't need to pass tmp_path around in
many places in the action plugins any more.  there may be more cleanup
that can be done there as well (the action plugin's public run() method
takes tmp as a keyword arg but that may not be necessary).

As a sideeffect of this patch, some potential problems with chmod and
the patch, assemble, copy, and template modules has been fixed (those
modules called _remote_chmod() with the wrong order for their
parameters.  Removing the tmp parameter fixed them.)
2015-09-24 13:33:57 -07:00
James Cammarata
95b371dd60 Use AnsibleFileNotFound instead of AnsibleParsingError when YAML files are not found
And update portions of code to expect the proper error.

Fixes #12512
2015-09-24 16:27:25 -04:00
Toshio Kuratomi
0250beb68a Remove compress option from paramiko connection for now
It's not available on older versions of paramiko such as shipped in RHEL6
2015-09-24 13:18:00 -07:00
James Cammarata
12df9f2e31 Make hostvars more dynamic again to improve performance with large inventories
Fixes #12477
2015-09-24 13:53:44 -04:00
Abhijit Menon-Sen
82b33c381f We don't need even a token timeout here; just poll once
The process is already gone, so there's not going to be any new data
showing up on its stderr; we only want to make sure that we haven't
missed something that was already written. So polling once is enough.
2015-09-24 12:10:16 -04:00
Abhijit Menon-Sen
6e82df451a Clarify select() handling for ssh connections
This change is motivated by an ssh oddity: when ControlPersist is
enabled, the first (i.e. master) connection goes into the background; we
see EOF on its stdout and the process exits, but we never see EOF on its
stderr. So if we ran a command like this:

    ANSIBLE_SSH_PIPELINING=1 ansible -T 30 -vvv somehost -u someuser -m command -a whoami

We would first do select([stdout,stderr], timeout) and read the command
module output, then select([stdout,stderr], timeout) again and read EOF
on stdout, then select([stderr], timeout) AGAIN (though the process has
exited), and select() would wait for the full timeout before returning
rfd=[], and then we would exit. The use of a very short timeout in the
code masked the underlying problem (that we don't see EOF on stderr).

It's always preferable to call select() with a long timeout so that the
process doesn't use any CPU until one of the events it's interested in
happens (and then select will return independent of elapsed time).

(A long timeout value means "if nothing happens, sleep for up to <x>";
omitting the timeout value means "if nothing happens, sleep forever";
specifying a zero timeout means "don't sleep at all", i.e. poll for
events and return immediately.)

This commit uses a long timeout, but explicitly detects the condition
where we've seen EOF on stdout and the process has exited, but we have
not seen EOF on stderr. If and only if that happens, it reruns select()
with a short timeout (in practice it could just exit at that point, but
I chose to be extra cautious). As a result, we end up calling select()
far less often, and use less CPU while waiting, but don't sleep for a
long time waiting for something that will never happen.

Note that we don't omit the timeout to select() altogether because if
we're waiting for an escalation prompt, we DO want to give up with an
error after some time. We also don't set exceptfds, because we're not
actually acting on any notifications of exceptional conditions.
2015-09-24 12:10:16 -04:00
Toshio Kuratomi
03127dcfae remove the stdin return value from connection plugin exec_command() methods
The value was useless -- unused by the callers and always hardcoded to
the empty string.
2015-09-24 08:57:19 -07:00
James Cammarata
9d47eabfa4 Merge pull request #12506 from hyperized/devel
Add Weekday (0-6) as a number and add weeknumber (00-52)
2015-09-24 11:44:39 -04:00
Toshio Kuratomi
24b9e2e6d1 Update extras submodule ref 2015-09-24 07:18:23 -07:00
Gerben Geijteman
4c20964475 Add Weekday (0-6) as a number and add weeknumber (00-52) 2015-09-24 15:05:44 +02:00
Marius Gedminas
56f2a25bff Python 3: there's no 'unicode' 2015-09-24 12:53:48 +03:00
Marius Gedminas
6d4618f46f Python 3: there's no dict.iteritems() 2015-09-24 12:50:00 +03:00
Marius Gedminas
0624797375 Bugfix: if you define a custom __eq__, you must define a __hash__ too
Also, on Python 3 the stock object.__hash__ raises an error ("unhashable
type"), and we have code that uses Host instances as dict keys.
2015-09-24 12:46:06 +03:00
Marius Gedminas
a2bc6b4b26 Bugfix: if you define __eq__, you should define __ne__ too 2015-09-24 12:43:33 +03:00
Marius Gedminas
5d29a2eabd Python 3: shlex.split() wants unicode
On Python 2, shlex.split() raises if you pass it a unicode object with
non-ASCII characters in it.  The Ansible codebase copes by explicitly
converting the string using to_bytes() before passing it to
shlex.split().

On Python 3, shlex.split() raises ('bytes' object has no attribute 'read')
if you pass a bytes object.  Oops.

This commit introduces a new wrapper function, shlex_split, that
transparently performs the to_bytes/to_unicode conversions only on
Python 2.

Currently I've only converted one call site (the one that was causing a
unit test to fail on Python 3).  If this approach is deemed suitable,
I'll convert them all.
2015-09-24 12:36:05 +03:00
Toshio Kuratomi
5d3d9cfe0d Convert to byte strings to avoid UnicodeErrors
Fixes #12488
2015-09-23 15:24:17 -07:00
Brian Coca
de18bcb95f correct typo on error reporting
fixes #12495
2015-09-23 10:11:52 -04:00
Abhijit Menon-Sen
40f608a377 A bit more debugging output
We used to display input chunks earlier anyway, so this isn't making
things more verbose.
2015-09-23 22:35:14 +05:30
Abhijit Menon-Sen
9700d9c04f Fix typo in checking select results
It's possible for more than one fd to be set, so 'elif' is obviously not
the right thing to use.
2015-09-23 22:32:15 +05:30
James Cammarata
1164e83477 Remove unnecessary calls to save inventory restrictions since 81bf88b 2015-09-23 12:18:09 -04:00
Toshio Kuratomi
89a78ba16e Update submodule refs 2015-09-23 08:40:59 -07:00
James Cammarata
9e734df0ec Conditionally poll longer if we're still waiting for an auth prompt 2015-09-23 11:20:11 -04:00
Toshio Kuratomi
5f0f5363b6 Merge pull request #12487 from mgedmin/py3k
Fix one more failing test on Python 3
2015-09-23 08:18:17 -07:00
James Cammarata
2898e000a0 Don't use the connection timeout for the select poll timeout 2015-09-23 11:13:12 -04:00
Abhijit Menon-Sen
587054db2a Send initial data before calling select whenever possible
Without this, we could execute «ssh -q ...» and call select(), which
would timeout after the default 10s, and only then send initial data.
(This is a relic of the earlier change where we always ran ssh with
-vvv, so the situation where it would sit quietly never happened in
practice; but this would have been the right thing to do even then.)
2015-09-23 20:09:50 +05:30
James Cammarata
c9a004227e Improve error catching from malformed playbook data
Fixes #12478
2015-09-23 08:56:36 -04:00
James Cammarata
e8e1d9f6fb Apply --limit to inventory in adhoc commands
Fixes #12473
2015-09-23 08:28:38 -04:00
Marius Gedminas
95e655eb67 Python 3: there's no basestring
Fixes one failing test.

The long series of module_utils/basic.py fixes were all because
module_utils/basic is imported in ansible/inventory/script.py.
2015-09-23 10:04:26 +03: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
James Cammarata
65630d2ce1 Fixing one more bug related to staticmethods in LookupBase 2015-09-23 02:33:32 -04:00
James Cammarata
cbbb270761 Cleanup bug from moving base lookup methods to staticmethods 2015-09-23 02:26:19 -04:00
Abhijit Menon-Sen
ac98fe9e89 Implement ssh connection handling as a state machine
The event loop (even after it was brought into one place in _run in the
previous commit) was hard to follow. The states and transitions weren't
clear or documented, and the privilege escalation code was non-blocking
while the rest was blocking.

Now we have a state machine with four states: awaiting_prompt,
awaiting_escalation, ready_to_send (initial data), and awaiting_exit.
The actions in each state and the transitions between then are clearly
documented.

The check_incorrect_password() method no longer checks for empty strings
(since they will always match), and check_become_success() uses equality
rather than a substring match to avoid thinking an echoed command is an
indication of successful escalation. Also adds a check_missing_password
connection method to detect the error from sudo -n/doas -n.
2015-09-23 01:55:00 -04:00
Abhijit Menon-Sen
840a32bc08 Reorganise ssh.py to cleanly separate responsibilities
The main exec_command/put_file/fetch_file methods now _build_command and
call _run to handle input from/output to the ssh process. The purpose is
to bring connection handling together in one place so that the locking
doesn't have to be split across functions.

Note that this doesn't change the privilege escalation and connection IO
code at all—just puts it all into one function.

Most of the changes are just moving code from one place to another (e.g.
from _connect to _build_command, from _exec_command and _communicate to
_run), but there are some other notable changes:

1. We test for the existence of sshpass the first time we need to use
   password authentication, and remember the result.
2. We set _persistent in _build_command if we're using ControlPersist,
   for later use in close(). (The detection could be smarter.)
3. Some apparently inadvertent inconsistencies between put_file and
   fetch_file (e.g. argument quoting, sftp -b use) have been removed.

Also reorders functions into a logical sequence, removes unused imports
and functions, etc.

Aside: the high-level EXEC/PUT/FETCH description should really be logged
from ConnectionBase, while individual subclasses log transport-specific
details.
2015-09-23 01:55:00 -04:00
James Cammarata
95c6fe88e4 Fix handling of conditional vars_files which contain variables
Fixes #12484
2015-09-23 01:26:24 -04:00
Toshio Kuratomi
c83f51b7f2 Some LookupBase cleanups:
* Make LookupBase an abc with required methods (run()) marked as an
  abstractmethod
* Mark methods that don't use self as @staticmethod
* Document how to implement the run method of a lookup plugin.
2015-09-22 16:19:36 -07:00
Toshio Kuratomi
049952fa50 Update submodule refs. 2015-09-22 14:01:53 -07:00
James Cammarata
1e7fd2196d Fixing synchronize + delegate_to user bug
Fixes #12464
2015-09-22 16:06:52 -04:00
James Cammarata
3ffc2783c4 Don't bomb out on handlers with undefined variables in their names 2015-09-22 12:42:02 -04:00
Toshio Kuratomi
4b0d52d2cb Merge pull request #12420 from ansible/win_prefix_modules
Fix for user defined modules not overriding modules from core.
2015-09-22 09:16:38 -07:00
James Cammarata
1076155d8d When failing because of vars_files templating, try and bubble up the file/line info 2015-09-22 12:13:55 -04:00
Toshio Kuratomi
18e2ee16ef Fix for user defined modules not overriding modules from core.
This fix takes into account that powershell modules are somewhat
different than regular modules and have to be kept separate.
2015-09-22 09:07:37 -07:00
Toshio Kuratomi
f61fb9787d Update submodule refs 2015-09-22 08:59:10 -07:00
Rene Moser
b43939dfd6 cloudstack: make tags handling idempotence
Credits to @jeffersongirao, who provided the patch.
2015-09-22 16:12:35 +02:00
James Cammarata
c30e464388 Additional tweaks to callback output for delegate_to 2015-09-22 09:25:38 -04:00
James Cammarata
513619867a Show delegated-to host in callback message
Fixes #12465
2015-09-22 08:45:04 -04:00
Rene Moser
efd122c2f0 cloudstack: add returns_to_int return handling into utils
It is not uncommon that the API returns string for int values e.g. ports in listFirewallRules or listPortForwardings,
2015-09-22 14:44:08 +02:00
Rene Moser
c9a3801a25 cloudstack: common argument_spec and requried_together to utils 2015-09-22 14:36:43 +02:00
James Cammarata
f563b22446 Merge pull request #12461 from mgedmin/py3k
Python 3: there's no basestring
2015-09-22 03:11:43 -04:00
James Cammarata
d2949f5449 Merge pull request #12463 from mgedmin/fix-ansible-doc
Fix option descriptions in ansible-doc output
2015-09-22 03:10:59 -04:00
James Cammarata
0fb4a6a67b Tweak to the way new host variables are created for delegated hosts 2015-09-22 03:03:21 -04:00
Marius Gedminas
339790adc4 Fix option descriptions in ansible-doc output
Fixes #12462.
2015-09-22 10:00:33 +03:00
James Cammarata
18adfc6d1a Set some default vars on hosts created for delegate_to connections 2015-09-22 02:35:01 -04:00
James Cammarata
a22f7b883d Restrict role param vars to tasks within that role
Fixes #12460
2015-09-22 02:14:18 -04:00
Marius Gedminas
fc0dcc3947 Python 3: there's no basestring
Fixes one failing test.

Now technically a filename can be a bytestring, even on Python 3.  I
hope this is unlikely for Ansible.
2015-09-22 08:42:33 +03:00
James Cammarata
ecf7d8c9ee Fix relative path bug in copy action
Without rebreaking #12055

Fixes #ansible-modules-core/2098
2015-09-22 01:31:03 -04:00
James Cammarata
53794b692c Merge pull request #12457 from ansible/warn-if-core-modules-not-present
Detect if core modules aren't installed and warn if that is the  case
2015-09-21 21:15:54 -04:00
Toshio Kuratomi
627f9d73ba Detect if core modules aren't installed and warn if that is the case
Fixes #11206
2015-09-21 12:31:51 -07:00
Brian Coca
d27b73e7b5 fixed case in which boto3 is present but module is not using it yet 2015-09-21 15:16:07 -04:00
James Cammarata
cb7060c9fe Allow undefined var errors to bubble up when templating vars_files in certain conditions
Follow up to 8769f03c, which allows the undefined var error to be raised
if we're getting vars with a full context (play/host/task) and the host
has already gathered facts. In this way, vars_files containing variables
that fail to be templated are not silently ignored.
2015-09-21 11:57:37 -04:00
Brian Coca
f96255f7fd fixed typo 2015-09-21 10:10:21 -04:00
James Cammarata
86566e691a Merge pull request #12447 from mgedmin/py3k
Python 3: there is no 'basestring'
2015-09-21 09:39:17 -04:00
James Cammarata
8769f03c16 Also catch AnsibleUndefinedVariable errors when templating vars_files names
Fixes #12449
2015-09-21 09:35:06 -04:00
Toshio Kuratomi
2a614c1c0f Close module file once we're done reading from it 2015-09-21 01:46:29 -07:00
Marius Gedminas
9cdb6ebae3 Python 3: there is no 'basestring'
This fixes a failing unit test.

In actual use (which is still quite far), I'm not sure if bytes ->
unicode conversion should be done here (in which case the code will fail
with an AttributeError: 'bytes' object has no attribute 'readlines'), or
inside self._connection.exec_command() (in which case my change is
correct).
2015-09-21 08:48:59 +03:00
Victor Salgado
20bbd66e85 Use dict.get() 2015-09-20 22:54:02 -03:00
James Cammarata
65bf14cbb0 Merge pull request #12431 from hslee16/devel
Stops using _groups_list to check for host when using 'add_host'
2015-09-20 18:17:02 -04:00
James Cammarata
88e1aa94fa Add play context vars to list of variables before post validation
Fixes #12437
2015-09-19 21:51:24 -04:00
James Cammarata
05f6e76407 Template handler names before checking to see if they need to run
Fixes #12427
2015-09-18 18:54:48 -04:00
James Cammarata
72769d1899 Merge pull request #12432 from mgedmin/py3k
Python 3: there's no xrange
2015-09-18 15:33:08 -04:00
James Cammarata
37f2cbc429 Merge pull request #12436 from amenonsen/ranges
Support «hosts: foo[1:]» and add tests for split/apply_subscript
2015-09-18 15:32:15 -04:00
James Cammarata
1f5584aa5b Refactoring delegate_to code
Now, instead of relying on hostvars on the executor side, we compile
the vars for the delegated to host in a special internal variable and
have the PlayContext object look for things there when applying task/
var overrides, which is much cleaner and takes advantage of the code
already dealing with all of the magic variable variations.

Fixes #12127
Fixes #12079
2015-09-18 15:25:10 -04:00
James Cammarata
fa69e8ebb8 Fixing some bugs in _compute_delegate() in TaskExecutor
* Clearing interpreter settings from variables, so those set for the
  original host aren't incorrectly applied to the delegated to host
* Fixed incorrect string for remote user in delegated hosts hostvars
* Properly looking for multiple possiblities in the delegated-to hosts
  hostvars (ansible_ssh_host vs. ansible_host)
2015-09-18 15:25:10 -04:00
Peter Sprygada
e45b71d6cd added new module object to vca 2015-09-18 13:45:37 -04:00
Abhijit Menon-Sen
2fcdb37e7b Support «hosts: groupname[1:]» notation (~= 'the rest of the group') 2015-09-18 22:28:34 +05:30
Brian Coca
aca83b15e5 Merge pull request #12425 from privateip/devel
initial add of vca common module
2015-09-18 11:24:54 -04:00
Brian Coca
11707576a3 fix for AIX network facts
fixes #12434
2015-09-18 10:43:53 -04:00
Brian Coca
d7b61db6dc made boto3 non mandatory 2015-09-18 08:05:33 -04:00
Toshio Kuratomi
fdb1c14004 Update the submodule pointers 2015-09-18 04:49:30 -07:00
Petr Mifek
27f779a7cc Small clean up and refactor of the rsync target ipv6 observing formatter for synchronize action. 2015-09-18 11:46:33 +02:00
Marius Gedminas
baf9320369 Python 3: there's no xrange
Use six.moves.range instead (aliased to xrange on Python 2, aliased to
range on Python 3).

Also I couldn't resist replacing the elaborate chr/ord/randrange dance
with the simpler random.choice(string.ascii_lowercase) that was already
used elsewhere in the Ansible codebase.
2015-09-18 08:52:26 +03:00
Alex Lee
cf289191e5 return None if group does not exist in inventory groups 2015-09-17 15:58:10 -07:00
Petr Mifek
6f3f4dff7a Change synchronize module plugin to be backwards compatible with RSync 2.6.9 with regard to handling IPv6 addresses. 2015-09-17 23:19:11 +02:00
James Cammarata
cc6627cdd6 Remove custom json encoder cleaner and strip proxy var stuff out before encoding
Fixes #12349
2015-09-17 16:04:47 -04:00
James Cammarata
c95d4ca05f Properly assign search path to environment.loader in template lookup
Same fix as was applied in f162990c to the action plugin

Fixes #12355
2015-09-17 14:47:20 -04:00
James Cammarata
bde5ed9672 Catch worker errors that may be subclassed on others that lead to incorrect exits 2015-09-17 14:46:53 -04:00
Peter Sprygada
8f43d222c0 initial add of vca common module 2015-09-17 14:41:53 -04:00
James Cammarata
053c41e79d Fix typo in ansible module_utils import from galaxy code 2015-09-17 14:25:48 -04:00
Chrrrles Paul
7b778d8a4b Merge pull request #12424 from amenonsen/ipv6-ranges
Tested.  Thanks for spotting and then fixing this -- Allow hexadecimal ranges in IPv6 addresses, not only 0-9
2015-09-17 14:21:03 -04:00
Abhijit Menon-Sen
2d420a9bb7 Allow hexadecimal ranges in IPv6 addresses, not only 0-9 2015-09-17 23:32:58 +05:30
James Cammarata
b386f0c64d Merge pull request #12423 from amenonsen/split-fixup
Remove deprecation warning; now handled in _split_patterns
2015-09-17 14:02:22 -04:00
James Cammarata
a1fffff92c Merge branch 'addresses' of https://github.com/amenonsen/ansible into amenonsen-addresses 2015-09-17 13:43:05 -04:00
Abhijit Menon-Sen
62ca6b5e35 Remove deprecation warning; now handled in _split_patterns 2015-09-17 23:09:56 +05:30
Abhijit Menon-Sen
575a8b8c77 Merge Host.ipv[46]_address into .address
The earlier distinction was never used; .ipv6_address was always a copy
of .ipv4_address, and the latter was always used to set the remote_addr
field in the PlayContext.

Also uses the canonical ansible_host/ansible_port names when setting the
address and port from variables.
2015-09-17 23:03:48 +05:30
James Cammarata
951128d7a6 Merge branch 'hostpatterns' of https://github.com/amenonsen/ansible into amenonsen-hostpatterns 2015-09-17 13:31:51 -04:00
Victor Salgado
14fefebaad Modify _split_pattern to use map when working with list input 2015-09-17 13:52:54 -03:00
James Cammarata
46baed864f Submodule update after correcting doc bug 2015-09-17 11:30:38 -04:00
James Cammarata
0beb37a121 Submodule update 2015-09-17 11:26:54 -04:00
James Cammarata
ba82e57445 Merge branch 'sudo_on_if_needed' of https://github.com/apollo13/ansible into apollo13-sudo_on_if_needed 2015-09-17 11:03:27 -04:00
Toshio Kuratomi
8532ddd5ed typo in formatting the warning message 2015-09-17 08:01:43 -07:00
Toshio Kuratomi
4ae5512fb0 Restore python3 compat fix and fix AnsibleError undefined before use 2015-09-17 07:45:21 -07:00
James Cammarata
c881b1acae Merge pull request #12407 from mgedmin/py3k
Python 3: basestring in play_context.py
2015-09-17 10:40:57 -04:00
James Cammarata
8acbc00853 Fixing groups variable structure to match v1
Fixes #12418
2015-09-17 10:24:03 -04:00
Abhijit Menon-Sen
349eec7855 Fix missing colon (typo) in IPv6 pattern 2015-09-17 19:34:33 +05:30
Abhijit Menon-Sen
2405861a9e Use ',' instead of ':' or ';' to separate host patterns
The earlier-recommended "pat1:pat2:pat3[x:y]" notation doesn't work well
with IPv6 addresses, so we recommend ',' as a separator instead. We know
that commas can't occur within a pattern, so we can just split on it.

We still have to accept the "foo:bar" notation because it's so commonly
used, but we issue a deprecation warning for it.

Fixes #12296
Closes #12404
Closes #12329
2015-09-17 19:31:16 +05:30
Florian Apolloner
d9f873495e Ported over #7158 to support SELinux context switches. 2015-09-17 15:03:46 +02:00
Brian Coca
ee840f3029 fixed function signature 2015-09-17 07:47:51 -04:00
Florian Apolloner
decd9e8710 Only use become if the target user difers from the current remote user. 2015-09-17 12:24:16 +02:00
Marius Gedminas
8243954dcd Python 3: basestring in play_context.py 2015-09-17 08:08:55 +03:00
Toshio Kuratomi
3db8070aa3 Fix urlopen usage to use open_url instead
Add a travis test for urlopen usage
2015-09-16 20:40:17 -07:00
James Cammarata
e97d448838 Cleanup one more missed inventory bug 2015-09-16 16:53:08 -04:00
James Cammarata
5db9e38377 Merge pull request #12345 from mgedmin/py3k
Python 3: two more instances of 'basestring'
2015-09-16 16:49:46 -04:00
Chris Church
43b15ab9a4 Merge pull request #12385 from cchurch/winrm_put_empty_file
Enable winrm put_file to upload an empty file.
2015-09-16 16:46:01 -04:00
Chris Church
93af0b327f Merge pull request #12384 from cchurch/powershell_strict_mode
Add PowerShell exception handling and turn on strict mode.
2015-09-16 16:45:40 -04:00
Chris Church
0325f92b6a Merge pull request #12054 from cchurch/winrm_options
Support additional options for WinRM connections via inventory variables
2015-09-16 16:39:18 -04:00
Chris Church
c5409ab493 Remove ansible_winrm_ host/port/user/pass options, update exception handling around establishing a winrm connection. 2015-09-16 16:38:19 -04:00
Chris Church
056c6b77d0 Support additional options for WinRM connections via inventory variables. 2015-09-16 16:38:18 -04:00
James Cammarata
11c27078c0 Cleaning up inventory bugs from earlier group change 2015-09-16 16:36:27 -04:00
Chris Church
1d15e8f37a Pass windows command as-is without splitting/rejoining parameters.
* Fixes extra spaces added between parameters from https://github.com/ansible/ansible-modules-core/issues/1929
* Correctly decode PowerShell command encoded as UTF-16-LE so that it displays correctly in debug messages, fixes the other issue from https://github.com/ansible/ansible-modules-core/issues/1929
* Add test to verify that script parameters are passed as-is, so $true is interpreted as a boolean, fixes https://github.com/ansible/ansible/issues/10947
2015-09-16 16:30:10 -04:00
Victor Salgado
54f1560d3e Fix mutable default argument 2015-09-16 16:49:45 -03:00
James Cammarata
33e79203ce Merge branch 'quinot-topic/crash_empty_inventory' into devel 2015-09-16 13:15:40 -04:00
James Cammarata
c8f2483d6d Cleaning up default group creation in inventory parsers 2015-09-16 12:54:54 -04:00
Toshio Kuratomi
30552cf7e9 Fix problems with undefined references to self.display and remove method that's no longer called 2015-09-16 09:27:28 -07:00
James Cammarata
3f8e12d1f7 Merge pull request #12359 from cchurch/fetch_no_fail_on_missing
Fix fetch to not fail for missing file when fail_if_missing=False
2015-09-16 11:05:39 -04:00
James Cammarata
4429e7611b Merge pull request #12382 from AxelDelmas/env_async
Added env_string in async_cmd
2015-09-16 11:04:40 -04:00
James Cammarata
e899b8e70d Merge branch 'topic/crash_empty_inventory' of https://github.com/quinot/ansible into quinot-topic/crash_empty_inventory 2015-09-16 10:08:43 -04:00
James Cammarata
b2848bd25f Merge pull request #12389 from amenonsen/minus-t
Set PlayContext.timeout from the value specified by -T on the command-line
2015-09-16 09:49:39 -04:00
James Cammarata
d91ff0db74 Fixing parent block serialization for blocks
Fixes #12395
2015-09-16 09:29:16 -04:00
Thomas Quinot
c005f75469 Always create 'all' group
Create 'all' even if host_list is empty, as this group needs to exist
when creating the implicit 'localhost' host.

Fixes #12391
2015-09-16 12:24:06 +02:00
Abhijit Menon-Sen
85bb508f26 Set PlayContext.timeout from the value specified by -T on the command-line
Fixes #12372
2015-09-16 08:57:25 +05:30
James Cammarata
2a50957ad8 Fix galaxy install dep failure
Also fixes issue where force does not force reinstall of deps

Fixes #10425
2015-09-15 17:31:47 -04:00
Toshio Kuratomi
1a39e32a13 Update core modules ref 2015-09-15 14:26:09 -07:00
Chris Church
6ab4cff7db Enable winrm put_file to upload an empty file. 2015-09-15 17:21:27 -04:00
Chris Church
5c65ee7f0c Add PowerShell exception handling and turn on strict mode.
* Add exception handling when running PowerShell modules to provide exception message and stack trace.
* Enable strict mode for all PowerShell modules and internal commands.
* Update common PowerShell code to fix strict mode errors.
* Fix an issue with Set-Attr where it would not replace an existing property if already set.
* Add tests for exception handling using modified win_ping modules.
2015-09-15 16:32:35 -04:00
James Cammarata
a1948dd1c1 Merge branch 'bcoca-normalize_plugin_paths' into devel 2015-09-15 14:48:11 -04:00
James Cammarata
a7e1113b26 Removing FIXME comment which is no longer required 2015-09-15 14:47:49 -04:00
James Cammarata
d818a72375 Merge branch 'normalize_plugin_paths' of https://github.com/bcoca/ansible into bcoca-normalize_plugin_paths 2015-09-15 14:41:09 -04:00
Axel Delmas
4802641de7 Added env_string in async_cmd 2015-09-15 20:11:14 +02:00
James Cammarata
60c139e482 Fix logic for changed/failed_when + retry/until loops
Fixes #11809
2015-09-15 13:37:35 -04:00
James Cammarata
8e664ad226 Fix delegate_to localhost vs. 127.0.0.1 (and ::1) 2015-09-15 13:08:54 -04:00
James Cammarata
38573c55bf Tweak failure condition for field attributes expected to be strings 2015-09-15 13:08:40 -04:00
James Cammarata
cfdaec0c22 Make sure string attributes are strings from YAML to avoid bad type conversions
Fixes #12367
2015-09-15 12:17:55 -04:00
Brian Coca
b6d6c2e4db corrected all missing paths changes 2015-09-15 11:57:54 -04:00
Brian Coca
4aea1f6568 normalized plugin paths and names and configs 2015-09-15 11:44:09 -04:00
Brian Coca
02372e9761 Merge pull request #12371 from apollo13/patch-1
Remove duplicate SU_PROMPT_LOCALIZATIONS
2015-09-15 09:54:07 -04:00
Florian Apolloner
9334046189 Remove duplicate SU_PROMPT_LOCALIZATIONS 2015-09-15 10:40:25 +02:00
gptech
1c6be7b9ba Replace 'degug' with 'debug'
Tiny typo fix.
2015-09-14 23:21:03 -04:00
Andriy Yurchuk
af213241ab Fix typo 2015-09-14 21:11:40 +02:00
Brian Coca
e7807c4f2d Merge pull request #12339 from emonty/feature/openstack-no-log
Add no-log parameter to common openstack args
2015-09-14 15:03:09 -04:00
James Cammarata
4f30db8ca5 Check if path is /dev/null when checking if a file is in fact a file 2015-09-14 14:41:22 -04:00
Chris Church
260b9f648c Fix fetch action plugin to not fail if file is missing and fail_if_missing=False (the default). Add tests to test_fetch role to verify it works as expected. 2015-09-14 14:21:52 -04:00
James Cammarata
feee4613cd Merge pull request #12357 from apollo13/become_fix
Fixed #12356 -- Restored ansible 1.9.x become behavior.
2015-09-14 12:27:45 -04:00
James Cammarata
49ca0eb797 Track local_action internally to prevent it from being overridden
Fixes #12053
2015-09-14 12:11:58 -04:00
Florian Apolloner
8182eb3787 Fixed #12356 -- Restored ansible 1.9.x become behavior. 2015-09-14 17:53:14 +02:00
Marius Gedminas
9877a5c415 Python 3: two more instances of 'basestring'
Fixes two failing tests on Python 3.4.
2015-09-14 08:27:39 +03:00
Monty Taylor
3bdd6793ca Add no-log parameter to common openstack args
These bad boys can contain secret data, so should be marked no-log.
2015-09-13 19:48:37 +02:00
James Cammarata
aa762bb432 Don't split args out unless we're parsing module args using the new style
Fixes #12331
2015-09-12 17:50:05 -04:00
James Cammarata
1cb4e0be1c Fix bug in implicit block squashing where block is not reassigned
Fixes #12333
2015-09-12 11:27:30 -04:00
James Cammarata
7deb8bbd1c Reworking how includes within handlers are run
Fixes #12238
2015-09-12 08:46:29 -04:00
Brian Coca
03758151e4 Merge pull request #12330 from cchurch/revert_find_plugin_changes
Revert "Fix order of loading of modules."
2015-09-11 20:05:37 -04:00
Brian Coca
9d4d7bd74d fixed porting bugs in profile_tasks to v2 2015-09-11 16:48:09 -04:00
Chrrrles Paul
ba7734b78b Merge pull request #12165 from amenonsen/address-parsing
Hi @amenonsen - thanks for fixing up the hunting down the unicode bug and expanding test_addresses.  The code looks good, merging!-- Be systematic about parsing and validating hostnames and addresses
2015-09-11 15:25:50 -05:00
James Cammarata
4156bcedf5 Fix typo in 049a48f 2015-09-11 15:54:24 -04:00
Chris Church
ed3a9795d4 Revert "Fix order of loading of modules."
This reverts commit 4b895f04e3.
2015-09-11 14:16:30 -04:00
James Cammarata
1243686b90 Submodule update 2015-09-11 13:11:15 -04:00
Abhijit Menon-Sen
049a48f3d3 Test state.tasks_child_state before dereferencing
I hit a traceback in the FAILED_TASKS case, but it seemed prudent to add
guards in the other similar branches.
2015-09-11 21:59:08 +05:30
James Cammarata
df89f03627 Fixing precedence order for new nonpersistent vars (set_fact/register)
These used to go in vars_cache, so merging them in after that as they
are "live" variables and the user would most likely want to see these
above anything else.
2015-09-11 12:24:44 -04:00
Abhijit Menon-Sen
7479ab47e0 Be stricter about parsing hostname labels
Labels must start with an alphanumeric character, may contain
alphanumeric characters or hyphens, but must not end with a hyphen.
We enforce those rules, but allow underscores wherever hyphens are
accepted, and allow alphanumeric ranges anywhere.

We relax the definition of "alphanumeric" to include Unicode characters
even though such inventory hostnames cannot be used in practice unless
an ansible_ssh_host is set for each of them.

We still don't enforce length restrictions—the fact that we have to
accept ranges makes it more complex, and it doesn't seem especially
worthwhile.
2015-09-11 21:47:19 +05:30
Abhijit Menon-Sen
065bb52109 Be systematic about parsing and validating hostnames and addresses
This adds a parse_address(pattern) utility function that returns
(host,port), and uses it wherever where we accept IPv4 and IPv6
addresses and hostnames (or host patterns): the inventory parser
the the add_host action plugin.

It also introduces a more extensive set of unit tests that supersedes
the old add_host unit tests (which didn't actually test add_host, but
only the parsing function).
2015-09-11 21:47:18 +05:30
James Cammarata
49803509b4 Make sure include paths are templated before dwim in case they're absolute
Fixes #12327
2015-09-11 11:57:43 -04:00
James Cammarata
4cdd9b2a82 Merge pull request #12318 from mgedmin/py3k
Python 3: make ansible.template.safe_eval() work
2015-09-11 10:44:37 -04:00
Brian Coca
52f587cac3 Merge pull request #12325 from quinot/topic/wrong_interp_test
Test for Python must be against basename of interpreter
2015-09-11 09:47:49 -04:00
James Cammarata
c2115c3715 Re-adding part of 926f127 which was actually fixing #12277 2015-09-11 09:45:27 -04:00
James Cammarata
083aef65ad Revert "set_fact should put facts in the fact_cache, not vars_cache"
This reverts commit 926f127245.
2015-09-11 09:45:27 -04:00
Thomas Quinot
0bc9223826 Test for Python must be against basename of interpreter
Followup on issue #12076
2015-09-11 13:29:34 +02:00
James Cammarata
441a8af671 Merge pull request #12267 from h-hirokawa/add_replacer_jsonargs
Add the new module replacer <<INCLUDE_ANSIBLE_MODULE_JSON_ARGS>>.
2015-09-11 02:44:50 -04:00
Marius Gedminas
f91b28ef23 Fix safe_eval() of set literals
There was code to support set literals (on Python 2.7 and newer), but it
was buggy: SAFE_NODES.union() doesn't modify SAFE_NODES in place,
instead it returns a new set object that is then silently discarded.

I added a unit test and fixed the code.  I also changed the version
check to use sys.version_tuple instead of a string comparison, for
consistency with the subsequent Python 3.4 version check that I added in
the previous commit.
2015-09-11 09:41:05 +03:00
Marius Gedminas
2b73002044 Python 3: make ansible.template.safe_eval() work
Two things changed in Python 3.4:

- 'basestring' is no longer defined, so use six.string_types

- True/False are now special AST node types (NamedConstant) rather than
  just names

(Good thing we had tests, or I wouldn't have noticed the 2nd thing!)

I found only one place where safe_eval() is called inside the ansible
codebase: in lib/template/__init__.py.  The call to safe_eval(result,
...) is protected by result.startswith('...'), which means result cannot
possibly be a byte string on Python 3 (or startswith() would raise, so
six.string_types (which excludes byte strings on Python 3) is fine here.
2015-09-11 09:37:44 +03:00
James Cammarata
0c5bbe3c32 Use the original (un-templated) args for include params
Fixes #12314
2015-09-11 00:53:27 -04:00
James Cammarata
292e2da4e1 Fix some bugs related to facts/nonpersistent-facts cache split
Fixes #12313
2015-09-10 17:36:39 -04:00
Brian Coca
91c9df2154 added verbosity to ansible-doc to make it easier to trace down issues 2015-09-10 16:50:14 -04:00
James Cammarata
b35529b09f Submodule pointer update 2015-09-10 15:44:30 -04:00
James Cammarata
95a58d1178 Properly serialize UnsafeProxy objects
Required as part of fix for #12123
2015-09-10 14:01:02 -04:00
James Cammarata
a410bf26d3 Wrap registered variables in UnsafeProxy
Fixes #12123
2015-09-10 14:01:02 -04:00
Toshio Kuratomi
46bf3d1bc1 Remove plugin._basedirs as we now use different data structures to achieve that functionality. 2015-09-10 10:41:31 -07:00
Jiri tyr
174f805fb3 Resurrection of the comment filter 2015-09-10 14:37:42 +02:00
Marius Gedminas
b95e3d18a7 Python 3: use the right PyYAML SafeRepresenter for unicode
PyYAML has a SafeRepresenter in lib/... that defines

    def represent_unicode(self, data):
        return self.represent_scalar(u'tag:yaml.org,2002:str', data)

and a different SafeRepresenter in lib3/... that defines

    def represent_str(self, data):
        return self.represent_scalar('tag:yaml.org,2002:str', data)

so the right thing to do on Python 3 is to use represent_str.

(AnsibleUnicode is a subclass of six.text_type, i.e. 'str' on Python 3.)
2015-09-10 08:57:53 +03:00
Benno Joy
6de13c3062 Merge pull request #11818 from Java1Guy/module_utils_ec2_for_ecs
change ec2 util to create only requested objects
2015-09-10 11:06:19 +05:30
James Cammarata
ee7905c7e1 Compare include params against deprecated param names too
Fixes #12282
2015-09-09 22:15:50 -04:00
James Cammarata
950e067d2f Merge pull request #12295 from napkindrawing/patch-3
Typo in comment: "bsaename" → "basename"
2015-09-09 21:41:13 -04:00
James Cammarata
f576e0f1af Merge pull request #12300 from robusto/devel
Vault missing DataLoader for pwd file #12293
2015-09-09 18:52:31 -04:00
James Cammarata
22639a2a22 Fix mistake in fact setting to nonpersistent cache in VariableManager
Fixes #12301
2015-09-09 18:28:39 -04:00
James Cammarata
aa3b290efd Fix indent on line in playbook executor 2015-09-09 18:10:38 -04:00
Toshio Kuratomi
4b895f04e3 Fix order of loading of modules.
Allows ANSIBLE_LIBRARY to overload core modules even if the module in
ANSIBLE_LIBRARY doesn't have a .py extension.
2015-09-09 15:00:26 -07:00
James Cammarata
e81947c3b4 Fix vars_prompt short form support (and mark deprecated) 2015-09-09 17:52:44 -04:00
Blake Atkinson
6062519986 Vault missing DataLoader for pwd file #12293 2015-09-09 15:33:52 -05:00
James Cammarata
be7bd392cb Fix unreachable host detection and have plays continue after unreachable failures
Fixes #12284
2015-09-09 15:27:26 -04:00
Toshio Kuratomi
25c97fff69 Merge pull request #12294 from ansible/fix-password-lookup
Fix problem with "=" in the initial file path.
2015-09-09 11:48:30 -07:00
Brian Coca
0dbebfddaa Revert "remove closing connections after every task, this goes against conneciton caching and was not expected behaviuor nor inhertited from v1"
needed for winrm, disabled closing connections in ssh to avoid issues with that persistance, need to normalize all this in future

This reverts commit 23a22397bf.
2015-09-09 14:21:56 -04:00
Brian Coca
3f0e14c2a0 disabled ssh closing connections 2015-09-09 14:21:46 -04:00
Toshio Kuratomi
e2c49b4ef4 Fix problem with "=" in the initial file path. 2015-09-09 11:14:31 -07:00
James Cammarata
56d7f3889d Add new level of vars to deal with set_fact/register precedence rules 2015-09-09 12:21:07 -04:00
napkindrawing
172bbac97a Typo in comment: "bsaename" → "basename" 2015-09-09 11:55:40 -04:00
James Cammarata
926f127245 set_fact should put facts in the fact_cache, not vars_cache
Also fixes a template path lookup issue when using an include

Fixes #12277
2015-09-09 11:10:18 -04:00
Toshio Kuratomi
e2e9319f06 Merge pull request #12287 from mgedmin/py3k
Python 3: use six.string_types instead of basestring
2015-09-09 01:35:46 -07:00
Toshio Kuratomi
fa2edfa1ef * Make sure we don't sometimes get byte strings instead of unicode strings
* Turn strings into byte strings before passing to shlex and turn them
  back into unicode strings after they are retyurned from there

  Fixes #12257
2015-09-09 01:24:11 -07:00
Toshio Kuratomi
e67459df86 Fix docstring of parse_value() to be informative 2015-09-09 01:24:11 -07:00
Marius Gedminas
ba0cf42ce9 Python 3: use six.string_types instead of basestring
Reduces the number of failing tests from 35 to 17.
2015-09-09 09:25:23 +03:00
James Cammarata
30399edada Use UnsafeProxy for lookup results too
Also fixes a couple of bugs that popped up when using the proxy class
2015-09-08 12:19:39 -04:00
Brian Coca
f1c72a55a5 Merge pull request #12261 from toshywoshy/12169
added Manjaro as an Archlinux family
2015-09-08 08:24:01 -04:00
Victor Costan
bd405169fb Fix #12258: don't wrap None in UnsafeProxy. 2015-09-08 04:02:04 -04:00
James Cammarata
ac6f61ec7f Properly handle group/host_var files with dots in them
Fixes #12245
2015-09-08 03:20:09 -04:00
James Cammarata
1eb5b42705 Don't double proxy unsafe variables
Potential fix for #12260
2015-09-08 02:50:07 -04:00
Gaurav Jain
6c107258fa Fix rsync connections to IPv6 addresses
Similar to https://github.com/ansible/ansible/pull/11816 we can unconditionally
wrap the host address in square brackets. This is required by rsync for IPv6
addresses.
2015-09-06 22:20:45 -07:00
h-hirokawa
cd478a76fc Add the new module replacer <<INCLUDE_ANSIBLE_MODULE_JSON_ARGS>>.
Fixes #12266
2015-09-07 12:01:26 +09:00
Toshio Kuratomi
718812d945 update submodule refs for documentation formatting 2015-09-05 08:56:15 -07:00
Toshio Kuratomi
26e109aa13 Update module refs 2015-09-05 08:27:48 -07:00
Toshaan Bharvani
4702d2be09 added Manjaro as an Archlinux family 2015-09-05 12:49:20 +02:00
James Cammarata
ff9f5d7dc8 Starting to add additional unit tests for VariableManager
Required some rewiring in inventory code to make sure we're using
the DataLoader class for some data file operations, which makes mocking
them much easier.

Also identified two corner cases not currently handled by the code, related
to inventory variable sources and which one "wins". Also noticed we weren't
properly merging variables from multiple group/host_var file locations
(inventory directory vs. playbook directory locations) so fixed as well.
2015-09-04 16:41:38 -04:00
James Cammarata
87f75a50ad Use proxy class to mark variables unsafe for templating
Fixes #12191
2015-09-04 16:38:06 -04:00
Toshio Kuratomi
2d251cba45 Merge pull request #12256 from ansible/password-lookup-fix
Use parse_kv to correctly parse parameters from password lookup
2015-09-04 12:27:18 -07:00
Toshio Kuratomi
c68e04c185 Use parse_kv to correctly parse parameters from password lookup
Fixes https://github.com/ansible/ansible-modules-core/issues/1968
2015-09-04 12:18:46 -07:00
Brian Coca
6e5f3db9de updated submodule refs 2015-09-04 12:17:34 -04:00
Brian Coca
c17fbf2f12 simplify become testing and handling, we had drifted and were doulbe checking prompt, become and become_pass
fixed tests to conform to new signature and now tests both with and w/o password
now we are more explicit about self.prompt
2015-09-04 10:36:16 -04:00
Brian Coca
eb0e7e198b remove closing connections after every task, this goes against conneciton caching and was not expected behaviuor nor inhertited from v1 2015-09-04 10:36:15 -04:00
Marius Gedminas
37be9539ff Python 3: use six.text_type instead of unicode
Replace 'unicode' with six.text_type, everywhere but in module_utils.
2015-09-04 08:40:10 +03:00
James Cammarata
1840906f74 Merge pull request #12236 from amenonsen/ssh-cpdir
Go back to using ~/.ansible/cp as the ControlPath
2015-09-03 21:12:45 -04:00
Toshio Kuratomi
e218bf8da9 Do not escape backslashes when processing a template file.
Fixes #12198
Fixes #12241
2015-09-03 17:45:17 -07:00
Abhijit Menon-Sen
7aa6cd3f63 Go back to using ~/.ansible/cp as the ControlPath
This was commented out earlier because of the lack of interprocess
locking and prepare_writeable_dir in v2.

The locking was not needed: it could only protect against other siblings
of this process (since they were all locking a temporary file that was
opened in the parent), and those would be running as the same user and
with the same umask. Also, os.makedirs() tolerates intermediate paths
being created by other processes. For any other kind of error, both
locking and non-locking code paths would fail in the same way.

So all we really need to do is make sure we have write permissions.

(We also move the cp_dir handling code to where we actually set the
ControlPath ourselves; if the user has set it via ssh_*args already,
we don't need to bother.)
2015-09-04 00:35:13 +05:30
James Cammarata
4ac2bafc4b Set hosts fact gathering flag based on fact cache entries
Fixes #12213
2015-09-03 14:11:19 -04:00
James Cammarata
6650ba7654 Squashed commit of the following:
commit 9921bb9d20
Author: Abhijit Menon-Sen <ams@2ndQuadrant.com>
Date:   Mon Aug 10 20:19:44 2015 +0530

    Document --ssh-extra-args command-line option

commit 8b25595e7b
Author: Abhijit Menon-Sen <ams@2ndQuadrant.com>
Date:   Thu Aug 13 13:24:57 2015 +0530

    Don't disable GSSAPI/Pubkey authentication when using --ask-pass

    This commit is based on a bug report and PR by kolbyjack (#6846) which
    was subsequently closed and rebased as #11690. The original problem was:

        «The password on the delegated host is different from the one I
        provided on the command line, so it had to use the pubkey, and the
        main host doesn't have a pubkey on it yet, so it had to use the
        password.»

    (This commit is revised and included here because #11690 would conflict
    with the changes in #11908 otherwise.)

    Closes #11690

commit 119d032389
Author: Abhijit Menon-Sen <ams@2ndQuadrant.com>
Date:   Thu Aug 13 11:16:42 2015 +0530

    Be more explicit about why SSH arguments are added

    This adds vvvvv log messages that spell out in detail where each SSH
    command-line argument is obtained from.

    Unfortunately, we can't be sure if, say, self._play_context.remote_user
    is obtained from ANSIBLE_REMOTE_USER in the environment, remote_user in
    ansible.cfg, -u on the command line, or an ansible_ssh_user setting in
    the inventory or on a task or play. In some cases, e.g. timeout, we
    can't even be sure if it was set by the user or just a default.

    Nevertheless, on the theory that at five v's you can use all the hints
    available, I've mentioned the possible sources in the log messages.

    Note that this caveat applies only to the arguments that ssh.py adds by
    itself. In the case of ssh_args and ssh_extra_args, we know where they
    are from, and say so, though we can't say WHERE in the inventory they
    may be set (e.g. in host_vars or group_vars etc.).

commit b605c285ba
Author: Abhijit Menon-Sen <ams@2ndQuadrant.com>
Date:   Tue Aug 11 15:19:43 2015 +0530

    Add a FAQ entry about ansible_ssh_extra_args

commit 49f8edd035
Author: Abhijit Menon-Sen <ams@2ndQuadrant.com>
Date:   Mon Aug 10 20:48:50 2015 +0530

    Allow ansible_ssh_args to be set as an inventory variable

    Before this change, ssh_args could be set only in the [ssh_connection]
    section of ansible.cfg, and was applied to all hosts. Now it's possible
    to set ansible_ssh_args as an inventory variable (directly, or through
    group_vars or host_vars) to selectively override the global setting.

    Note that the default ControlPath settings are applied only if ssh_args
    is not set, and this is true of ansible_ssh_args as well. So if you want
    to override ssh_args but continue to set ControlPath, you'll need to
    repeat the appropriate options when setting ansible_ssh_args.

    (If you only need to add options to the default ssh_args, you may be
    able to use the ansible_ssh_extra_args inventory variable instead.)

commit 37c1a5b679
Author: Abhijit Menon-Sen <ams@2ndQuadrant.com>
Date:   Mon Aug 10 19:42:30 2015 +0530

    Allow overriding ansible_ssh_extra_args on the command-line

    This patch makes it possible to do:

        ansible somehost -m setup \
            --ssh-extra-args '-o ProxyCommand="ssh -W %h:%p -q user@bouncer.example.com"'

    This overrides the inventory setting, if any, of ansible_ssh_extra_args.

    Based on a patch originally by @Richard2ndQuadrant.

commit b023ace8a8
Author: Abhijit Menon-Sen <ams@2ndQuadrant.com>
Date:   Mon Aug 10 19:06:19 2015 +0530

    Add an ansible_ssh_extra_args inventory variable

    This can be used to configure a per-host or per-group ProxyCommand to
    connect to hosts through a jumphost, e.g.:

        inventory:
            [gatewayed]
            foo ansible_ssh_host=192.0.2.1

        group_vars/gatewayed.yml:
            ansible_ssh_extra_args: '-o ProxyCommand="ssh -W %h:%p -q bounceuser@gateway.example.com"'

    Note that this variable is used in addition to any ssh_args configured
    in the [ssh_connection] section of ansible.cfg (so you don't need to
    repeat the ControlPath settings in ansible_ssh_extra_args).
2015-09-03 11:26:56 -04:00
James Cammarata
8774ff5f57 Make sure PlayContext is copied when iterating in a with_ loop 2015-09-03 08:11:30 -04:00
James Cammarata
c16961db60 Fix two PlayIterator bugs
* When iterating over a child state, a failure should be propagated
  up so parent blocks don't continue iterating
* Make sure a child state exists before trying to search it

Fixes #12210
2015-09-03 07:48:42 -04:00
Marius Gedminas
38a96d7e8f Python 3: avoid iteritems() in a template
I don't think six.iteritems is available here, but I also don't expect
there to be enough platforms to ever make the speed difference between
.items() and .iteritems() noticeable.
2015-09-03 10:11:32 +03:00
Toshio Kuratomi
364313c01f Simplify and speed up _split_role_params() by moving an invariant outside of a loop. 2015-09-03 00:06:34 -07:00
Toshio Kuratomi
1ae28f606b Refactor to replace filter and lambda with a generator expression 2015-09-03 00:06:34 -07:00
Marius Gedminas
a32bf1ec18 Simplify FactCache.copy()
Also fix the bug (missing from six import iteritems) I introduced in
823677b490.
2015-09-03 09:44:44 +03:00
Marius Gedminas
823677b490 Replace .iteritems() with six.iteritems()
Replace .iteritems() with six.iteritems() everywhere except in
module_utils (because there's no 'six' on the remote host).  And except
in lib/ansible/galaxy/data/metadata_template.j2, because I'm not sure
six is available there.
2015-09-03 09:23:27 +03:00
James Cammarata
9e1bc434c7 Further cleanup from locking changes 2015-09-03 01:07:29 -04:00
James Cammarata
b93f27e260 Move the lockfile back to tqm to make sure it stays unique 2015-09-03 00:45:42 -04:00
James Cammarata
b9afbf0ee4 Reorganizing the way the connection lockfile is created 2015-09-03 00:18:52 -04:00
James Cammarata
7034bbef30 Merge branch 'connection-locking' of https://github.com/amenonsen/ansible into amenonsen-connection-locking 2015-09-02 23:54:52 -04:00
Abhijit Menon-Sen
9378c8e2da Make the paramiko plugin use locking 2015-09-03 08:43:21 +05:30
Abhijit Menon-Sen
5887e96b27 Introduce a connection locking infrastructure
The lock file is (a temporary file) opened in the parent process, whose
open fd is inherited by the workers after fork, and passed down through
the PlayContext. Connection grows lock/unlock methods which can be used
by individual connection plugins.
2015-09-03 08:43:21 +05:30
Abhijit Menon-Sen
12d8f9132e Make lock_host_keys a real noop, instead of half-a-noop
Right now, we don't do any locking, but we still scan known_hosts files
twice per connection. That's completely unnecessary, and the proposed
solutions to the locking problem wouldn't need known_hosts scanning
anyway, so this code can go away.
2015-09-03 05:52:57 +05:30
Brian Coca
a006e85947 removed printing module args as it violates no_log settings 2015-09-02 16:14:40 -04:00
Toshio Kuratomi
1998eddf8d Keep newlines by default now.
In v1, a trailing newline was kept if the parameter was passed as key=value.  If
the parameter was passed as yaml dict the trailing newline was
discarded.  Since key-value and yaml dict were unified in v2 we have to
make a choice as to which behaviour we want.  Decided that keeping trailing
newlines by default made the most sense.

Fixes #12200
Fixes #12199
2015-09-02 11:55:45 -07:00
Toshio Kuratomi
41da8de094 Speedup for counting newlines 2015-09-02 10:59:51 -07:00
James Cammarata
843138e7d9 Merge pull request #12202 from mgedmin/py3k
Use rich comparisons for Attribute and FieldAttribute
2015-09-02 13:57:04 -04:00
James Cammarata
5434ed973b Make sure locals in safe_eval is a plain dict when running eval
Fixes #12206
2015-09-02 13:54:58 -04:00
Toshio Kuratomi
417bf1c805 Unittest the _count_trailing_newlines function 2015-09-02 08:59:31 -07:00
Toshio Kuratomi
7ed746ad45 Fix preserve_trailing_newlines (broken by 7f5080f64a )
Fix for one half of hte bug reported in #12198
2015-09-02 08:47:20 -07:00
Brian Coca
a7231c2203 actually implemented flags correctly for all priv escalation methods 2015-09-02 11:31:39 -04:00
Brian Coca
b9642585bd added missing become_exe from config 2015-09-02 09:52:26 -04:00
Brian Coca
e156d9b677 fixed and generalized privilege escalation exe settings 2015-09-02 09:29:34 -04:00
Marius Gedminas
33a374edde Use rich comparisons for Attribute and FieldAttribute
Because __cmp__ is not supported on Python 3.
2015-09-02 12:33:42 +03:00
Marius Gedminas
ca908f2e12 Fix indentation to be a multiple of 4 2015-09-02 12:22:18 +03:00
Abhijit Menon-Sen
147b04b682 Remove duplicated function definition (fallout from earlier repeated merge) 2015-09-02 07:47:48 +05:30
James Cammarata
f162990cb3 Properly assign the searchpath for templates to the environment loader
dbd755e0 previously assigned the value to self._templar.environment.searchpath,
which is incorrect - it needs to be assigned to the environment.loader.searchpath
value instead.

Fixes #11931
2015-09-01 17:33:14 -04:00
James Cammarata
2761df232e Small tweak to 7551b75 to correct the ordering of tests 2015-09-01 14:48:59 -04:00
James Cammarata
7551b75e61 Add ispath type for constants and make sure all local paths are ispath=True
Fixes #12180
2015-09-01 14:47:45 -04:00
Toshio Kuratomi
aeff960d02 Cleanup combine_vars
* Dedupe combine_vars() code (removed from VariableManager)
* Fix merge_hash algorithm to preserve the type
* unittest combine_vars and merge_hash
2015-09-01 11:23:12 -07:00
James Cammarata
7fe495d619 Merge pull request #12187 from caphrim007/add-utf-8-encoding-to-f5-module-utils
Adds utf-8 encoding to f5 module_utils
2015-09-01 14:15:42 -04:00
James Cammarata
d00c445d2c Merge pull request #12188 from amenonsen/easy-debug
Show module name and args with -vvv
2015-09-01 14:15:15 -04:00
Abhijit Menon-Sen
d6d523bcae Show module name and args with -vvv
This information was earlier shown only with ANSIBLE_DEBUG, but it's
extremely useful in a user context, especially with module invocations
with deeply nested args like the ec2_vpc/ec2 modules.

Closes #11680
2015-09-01 23:44:13 +05:30
James Cammarata
3e1a774ba5 Don't use iteritems() in templar to avoid (hostvars) dict size change errors 2015-09-01 14:11:23 -04:00
James Cammarata
974b69d236 looped includes need unique references to prevent information bleeding
Fixes #12155
2015-09-01 12:32:35 -04:00
James Cammarata
a341a8a093 Make sure tasks from a role see their defaults above all others
Fixes #12081
2015-09-01 11:27:35 -04:00
Tim Rupp
6f41a72158 Adds utf-8 encoding to f5 module_utils
The contributor's name on line 10 (originally line 7) includes a character
that the default Python encoding (ASCII) raises an error on when interpreting
the file.

Specifying the utf-8 encoding, as is done in other modules, resolves
the error.

The error being raised is

SyntaxError: Non-ASCII character '\xc3' in file /.../lib/ansible/module_utils/f5.py
on line 7, but no encoding declared; see http://www.python.org/peps/pep-0263.html
for details
2015-09-01 08:10:23 -07:00
James Cammarata
a7da25d48b Submodule update 2015-09-01 11:03:19 -04:00
James Cammarata
3d282cd1b0 Also always post_validate Handler class as well
Fixes #12154
2015-09-01 11:02:42 -04:00
Toshio Kuratomi
12edbfeb0b Merge pull request #12177 from mgedmin/py3k
Make combine_vars() compatible with Python 3
2015-09-01 08:00:08 -07:00
Brian Coca
66e2eb2231 removed as it does not fool setup.py to include data and it must be specified in setup.py 2015-09-01 10:58:58 -04:00
Marius Gedminas
54dbfba8f8 Make combine_vars() compatible with Python 3
Fixes

  TypeError: unsupported operand type(s) for +: 'dict_items' and 'dict_items'

on Python 3.
2015-09-01 09:39:59 +03:00
James Cammarata
5adcd7054b Allow setup to run when using --start-at-task
Fixes #12147
2015-08-31 22:10:34 -04:00
Brian Coca
7458331539 package and service now check that module exists before trying to execute it 2015-08-31 20:34:20 -04:00
Toshio Kuratomi
9d193d8fb4 Merge pull request #12173 from ansible/pr/10204
Rebase of 10204 - Add host key for ssh url only.
2015-08-31 13:50:40 -07:00
James Cammarata
fca27c29f4 Properly fail if slurp fails during fetch 2015-08-31 16:45:03 -04:00
Desmond O. Chang
58c3539196 Add host key for ssh url only.
Rewrite function `get_fqdn`.  It returns fqdn for all kinds of urls now.

`add_git_host_key` determines whether a url is ssh and whether its host
key should be added.
2015-08-31 13:42:32 -07:00
James Cammarata
66a2f2923e Look for proper values in slurp result during fetch with become enabled 2015-08-31 16:36:07 -04:00
Toshio Kuratomi
7f5080f64a Fix backslash escaping inside of jinja2 expressions
Fixes #11891
2015-08-31 13:17:26 -07:00
Toshio Kuratomi
5ae300a084 Update module refs 2015-08-31 08:05:45 -07:00
Brian Coca
6b73cac35a corrected skipped_hosts constant usage, thanks @benjixx 2015-08-30 20:21:15 -04:00
Brian Coca
5a65dce6fb fix issues with csh redirection 2015-08-30 17:49:16 -04:00
Brian Coca
b525eedb8e less misleading message for when someone looks up vars for a host not in inventory 2015-08-30 12:41:21 -04:00
Brian Coca
6154ed1dda Merge pull request #12146 from thekarlbrown/patch-1
Fixed Spelling Error on Line 67
2015-08-28 20:10:47 -04:00
James Cammarata
f0257683b0 Fixed missing constants import in default callback
Fixes #12145
2015-08-28 16:54:56 -04:00
James Cammarata
057712c129 Also move action/connection plugins to shared plugin loader code
Fixes #12099
2015-08-28 16:32:09 -04:00
James Cammarata
0859ba7726 Adjust field loading order for vars and tweak post_validate exclusion logic
FieldAttributes will now by default not be post_validated unless a flag
is set on them in the class, as a large number of fields are really there
simply to be inherited by Task/PlayContext and shouldn't be templated too
early.

The other (unrelated to the base issue) in #12084 is also fixed here, where
the roles field is loaded before vars/vars_files, meaning there are no vars
yet loaded in the play when the templating occurs.

Fixes #12084
2015-08-28 15:56:42 -04:00
Karl Brown
9aae1d5810 Fixed Spelling Error on Line 67
Noticed while running Ansible from Tip.
Throws: NameError: global name 'tself' is not defined
2015-08-28 15:45:49 -04:00
James Cammarata
4c65306e73 Merge branch 'hostrange' of https://github.com/amenonsen/ansible into amenonsen-hostrange 2015-08-28 13:48:25 -04:00
Toshio Kuratomi
120243d36d Fix python3.4 syntax 2015-08-28 10:30:27 -07:00
James Cammarata
2043fcd5db Merge pull request #12083 from resmo/for-ansible
cloudstack: implement general api_region support, update docs
2015-08-28 13:14:50 -04:00
Brian Coca
b6c6ed91fe implemented not showing skipped hosts config 2015-08-28 12:32:50 -04:00
Brian Coca
514fa73fcd galaxy fixes 2015-08-28 12:32:50 -04:00
James Cammarata
66ed397360 Fix redis fact_caching_timeout=0 bug
Fixes #12018
2015-08-28 11:47:06 -04:00
James Cammarata
5a5b9f211b Validate variable names when loading 'vars:' blocks
TODO: add this to VariableManager to validate vars loaded from files too

Fixes #12022
2015-08-28 11:36:31 -04:00
James Cammarata
266a069a73 Merge pull request #12107 from TravisPaul/devel
Update "smart" transport to handle Sun_SSH_1.5 on SmartOS
2015-08-28 10:43:48 -04:00
Brian Coca
48aa0dd1c7 now acknowledges ask_pass setting from ansible.cfg
fixes #12111
2015-08-27 18:22:36 -04:00
James Cammarata
399d215f5a Merge pull request #12122 from maty0609/devel
Adding support for Archlinux and Slackware in fallback
2015-08-27 16:55:43 -04:00
Marius Gedminas
eb99aa8c68 Fix to_bytes(None) on Python 3
You cannot call bytes(obj) to get a simple representation of obj on
Python 3!  E.g. bytes(42) returns a byte string with 42 NUL characters
instead of b'42'.
2015-08-27 22:15:56 +03:00
Marius Gedminas
df1b41d3d3 Avoid types.NoneType
types.NoneType was removed in Python 3.

None is a singleton in Python, so 'x is None' is equivalent to
'isinstance(x, NoneType)'.
2015-08-27 22:15:56 +03:00
Marius Gedminas
da1e611b26 Support print as a function
I neglected the __future__ import because

  print(one_thing)

works the same way even when print is a statement.
2015-08-27 22:15:56 +03:00
Marius Gedminas
39196ec91e Drop the L suffix on numerical constants
Python has had automatic int-to-long promotion for a long long time now.
Even Python 2.4 does that automatically.

Python 3 drops support for the L suffix altogether.
2015-08-27 22:15:04 +03:00
Marius Gedminas
0eb538df03 Use 0oNNN octal syntax
This syntax is valid in Python 2.6+ and 3.x.
2015-08-27 22:15:04 +03:00
Marius Gedminas
47b088504d Don't mix tabs and spaces
It's not allowed in Python 3 and merely a bad idea in Python 2.
2015-08-27 22:15:04 +03:00
Marius Gedminas
0c6ce31f76 Use 'except ... as' syntax
This syntax works on Python 2.6 through 3.x.  lib/ansible/module_utils
(and lib/ansible/modules) need to support Python 2.4, so I didn't touch
those.
2015-08-27 22:15:04 +03:00
Brian Coca
2ac931d6c9 ported module_docs to use display 2015-08-27 14:57:50 -04:00
Brian Coca
2b28cdc0dd be more tolerant with non list descriptions 2015-08-27 14:57:50 -04:00
Toshio Kuratomi
86b2982005 Merge pull request #12112 from amenonsen/vault-stdio
Implement cat-like filtering behaviour for encrypt/decrypt
2015-08-27 11:26:48 -07:00
Toshio Kuratomi
db4a96a8d6 Merge pull request #12078 from amenonsen/hash_merge
Add hash_merge and hash_merge_recursive filters with documentation
2015-08-27 11:12:49 -07:00
Abhijit Menon-Sen
b328bc023d Add a combine filter with documentation
This is based on some code from (closed) PR #7872, but reworked based on
suggestions by @abadger and the other core team members.

Closes #7872 by @darkk (hash_merge/hash_replace filters)
Closes #11153 by @telbizov (merged_dicts lookup plugin)
2015-08-27 23:29:12 +05:30
James Cammarata
2df6513f8d Version bump for v2.0.0-0.1.alpha1 and submodule updates 2015-08-27 13:43:37 -04:00
Brian Coca
6c9dc78d8c Merge pull request #12126 from amenonsen/vault-aes-deprecate
Remove deprecated and unused VaultAES encryption code
2015-08-27 13:09:28 -04:00
James Cammarata
1170a453c8 Merge pull request #12114 from ilya-epifanov/devel
fixed hostvars access in conjunction with --limit usage
2015-08-27 12:54:23 -04:00
Abhijit Menon-Sen
090cfc9e03 More helpful prompts from ansible-vault encrypt/decrypt
Now we issue a "Reading … from stdin" prompt if our input isatty(), as
gpg does. We also suppress the "x successful" confirmation message at
the end if we're part of a pipeline.

(The latter requires that we not close sys.stdout in VaultEditor, and
for symmetry we do the same for sys.stdin, though it doesn't matter in
that case.)
2015-08-27 22:04:18 +05:30
Abhijit Menon-Sen
b6de6e69a6 Also support output to stdout with no arguments
This allows "cat plaintext|ansible-vault encrypt > ciphertext".
2015-08-27 22:04:18 +05:30
Abhijit Menon-Sen
e7eebb6954 Implement cat-like filtering behaviour for encrypt/decrypt
This allows the following invocations:

    # Interactive use, like gpg
    ansible-vault encrypt --output x

    # Non-interactive, for scripting
    echo plaintext|ansible-vault encrypt --output x

    # Separate input and output files
    ansible-vault encrypt input.yml --output output.yml

    # Existing usage (in-place encryption) unchanged
    ansible-vault encrypt inout.yml

…and the analogous cases for ansible-vault decrypt as well.

In all cases, the input and output files can be '-' to read from stdin
or write to stdout. This permits sensitive data to be encrypted and
decrypted without ever hitting disk.
2015-08-27 22:04:18 +05:30
Abhijit Menon-Sen
32b38d4e29 Fix add_option indentation for consistency before adding another option 2015-08-27 22:04:18 +05:30
Abhijit Menon-Sen
8fc8bf9439 Simplify VaultEditor methods
We don't need to keep creating VaultLibs everywhere, and we don't need
to keep checking for errors because VaultLib does it already.
2015-08-27 22:04:18 +05:30
Abhijit Menon-Sen
e99395f0c0 Don't create a VaultLib in each method; do it in __init__ instead 2015-08-27 22:04:18 +05:30
Abhijit Menon-Sen
159887a6c9 Remove deprecated and unused VaultAES encryption code
Now that VaultLib always decides to use AES256 to encrypt, we don't need
this broken code any more. We need to be able to decrypt this format for
a while longer, but encryption support can be safely dropped.
2015-08-27 16:54:39 +05:30
maty0609
52e94468c9 Merge remote-tracking branch 'ansible/devel' into devel 2015-08-27 10:29:48 +01:00
maty0609
6f24e6f994 Adding support for Archlinux and Slackware in fallback
In some cases Archlinux and Slackware is not detected by
platform.dist(). This should solve the issue.
2015-08-27 10:22:02 +01:00
Brian Coca
b2bfe3502b make sure delimiter is basestring for cvsfile
fixes #12062
2015-08-26 18:38:39 -04:00
Ilya Epifanov
81bf88b6e0 fixed hostvars access in conjunction with --limit usage 2015-08-27 00:15:26 +03:00
James Cammarata
0441a7a217 Finishing off porting of chroot connection plugin 2015-08-26 16:43:06 -04:00
Toshio Kuratomi
017bd7b1cd Fix synchronize lookup of localhost info 2015-08-26 13:36:50 -07:00
James Cammarata
50448d68e1 Implement max_fail_percentage and any_errors_fatal support
Fixes #11997
2015-08-26 12:03:47 -04:00
James Cammarata
af41ba929c Add float and percent types for FieldAttributes
Also sets the max_fail_percentage value to the percent type.
2015-08-26 12:03:47 -04:00
Brian Coca
b2ae6945c4 always load vars plugins
fixes #12104
2015-08-26 11:40:53 -04:00
Travis Paul
604f825a8e Update "smart" transport to handle Sun_SSH_1.5 on SmartOS 2015-08-26 15:00:45 +00:00
Toshio Kuratomi
111c0cc204 Merge pull request #12106 from amenonsen/vault-cleanups
Vault cleanups, pass #1
2015-08-26 07:30:13 -07:00
Abhijit Menon-Sen
b84053019a Make the filename the first argument to rekey_file 2015-08-26 19:54:59 +05:30
Toshio Kuratomi
5df5a14edc Merge pull request #12101 from tquenolle/devel
Synchronize fix error
2015-08-26 07:03:13 -07:00
Abhijit Menon-Sen
20fd9224bb Pass the filename to the individual VaultEditor methods, not __init__
Now we don't have to recreate VaultEditor objects for each file, and so
on. It also paves the way towards specifying separate input and output
files later.
2015-08-26 19:17:37 +05:30
Brian Coca
82603bb2a0 avoids running abspath on None 2015-08-26 09:28:23 -04:00
Abhijit Menon-Sen
a27c5741a1 Remove inaccurate outdated comment 2015-08-26 18:31:45 +05:30
Abhijit Menon-Sen
f91ad3dabe Don't pass the cipher around so much
It's unused and unnecessary; VaultLib can decide for itself what cipher
to use when encrypting. There's no need (and no provision) for the user
to override the cipher via options, so there's no need for code to see
if that has been done either.
2015-08-26 18:31:45 +05:30
Abhijit Menon-Sen
017566a2d9 Use AES256 if the cipher is not write-whitelisted 2015-08-26 18:09:21 +05:30
Abhijit Menon-Sen
47bcdf5952 Remove incorrect copy-pasted comment 2015-08-26 18:09:21 +05:30
Thomas Quenolle
c948af3b1e Synchronize fix error
Fix the error:
 "RuntimeError: dictionary changed size during iteration"
2015-08-26 11:01:00 +02:00
James Cammarata
601a1cc6d9 Multiple fixes for include statements and blocks in general
Fixes #11981
Fixes #11995
Fixes #12039
Fixes #12077
2015-08-26 02:23:22 -04:00
Brian Coca
154754ae50 pushed module_loader to task_queue_manager so all cli's can benefit from it
also normalized -M option across all cli
fixes #12016
2015-08-25 18:14:03 -04:00
Toshio Kuratomi
d2c948dd6a Remove decrypted vault temp_file mistakenly left from patch making vault edit idempotent
This bug was introduced in commit f8bf2ba on July 27.  Hasn't gone out
in a release yet.
2015-08-25 14:51:32 -07:00
Toshio Kuratomi
56ae3a032f Merge pull request #12075 from ansible/fix-vault-unicode
Unicode and other fixes for vault
2015-08-25 14:49:15 -07:00
Toshio Kuratomi
a3fd4817ef Unicode and other fixes for vault 2015-08-25 12:43:09 -07:00
Toshio Kuratomi
16e8a7dd67 Merge pull request #11767 from amenonsen/vault-new-password-file
add option to ansible-vault to read new password from file for rekey
2015-08-25 10:15:27 -07:00
Toshio Kuratomi
156feec264 Merge pull request #11650 from objectified/feature-docker-connection
allow ansible to connect to docker containers (without using ssh)
2015-08-25 09:28:25 -07:00
Abhijit Menon-Sen
8bf0dbb7a9 Use [x:y] host ranges instead of [x-y]
This commit deprecates the earlier groupname[x-y] syntax in favour of
the inclusive groupname[x:y] syntax. It also makes the subscripting
code simpler and adds explanatory comments.

One problem addressed by the cleanup is that _enumeration_info used to
be called twice, and its results discarded the first time because of the
convoluted control flow.
2015-08-25 21:17:24 +05:30
Abhijit Menon-Sen
73f10de386 Document the behaviour of _match_one_pattern in some detail
The possibilities are complicated enough that I didn't want to make
changes without having a complete description of what it actually
accepts/matches. Note that this text documents current behaviour, not
necessarily the behaviour we want. Some of this is undocumented and may
not be intended.
2015-08-25 21:17:24 +05:30
Abhijit Menon-Sen
fa6ffa1dbd Remove & and ! pattern prefixes as early as possible
Now everything under _match_one_pattern can ignore them. This also means
that we can use the cache to return the same results for 'foo' and '!foo'.
2015-08-25 21:17:24 +05:30
Abhijit Menon-Sen
704c3815d3 Reorder functions into a logical sequence based on usage
There are no code changes; this is committed separately so as to make
the subsequent "real" diffs easier to read.
2015-08-25 21:17:24 +05:30
Richard Poole
3090a45891 add option to ansible-vault to read new password from file for rekey
The --new-vault-password-file option works the same as
--vault-password-file but applies only to rekeying (when
--vault-password-file sets the old password). Also update the manpage
to document these options more fully.
2015-08-25 21:14:49 +05:30
Brian Coca
ae91cdfc98 fixed environment inheritance 2015-08-25 10:15:32 -04:00
Brian Coca
8aa732e0a4 allow for lists, sets and dicts to default to None, now return empty type in post processing
remove defaults from inhertiable fieldattributes to allow for proper detection and override
2015-08-25 10:14:28 -04:00
Marius Gedminas
44c94328c8 Speed up execution
`if method in dir(self):` is very inefficient:

- it must construct a list object listing all the object attributes & methods
- it must then perform a O(N) linear scan of that list

Replace it with the idiomatic `if hasattr(self, method):`, which is a
O(1) expected time hash lookup.

Should fix #11981.
2015-08-25 16:07:21 +03:00
Rene Moser
3db4039ad1 cloudstack: implement general api_region support, update docs 2015-08-25 13:54:21 +02:00
objectified
b1785a0361 replace compare_versions() with distutils.version 2015-08-25 02:18:37 -04:00
objectified
c39fb43ad9 added Maintainer comment header 2015-08-25 02:06:01 -04:00
Toshio Kuratomi
1f7b0fee0a Fixes #12076 2015-08-24 19:07:04 -07:00
Brian Coca
17060f9849 remove +1 from size that was cutting off first char of copied files when a recursive dir
fixes #12055
2015-08-24 21:10:03 -04:00
Toshio Kuratomi
6e107d2f22 Comments pointing the way towards substituting cryptography for pycrypto 2015-08-24 15:50:37 -07:00
Brian Coca
16f3f8e244 now does not error out when notes are not included in module 2015-08-24 13:24:58 -04:00
objectified
d9723069c5 align exec_command() definition with local.py 2015-08-24 12:32:11 -04:00
objectified
3a5522a22c fake being connected for logging purposes 2015-08-24 12:32:11 -04:00
objectified
8f2a6a9fae use docker cp when docker >=1.8.0 2015-08-24 12:32:11 -04:00
objectified
2de773477f allow ansible to connect to docker containers 2015-08-24 12:32:11 -04:00
James Cammarata
21e421ce53 Validate required list items are not None or empty strings
Fixes #12011
2015-08-24 11:44:28 -04:00
James Cammarata
db65503778 Revert "Add PowerShell exception handling and turn on strict mode." 2015-08-23 21:09:16 -04:00
Abhijit Menon-Sen
3aedc0bca9 Don't insist on ansible-vault taking only one filename parameter
Apart from ansible-vault create, every vault subcommand is happy to deal
with multiple filenames, so we can check that there's at least one, and
make create check separately that there aren't any extra.
2015-08-23 17:52:51 -04:00
Brian Coca
f1b8323b62 fixed host/group var loading when inventory is a directory 2015-08-23 17:51:47 -04:00
Brian Coca
af06a97f17 kept vars as alias to hostvars[inventory_hostname] and avoid subtrees into themselves 2015-08-23 17:51:47 -04:00
Brian Coca
3ccfebc9f7 Merge pull request #12047 from cchurch/powershell_common_cleanup
Add PowerShell exception handling and turn on strict mode.
2015-08-23 14:08:18 -04:00
Brian Coca
a4ffa09414 Merge pull request #11880 from bcoca/configurable_squash
made squashable with_ plugin list configurable
2015-08-23 13:32:15 -04:00
Abhijit Menon-Sen
09e4eac2e5 Use rsplit(':',1) for clarity; no functional changes 2015-08-23 22:52:35 +05:30
Ryan Petrello
1886307845 Fix a parsing bug that prevents IPv6 addresses from being used with add_host
Closes #8682
2015-08-23 22:50:47 +05:30
Chris Church
4b2cdadc98 Add PowerShell exception handling and turn on strict mode.
* Add exception handling when running PowerShell modules to provide exception message and stack trace.
* Enable strict mode for all PowerShell modules and internal commands.
* Update common PowerShell code to fix strict mode errors.
* Fix an issue with Set-Attr where it would not replace an existing property if already set.
* Add tests for exception handling using modified win_ping modules.
2015-08-22 18:28:07 -04:00
Brian Coca
47d9e7ca93 Merge pull request #11984 from Alphadelta14/devel
Support any Mapping for with_dict lookup.
2015-08-22 12:39:42 -04:00
James Cammarata
0958edfc7c Submodule pointer update 2015-08-22 12:39:04 -04:00
Brian Coca
e8157eab19 now output works for both search and info 2015-08-22 02:42:21 -04:00
Brian Coca
a6c0661d21 made src more prominent 2015-08-22 02:33:17 -04:00
Brian Coca
6ffd9c3025 draft galaxy cli search
TODO: paging results
2015-08-22 02:28:27 -04:00
James Cammarata
e282309f6d Make sure the inventory restriction is not None 2015-08-21 16:08:21 -04:00
James Cammarata
635fa0757b Several var fixes
* Fixes hostvar serialization issue (#12005)
* Fixes regression in include_vars from within a role (#9498), where
  we had the precedence order for vars_cache (include_vars, set_fact)
  incorrectly before role vars.
* Fixes another bug in which vars loaded from files in the format of
  a list instead of dictionary would cause a failure.

Fixes #9498
Fixes #12005
2015-08-21 12:02:23 -04:00
Brian Coca
144da7e7d1 Merge pull request #11765 from ldx/vault_pbkdf2hmac
Use PBKDF2HMAC() from cryptography for vault keys.
2015-08-21 11:06:00 -04:00
Brian Coca
f150fe2c23 moved mandatory back to filters as it does not always return a boolean, it does an exception on failure 2015-08-21 09:54:56 -04:00
Brian Coca
2787b3acac ported consul_kv lookup from v1 2015-08-21 00:22:20 -04:00
Brian Coca
74079db8d2 ported dig lookup from v1 2015-08-21 00:22:01 -04:00
Brian Coca
9bb95b5235 Merge pull request #12031 from amenonsen/deadcode
Remove unused (copied) _before_comment method
2015-08-20 23:36:56 -04:00
Brian Coca
f6b6ed530b added file tests 2015-08-20 22:04:21 -04:00
Brian Coca
cd4a0c70b0 isnotanumber is not needed as jinja2 has builtin number test 2015-08-20 22:04:20 -04:00
Brian Coca
fe06577ac2 fixed mandatory test 2015-08-20 22:04:20 -04:00
Abhijit Menon-Sen
599ad9cb51 Remove unused (copied) _before_comment method
This was copied from inventory/ini.py, but the rewritten version doesn't
use it, and shows that it isn't needed.
2015-08-21 06:58:23 +05:30
Toshio Kuratomi
b5a078a385 update submodule refs 2015-08-20 15:41:05 -07:00
Abhijit Menon-Sen
745ecd4845 Sanitize IPv6 hostname/port handling
Now we accept IPv6 addresses _with port numbers_ only in the standard
[xxx]:NN notation (though bare IPv6 addresses may be given, as before,
and non-IPv6 addresses may also be placed in square brackets), and any
other host identifiers (IPv4/hostname/host pattern) as before, with an
optional :NN suffix.
2015-08-20 22:06:44 +05:30
Abhijit Menon-Sen
74aab6f726 Use a self._raise_error helper and avoid passing the lineno around
Based on a patch by @Richard2ndQuadrant.
2015-08-20 22:05:17 +05:30
Abhijit Menon-Sen
9133cd409c Make _parse take an array of input lines as an argument
(There's no compelling reason to do this right now, but should be parser
need to be called multiple times in future, this makes it easier.)
2015-08-20 22:05:17 +05:30
Abhijit Menon-Sen
98a1905796 Rename 'section' to 'groupname' to better reflect its purpose 2015-08-20 22:05:17 +05:30
Abhijit Menon-Sen
1284c49bd7 Rewrite the INI InventoryParser
The new code parses INI-format inventory files in a single pass using a
well-documented state machine that reports precise errors and eliminates
the duplications and inconsistencies and outright errors in the earlier
three-phase parsing code (e.g. three ways to skip comments). It is also
much easier now to follow what decisions are being taken on the basis of
the parsed data. The comments point out various potential improvements,
particularly in the area of consistent IPv6 handling.

On the ornate marble tombstone of the old code, the following
inscription is one last baffling memento from a bygone age:

-    def _before_comment(self, msg):
-        ''' what's the part of a string before a comment? '''
-        msg = msg.replace("\#","**NOT_A_COMMENT**")
-        msg = msg.split("#")[0]
-        msg = msg.replace("**NOT_A_COMMENT**","#")
-        return msg
2015-08-20 22:05:17 +05:30
Jon Hawkesworth
a46b500851 Add win_splitdrive filter for windows users 2015-08-20 13:54:54 +01:00
Toshio Kuratomi
4f32a61504 Merge pull request #10957 from feanil/feanil/retain_nonetypes
Don't convert nulls to strings.
2015-08-19 19:43:27 -07:00
Brian Coca
e8b86f448d fix issue with improper connection override in delegation 2015-08-19 20:36:08 -04:00
Feanil Patel
892e230514 Don't convert nulls to strings.
This change is similar to https://github.com/ansible/ansible/pull/10465

It extends the logic there to also support none types.  Right now if you have
a '!!null' in yaml, and that var gets passed around, it will get converted to
a string.

eg. defaults/main.yml
```
ENABLE_AWESOME_FEATURE: !!null # Yaml Null
OTHER_CONFIG:
  secret1: "so_secret"
  secret2: "even_more_secret"

CONFIG:
  hostname: "some_hostname"
  features:
    awesame_feature: "{{ ENABLE_AWESOME_FEATURE}}"
  secrets: "{{ OTHER_CONFIG }}"
```

If you output `CONFIG` to json or yaml, the feature flag would get represented in the output
as a string instead of as a null, but secrets would get represented as a dictionary.  This is
a mis-match in behaviour where some "types" are retained and others are not.  This change
should fix the issue.

I also updated the template test to test for this and made the changes to v2.

Added a changelog entry specifically for the change from empty string to null as the default.

Made the null representation configurable.

It still defaults to the python NoneType but can be overriden to be an emptystring by updating
the DEFAULT_NULL_REPRESENTATION config.
2015-08-19 18:35:07 -04:00
Brian Coca
22a69e2498 fixes to delegation code 2015-08-19 15:49:37 -04:00
Brian Coca
36cbd771a4 changed fixme to deprecated 2015-08-19 15:49:37 -04:00
Brian Coca
961bee00d5 centralized the definition of 'localhost' 2015-08-19 15:49:37 -04:00
Rene Moser
d16429b59c cloudstack: rename returns for consistency 2015-08-19 21:25:19 +02:00
Abhijit Menon-Sen
2641f70e47 Reset self._groups_cache in refresh_inventory 2015-08-19 11:35:27 +05:30
Harald Laabs
73d6da757f Make get_group run in O(n*log(n)) instead of O(n^2) by using a cache 2015-08-19 11:35:27 +05:30
Brian Coca
1b810e3101 Merge pull request #12000 from bcoca/local_action_connect
changed local_action to alias to connection=local vs delegate_to=locahost
2015-08-19 00:34:03 -04:00
Will West
b8865314ec improve ansible start up time for very large inventory
first off, we add an oddly slow basic test of 10k item inventory

Before:
```
Ran 229 tests in 13.214s

OK

real    0m13.403s
user    0m12.106s
sys 0m1.155s
```

After:
```
Ran 230 tests in 21.328s

OK

real    0m21.516s
user    0m20.099s
sys 0m1.275s
```

since that seems like a bit long for the test to add to runtime, lets profile

`python -m cProfile -s time ./bin/ansible all -i test/units/inventory_test_data/huge_range --list-hosts`

Before:
```
         1272607 function calls (1259689 primitive calls) in 8.497 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    10000    4.393    0.000    4.396    0.000 __init__.py:395(_get_host)
    20000    2.695    0.000    2.697    0.000 __init__.py:341(__append_host_to_results)
    40369    0.113    0.000    0.113    0.000 {posix.lstat}
    50006    0.102    0.000    0.153    0.000 __init__.py:1490(combine_vars)
    40008    0.089    0.000    0.202    0.000 __init__.py:1546(_load_vars_from_path)
    20195    0.088    0.000    0.088    0.000 {posix.stat}
    10011    0.087    0.000    0.087    0.000 {posix.getcwd}
```

The top two lines are promising optimization targets

- populate Inventory's host cache more in _get_host, as we are looping
  over all the groups anyways.

- eliminate duplicate check of whether we've already included a host
  in the construction around __append_host_to_results we can infer
  presence of a host in the results list implies the presence of its
  name in the hostnames set, allowing us to only to the less expensive
  of the two checks

After:
```
         1252610 function calls (1239692 primitive calls) in 1.320 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    40369    0.105    0.000    0.105    0.000 {posix.lstat}
    50006    0.094    0.000    0.141    0.000 __init__.py:1490(combine_vars)
    40008    0.081    0.000    0.184    0.000 __init__.py:1546(_load_vars_from_path)
    10011    0.080    0.000    0.080    0.000 {posix.getcwd}
    20195    0.074    0.000    0.074    0.000 {posix.stat}
    10002    0.069    0.000    0.261    0.000 __init__.py:1517(load_vars)
```
2015-08-19 09:45:02 +05:30
Brian Coca
7a4a156d91 changed local_action to alias to connection=local vs delegate_to=localhost
fixes #11998, but still leaves issue of delegate_to: localhost not working
2015-08-18 18:31:29 -04:00
Brian Coca
f2c6785897 Merge pull request #11989 from bcoca/osx_queue_fix
changed check to avoid OS X broken sem_getvalue()
2015-08-18 09:58:21 -04:00
Brian Coca
26ed50ecdf fixed indent 2015-08-18 09:58:25 -04:00
Brian Coca
2198f48f54 changed check to avoid OS X broken sem_getvalue()
fixes #11988
2015-08-18 03:46:20 -04:00
Brian Coca
e081a73aa1 make new inventory config take precedence over old hostfile config
fixes #11907
2015-08-18 03:29:14 -04:00
Brian Coca
17b4b1f85c added ability to limit in ansilbe pull
refactored the options a bit, new inventory_opts made sense to always group
fixes #7917
2015-08-18 03:17:58 -04:00
Brian Coca
1acb29ff9b sequence will now run once for start=end, added test to suite
fixes #11979
2015-08-18 02:33:23 -04:00
Brian Coca
ee21ebaffc Merge pull request #11975 from mutemule/become_doas
Add become support for OpenBSD doas
2015-08-17 21:36:03 -04:00