Commit Graph

6173 Commits (6c73aa7ad68d3ba00a81f4ec89aefae869912f45)

Author SHA1 Message Date
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.
9 years ago
Eric Feliksik 7193d27acc add os.fsync() so that the shredding data (hopefully) hits the drive 9 years ago
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
9 years ago
Brian Coca 6f2f7a79b3 add support for diff in file settings
this allows modules to report on what specifically changed when using
common file functions
9 years ago
Yannig Perré c4d2dbfcdb Replace to_string by to_unicode.
Fix https://github.com/ansible/ansible/issues/13707
9 years ago
Thilo Uttendorfer 5c34be15b1 Fix unsupported format character 9 years ago
James Cammarata e39e8ba308 Fix logic mistake in unarchive action plugin 9 years ago
Eric Feliksik 946b82bef7 shred ansible-vault tmp_file. Also when editor is interruped. 9 years ago
Brian Coca d3deb24ead output color is now configurable 9 years ago
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
9 years ago
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
9 years ago
Toshio Kuratomi d70a97b562 Update submodule refs 9 years ago
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
9 years ago
Brian Coca fd7e01696f updated submodule refs to pick up module changes 9 years ago
Brian Coca db1d153aca Merge pull request #13647 from bcoca/fix_role_search
corrected role path search order
9 years ago
Brian Coca 9a118ce213 Merge pull request #13648 from bcoca/fix_invocation_and_moderrors
better module error handling
9 years ago
Michael Scherer 42b9a206ad Fix last commit, make it python3 compatible (and py24) 9 years ago
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
9 years ago
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
9 years ago
Brian Coca 010839aedc fix no_log disclosure when using aliases 9 years ago
Toshio Kuratomi c4da5840b5 Convert to bytes later so that make_become_command can jsut operate on text type. 9 years ago
Brian Coca 474772c81c Merge pull request #13639 from emonty/bool-conversion
Also convert ints to bool for type=bool
9 years ago
Monty Taylor c60749c922 Also convert ints to bool for type=bool 9 years ago
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'
9 years ago
Toshio Kuratomi 0c013f592a Transform the command we pass to subprocess into a byte string in _low_level-exec_command 9 years ago
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
9 years ago
Yannig Perré a4674906c6 Merge role params into variables separately from other variables
Fixes #13617
9 years ago
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
9 years ago
James Cammarata 3ec0104128 Fixing bugs in conditional testing with until and some integration runner tweaks 9 years ago
Brian Coca bb2935549f corrected service detection in docker versions
now if 1 == bash it falls back into tool detection
9 years ago
Toshio Kuratomi e66c070e5c Add package module to squash list 9 years ago
Toshio Kuratomi 224d596336 Remove args from get_name() as we can't tell if any of the args are no_log 9 years ago
Toshio Kuratomi 8ffc1fa838 Comment to explain why we strip _ansible_notify specially 9 years ago
Toshio Kuratomi d32a885e98 Make return invocation information so that our sanitized copy will take precedence over what the executor knows. 9 years ago
Toshio Kuratomi 2936682f00 Revert "removed invocation info as it is not no_log aware"
This reverts commit 6127a8585e.
9 years ago
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.
9 years ago
Toshio Kuratomi 07a0059306 update submodule ref for doc fix 9 years ago
Toshio Kuratomi 3197eeaaa8 update submodule refs 9 years ago
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
9 years ago
Toshio Kuratomi 3057fc1753 Update submodule ref for mysql_user fix 9 years ago
James Cammarata 4ba7158282 Fixing a mistake from tweaking list stuff too much
Use the action only if the task name is not set
9 years ago
James Cammarata d4ffc96c80 Further tweaks to the output format of list tasks/tags 9 years ago
James Cammarata 5929ffc7c3 Make --list-tasks respect tags
Also makes the output closer to the appearance of v1

Fixes #13260
9 years ago
Toshio Kuratomi bad1c173b8 Update core submodule for mysql_db fix 9 years ago
Toshio Kuratomi 1b5e7ce025 Update submodule refs 9 years ago
James Cammarata e546219426 Revert "Enable host_key checking at the strategy level"
This reverts commit 1a6d660d7e285cceec474952a33af4d8dffd0a8d.
9 years ago
James Cammarata 586208234c Revert "Fixing bugs in ssh known_host fetching"
This reverts commit 21c127c581.
9 years ago
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
9 years ago
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.
9 years ago
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.
9 years ago
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
9 years ago
James Cammarata 857456ea5f Fixing template integration test for python 2.6 versions
No longer immediately fallback to to_json if simplejson is not installed
9 years ago
Toshio Kuratomi fd4ad2c8f2 Update submodule ref to fix a bug in mysql_user with mariadb 9 years ago
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
9 years ago
James Cammarata 76b4b9ed2c Merge pull request #13501 from chouseknecht/galaxy-2.0-update
Galaxy 2.0 update
9 years ago
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...
9 years ago
Toshio Kuratomi 9724117bbb Update submodule refs for mysql refactor 9 years ago
Toshio Kuratomi 1116bc6ca6 Merge pull request #13191 from Jmainguy/mysql
Add shared connection code for mysql modules
9 years ago
Jonathan Mainguy 34e88e48a5 Add shared connection code for mysql modules 9 years ago
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
9 years ago
Toshio Kuratomi 0095d04af9 Update submodule refs 9 years ago
Toshio Kuratomi 7d519127fe Merge pull request #13573 from ansible/ssl-context-with-proxy
Fix a few problems with url handling.
9 years ago
Toshio Kuratomi 33863eb653 Conditionally create the CustomHTTPSConnection class only if we have the required baseclasses.
Fixes #11918
9 years ago
Toshio Kuratomi 72a0654b81 Fixes for proxy on RHEL5 9 years ago
Toshio Kuratomi 73ead4fbba First attempt to fix https certificate errors through a proxy with python-2.7.9+
Fixes #12549
9 years ago
Brian Coca 97275110d7 Merge pull request #13533 from bcoca/debug_fixes
debug now validates its params
9 years ago
James Cammarata fcc9258b74 Use the original host rather than the serialized one when processing results
Fixes #13526
Fixes #13564
Fixes #13566
9 years ago
Toshio Kuratomi d203438a2c Merge pull request #13554 from Yannig/devel_fix_python3_tests
Use six lib to import urlparse properly.
9 years ago
Brian Coca be5488cb60 clean debug output to match prev versions 9 years ago
Brian Coca a0842781a6 renamed ssh.py shared module file to clarify 9 years ago
Yannig Perré be4d1f9ee3 Fix a part of python 3 tests (make tests-py3, see https://github.com/ansible/ansible/issues/13553 for more details). 9 years ago
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.
9 years ago
Toshio Kuratomi 8d16638fec Fix for template module not creating a file that was not present when force=false 9 years ago
Michael Scherer a7ac98262d Make module_utils.known_hosts.get_fqdn work on ipv6 9 years ago
Toshio Kuratomi c9eb41109f Update submodule refs 9 years ago
James Cammarata 80d23d639c Use an octal representation that works from 2.4->3+ for known_hosts 9 years ago
James Cammarata 6312e38133 Fixing up some non-py3 things for unit tests 9 years ago
Brian Coca 2a37f11738 Merge pull request #13542 from h0nIg/devel_default_ask
ansible vault, ask pass: use default settings from ansible.cfg
9 years ago
Hans-Joachim Kliemeck f5f9b2fd35 use default settings from ansible.cfg 9 years ago
James Cammarata f8ff63f8c8 A few tweaks to improve new forking code 9 years ago
Brian Coca 175c2d6510 Merge pull request #13502 from robinro/patch-3
use shallow clones by default in ansible-pull
9 years ago
Toshio Kuratomi 2bc3683d41 Restore comment about for-else since it is an uncommon idiom 9 years ago
chouseknecht 06dde0d332 Fixed documentation typos and bits that needed clarification. Fixed missing spaces in VALID_ACTIONS. 9 years ago
chouseknecht 342dee0023 Define and handle ignore_certs correctly. Preserve search term order. Tweak to Galaxy docsite. 9 years ago
chouseknecht bc73920090 Updated ansible-galaxy man page. Removed -b option for import. 9 years ago
chouseknecht d8e6bc98a2 Fix overloaded options. Show an error when no action given. Don't show a helpful list of commands and descriptions. 9 years ago
Robin Roth 1bd8d97093 fix whitespace 9 years ago
Robin Roth 1b2ebe8def make shallow clone the default for ansibel-pull 9 years ago
Brian Coca d73562902b debug now validates its params
simplified var handling
made default message the same as in pre 2.0
fixes #13532
9 years ago
Brian Coca f3bedbae29 simplified skippy
thanks agaffney!
9 years ago
Brian Coca 99e46440bd changed shell delimiters for csh
fixes #13459
9 years ago
Brian Coca 8e445c551a removed unused imports in galaxy/cli 9 years ago
James Cammarata 120b9a7ac6 Changing the way workers are forked 9 years ago
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
9 years ago
Brian Coca de71171fc2 removed merge conflict 9 years ago
James Cammarata 7f7e730dea Don't mark hosts failed if they've moved to a rescue portion of a block
Fixes #13521
9 years ago
Brian Coca d9e510b192 narrow down exception catching in block builds
this was obscuring other errors and should have always been narrow scope
9 years ago
Chrrrles Paul e56efa49c4 Merge pull request #13509 from chrrrles/vca_default_host
fix default host for non vcd service types
9 years ago
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).
9 years ago
Charles Paul a6a58d6947 fix default host for non vcd service types 9 years ago
Toshio Kuratomi bd9582d072 Update submodule refs 9 years ago
Toshio Kuratomi 1dda8158ff become_pass needs to be bytes when it is passed to ssh.
Fixes #13240
9 years ago
Charles Paul 6680cc7052 allow custom callbacks with adhoc cli for scripting
missing import of CallbackBase
9 years ago
Robin Roth c20c1a6d49 add depth option to ansible-pull
Allows shallow checkouts in ansible-pull by adding `--depth 1` (or higher number)
9 years ago
James Cammarata 2b36343451 Missed one place we were appending the incorrectly escaped item to raw params 9 years ago
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
9 years ago
James Cammarata 30b6dd8bcd Merge pull request #13495 from Yannig/devel_debug_null_error
Do not fail when variable is not correct in debug action.
9 years ago
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.
9 years ago
Toshio Kuratomi c0d79cf7e1 Remove the funcd connection plugin 9 years ago
Brian Coca 64864829c4 changed deprecation to removal warning 9 years ago
Toshio Kuratomi 61dc4a7e67 Update module refs 9 years ago
James Cammarata 14e19c239d Make on_file_diff callback item-aware 9 years ago
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
9 years ago
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.
9 years ago
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
9 years ago
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
9 years ago
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
9 years ago
Brian Coca c64298de02 Revert "avoid persistent containers in attribute defaults"
This reverts commit 87969868d4.
found better way to do it
9 years ago
James Cammarata 332a008273 Merge pull request #13489 from chouseknecht/galaxy-2.0
Galaxy 2.0
9 years ago
chouseknecht 4f84769a17 Galaxy 2.0 9 years ago
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.
9 years ago
Brian Coca 0719eb3e2d clarified warning from tree callback 9 years ago
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
9 years ago
James Cammarata 1799de8528 Preserve original token when appending to _raw_params in parse_kv
Fixes #13311
9 years ago
Brian Coca 795fac917e fixed typo in tree callback, added default dir
this would allow it to work with playbooks also
9 years ago
James Cammarata 398f6bbb89 Fix typo from 5ae850c 9 years ago
James Cammarata de690445bc Make fact delegating configurable, defaulting to 1.x behavior 9 years ago
Brian Coca 7ffd578a9d Revert "Fix always_run support in the action plugin for template when copying"
This reverts commit 9c4eae5253.
9 years ago
Brian Coca d4ccb0be59 have always_run override check mode for a task
Fixes #13418
9 years ago
James Cammarata 9c4eae5253 Fix always_run support in the action plugin for template when copying
Fixes #13418
9 years ago
David L Ballenger cdc3c88018 Merge remote-tracking branch 'ansible/devel' into issue_13438 9 years ago
Peter Sprygada 2d5b4b1799 Merge pull request #13273 from privateip/nxapi
adds new device argument to nxapi command arguments
9 years ago
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.
9 years ago
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.
9 years ago
Brian Coca 17b334d4a5 Merge pull request #13450 from privateip/feature_ios_shared_module
bugfix for ios.py shared module argument creation
9 years ago
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')
9 years ago
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.
9 years ago
Yannig Perré 2c8eee956f Fix issue when var name is the same as content.
See https://github.com/ansible/ansible/issues/13453 for more details.
9 years ago
Toshio Kuratomi 4d637e5780 Use self.args when we parse arguments that way the arguments can be constructed manually 9 years ago
Toshio Kuratomi a8e015cc22 Add representers so we can output yaml for all the types we read in from yaml 9 years ago
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
9 years ago
Brian Coca 8607aa527d Merge pull request #13446 from lberruti/no_target_syslog
Make no_target_syslog consistent.
9 years ago
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
9 years ago
Luca Berruti 8ea45e8608 Make no_target_syslog consistent.
no_target_syslog = False --> do log on target
9 years ago
Brian Coca f89f906f87 simplified get_hosts code to have 1 retrun point 9 years ago
Nils Steinger a1f6d17e37 More meaningful string representation for meta tasks (like 'noop' and 'flush_handlers') 9 years ago
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.
9 years ago
Toshio Kuratomi c8fd599e14 Merge pull request #13373 from no2a/boolean
BOOLEAN should contain boolean literals
9 years ago
Toshio Kuratomi 0434644d12 Transform exceptions into ansible messages via to_unicode instead of str to avoid tracebacks.
Fixes #13385
9 years ago
James Cammarata 84507aedd4 Adding a uuid field so we can track host equality across serialization too 9 years ago
James Cammarata 750adbaa27 Changing up how host (in)equality is checked
Fixes #13397
9 years ago
Toshio Kuratomi e385c91fa5 Update submodule refs# 9 years ago
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
9 years ago
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
9 years ago
Brian Coca 8d5f36a6c2 return unique list of hosts 9 years ago
Brian Coca a1f516824e corrected playbook path, reformated options help
the last just to make the help consistent and readable
9 years ago
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
9 years ago
James Cammarata f467f1770f Properly compare object references for Hosts when adding new ones
Fixes #13397
9 years ago
James Cammarata 4426b7f6e0 fix sorting of groups for host vars
Fixes #13371
9 years ago
Brian Coca 7d073bdd17 Merge pull request #13345 from amenonsen/extract
Add an 'extract' filter
9 years ago
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.
9 years ago
James Cammarata 5f83a6aeda Properly default remote_user for delegated-to hosts
Fixes #13323
9 years ago
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
9 years ago
Toshio Kuratomi 9b81c35d06 Don't compare or merge str with unicode
Fixes #13387
9 years ago
James Cammarata a183972477 Don't use play vars in HostVars
Fixes #13398
9 years ago
James Cammarata 8ff67e0494 Default msg param to AnsibleError to avoid serialization problems 9 years ago
James Cammarata 5f1f2acfea Merge pull request #13405 from sivel/v2-playbook-on-start
Get v2_playbook_on_start working
9 years ago
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
9 years ago
Brian Coca 7708661270 Merge pull request #13402 from amenonsen/expandpath
Use CLI.expand_tilde also for the vault --output file
9 years ago
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
9 years ago
Abhijit Menon-Sen 0d16d16ab8 Make module_lang default to whatever LANG is set to on the control node 9 years ago
Abhijit Menon-Sen fac7626230 Use CLI.expand_tilde also for the vault --output file 9 years ago
Matt Martz ce54a59cdc Catch additional assertion errors for load_list_of_blocks 9 years ago
Brian Coca 53cd802251 better error on invalid task lists 9 years ago
James Cammarata f7dc5a9515 Minor tweak and comment addition to 974a0ce3 9 years ago
James Cammarata f1d53a87e5 Merge pull request #13394 from Christoph-D/issue-13370
Fix #13370
9 years ago
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.
9 years ago
Abhijit Menon-Sen 22381be253 Bump version in devel now that stable-2.0 has been branched 9 years ago
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.
9 years ago
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.
9 years ago
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.
9 years ago
Brian Coca b92cb93539 unconditionally set vars on init to avoid issues with var precedence 9 years ago
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.
9 years ago
Brian Coca 8c630406c9 Merge pull request #13357 from privateip/feature_ssh_shared_module
initial add of ssh shared module.
9 years ago
Brian Coca 923b5467e3 Merge pull request #13354 from privateip/feature_eapi
adds device common argument to shared module
9 years ago
Brian Coca 574d7be8d5 Merge pull request #13358 from privateip/feature_ios_shared_module
Feature ios shared module
9 years ago
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
9 years ago
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.
9 years ago
Brian Coca 3e01516783 fixed signature for init on callbacks
also removed passing display to base class which already handles this
9 years ago
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
9 years ago
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.
9 years ago
Toshio Kuratomi 50553bc2ba _connect no longer takes a port argument 9 years ago
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.
9 years ago
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.
9 years ago
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
9 years ago
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.
9 years ago
Toshio Kuratomi ba4e571029 Update submodule refs to go along with the StandardError change in ec2 moudles 9 years ago
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
9 years ago
James Cammarata dc0fae1af7 Also make sure remote_user is defaulted correctly for delegated hosts
Fixes #13323
9 years ago
Toshio Kuratomi e2ddc2f6ab Call the function :-)
Fixes #13330
9 years ago
James Cammarata cc36eedf76 Ensure port is (re)set for delegated-to hosts
Fixes #13265
9 years ago
Brian Coca b5f2c3def2 fixed typo 9 years ago
Brian Coca eefb4931dd allow for bad stdout return from make temp dir command
fixes #13359
9 years ago
Brian Coca 005b17afec corrected become_methods class variable in winrm
This should now correctly react when using become with winrm
fixes #13331
9 years ago
James Cammarata 80db6bacc4 Make sure run_once tasks properly set variables for all active hosts
Fixes #13267
9 years ago
James Cammarata fbc9553bd4 Use text_type instead of unicode 9 years ago
James Cammarata c6a30f7000 Make sure the uuid in vars is string 9 years ago
James Cammarata f926e81782 Re-implement lookup wantlist
Fixes #13285
9 years ago
James Cammarata dfa576b037 Merge pull request #13307 from Yannig/devel_fix_big_include_vars
Fix for https://github.com/ansible/ansible/issues/13221
9 years ago
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
9 years ago
James Cammarata 6671d78f95 Tweak location of stats callback execution and properly relocate stats output code 9 years ago
James Cammarata ea23159be4 Merge pull request #13348 from emonty/bug/iterate-on-none
Put in trap for args being None
9 years ago
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.
9 years ago
James Cammarata 800811a15f Trigger on_stats just once, not once for each play
Fixes #13271
9 years ago
James Cammarata a7f7f8bd29 Merge pull request #13297 from amenonsen/ssh-escalation
Explicitly accept become_success in awaiting_prompt state
9 years ago
James Cammarata 5b6162a166 Re-adding role_name/role_uuid variables 9 years ago
James Cammarata 8d9835c40b Merge pull request #13342 from Yannig/devel_fix_bomb_shell
Devel fix bomb shell
9 years ago
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
9 years ago
Yannig Perré 2fc7c8b460 More restrictive test against variable name to allow setting variable starting with _. 9 years ago
Brian Coca fa358d9d61 avoids prompting for vars during syntax check
fixes #13319
9 years ago
Yannig Perré 2c54fb1339 Switch parameters validation after parsing in order to be more consistent between old and new style. 9 years ago
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
9 years ago
Toshio Kuratomi 1b743436b9 Do not double transform to unicode 9 years ago
Chrrrles Paul 157230c3e8 Merge pull request #13257 from chrrrles/utf8
fixing error with using non-ascii values for ask-sudo-password
9 years ago
Charles Paul 1e5a205389 fixing errors with utf-8 values
removing utf-8 stanza

changing cast to binary_type instead

using to_unicode
9 years ago
Brian Coca 71fe49ee3a Merge pull request #13247 from bcoca/fetch_fixes
fixes to fetch action module
9 years ago
Brian Coca 7244b5ae49 added missing : 9 years ago
Brian Coca 0ec60ac09b added missing events to base class 9 years ago
James Cammarata 70de8bc96f Fix ssh state issues by simply assuming it's never connected 9 years ago
James Cammarata 65747285a4 Properly check for prompting state when re-using ssh connection
Fixes #13278
9 years ago
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.
9 years ago
Yannig Perré 5fa49a9ad8 Use to_unicode instead of str() 9 years ago
James Cammarata 679488fdb5 Merge pull request #13239 from sysreq0/devel
We should give pipes.quote() a string every time
9 years ago
James Cammarata 53e86f3130 Merge pull request #13261 from cchurch/with_items_reuse_connection
Modify task executor to reuse connections inside a loop.
9 years ago
James Cammarata e06b107d2d Template (and include vars) PlaybookInclude paths
Fixes #13249
9 years ago
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. 9 years ago
Toshio Kuratomi adf2d53fa2 Update submodule refs 9 years ago
Yannig Perré 0480b44f50 Allow debug var parameter to accept a list or dict. Fix https://github.com/ansible/ansible/issues/13252 9 years ago
Brian Coca 478c6c756a marked spot that should send per item reulsts 9 years ago
Brian Coca fb96748d7c fixes to fetch action module
* now only runs remote checksum when needed (fixes #12290)
 * unified return points to simplify program flow
9 years ago
Toshio Kuratomi 2631a8e6e4 Update extras to fix docs build 9 years ago
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.
9 years ago
Toshio Kuratomi 77c83fd520 Commit submodule refs to the devel HEAD 9 years ago
Toshio Kuratomi 664c7980a2 Update submodule refs 9 years ago
Sebastien Couture 087dbc1ed5 We should give pipes.quote() a string every time 9 years ago
Toshio Kuratomi 591c81e95f Docker cp sets file ownership to root:root so we can't use it.
Fixes #13219
9 years ago
Toshio Kuratomi d75e707af5 Simplify code a little 9 years ago
Toshio Kuratomi 72558f7ecd Merge pull request #13074 from joernheissler/patch-13073
Use ansible_host in synchronize module
9 years ago
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.
9 years ago
James Cammarata c97c101bd3 Merge pull request #13209 from nitzmahone/winrm_put_file
fast winrm put_file without size restrictions
9 years ago