Commit Graph

5781 Commits (38c11e22397a0b93f121268527669d7318812a4d)

Author SHA1 Message Date
Brian Coca 2d1d21228a updated skippy to match default output 9 years ago
James Cammarata 0bbe9d5bd0 Make hostvars json/yaml serializable in filters
Fixes #12615
9 years ago
James Cammarata a88c59f451 Reset basedir for plays that are not from a PlaybookInclude
Fixes #12524 (again)
9 years ago
James Cammarata 0aa018337a Fixing logic in json cache plugin get()
Fixes #12722
9 years ago
James Cammarata 5f617c601b Remove obsolute tag evaluation in free strategy
Fixes #12784
9 years ago
Brian Coca 6c8cf8acb7 now profile_tasks callback handles handlers correctly
fixes #12762
9 years ago
James Cammarata 1ab0e0e228 Disable RuntimeWarnings during all() plugin loading
Fixes #12778
9 years ago
Brian Coca 71ffb86c30 don't let cowsay issues stop execution
fixes #12773
9 years ago
Brian Coca 6d87bd405d Merge pull request #12765 from bcoca/lookup_inventory_hostname
implemented inventory_hostname lookup in v2
9 years ago
Toshio Kuratomi a567f28657 Update submodules for docs fixes# Please enter the commit message for your changes. Lines starting 9 years ago
Toshio Kuratomi 5d8ab9b01b Update module refs 9 years ago
Toshio Kuratomi b23a083776 Make vault use a mapping of cipher name to classes instead of formatting the name for safety. 9 years ago
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. 9 years ago
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.
9 years ago
Toshio Kuratomi 28c933ce5e properly fail_json when we don't have ssl on a non-redhat distro 9 years ago
Marius Gedminas 98958ec990 Simplify join expression 9 years ago
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.
9 years ago
Brian Coca 9b088a1e40 implemented inventory_hostname lookup in v2 9 years ago
Brian Coca aee6de5a76 group_names should not include implied 'all', fixes #12763 9 years ago
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.
9 years ago
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?")
9 years ago
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.
9 years ago
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).
9 years ago
Toshio Kuratomi 5617f6aad4 Update synchronize to use the correct host when delegating
Fixes #12752
9 years ago
Toshio Kuratomi 85abd61001 Add some more info to docstring 9 years ago
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
9 years ago
James Cammarata 45b803efb4 Properly use test_loader from SharedPluginLoaderObj 9 years ago
Toshio Kuratomi c8ad55103e Update extras modules ref to fix docs 9 years ago
Toshio Kuratomi e00eeba9c3 Update submodule refs 9 years ago
James Cammarata 91b0b4d40c Check is_directory() before not is_file() in inventory basedir
Fixes #12742
9 years ago
Brian Coca c57200925f made syslog import optional as intel's edison custom compiles python w/o it 9 years ago
James Cammarata ee559e03f7 Merge pull request #12725 from mgedmin/py3k
Python 3: there's no basestring
9 years ago
James Cammarata e6d3c6745f Revert to using local file/dir tests in inventory instead of loader's
Fixes #12719
9 years ago
Brian Coca c637d60a8d fixed deprecation message 9 years ago
Brian Coca f5227d494b added missing cachefile and changed str(e) to to_bytes(e) 9 years ago
Marius Gedminas 9ba6c087d3 Python 3: there's no basestring 9 years ago
Marius Gedminas f03da5be42 Python 3: there's no iteritems() 9 years ago
James Cammarata 2d77c643e4 Merge pull request #12723 from mgedmin/py3k
Make ansible.vars.unsafe_proxy Python 3 friendly
9 years ago
Marius Gedminas e511d6d458 Make UnsafeProxy work on Python 3
Instead of str and unicode we have to deal with bytes and str.
9 years ago
Marius Gedminas af6a316d9b Remove unused import
Fixes ImportError: No module named '__builtin__' on Python 3.
9 years ago
James Cammarata 426187489f Add variable for format parameter 9 years ago
Toshio Kuratomi 8277747a04 Fix password lookup when password file exists and the password is not encrypted 9 years ago
James Cammarata cd2cb178ae Totally rework the way UnsafeProxy does things 9 years ago
Toshio Kuratomi 15d7f53846 AnsibleModules.log() fix for python3
Also add unittests for AnsibleModules.log()

Fixes #12586
9 years ago
Toshio Kuratomi b49e0995cb Fix typo 9 years ago
Toshio Kuratomi b58d7470d4 Cleanup logic and be more paranoid about passwords with spaces 9 years ago
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
9 years ago
Toshio Kuratomi b441bcb678 Fix display when run through a testing framework that overrides stderr/stdout 9 years ago
James Cammarata d15fcf05f0 Fix bug in the way temp vars were created for templating vars_files
Fixes #12711
9 years ago
Brian Coca f5f3bf06e4 Merge pull request #12550 from redrampage/remove-pw-salt-deletion
Removed deletion of salt by 'password' lookup
9 years ago
James Cammarata 73661d1761 Merge branch 'devel' of https://github.com/ansible/ansible into devel 9 years ago
Charles Paul 3d533cb423 fixing calls to fail_json 9 years ago
Brian Coca 50372eecc9 Merge pull request #12455 from privateip/devel
added methods for retrieving vapp and vm
9 years ago
James Cammarata 82e76e42e5 Tweak to the way serial percentages are handled 9 years ago
James Cammarata 63e288354e Fix bug in way omitted values were set 9 years ago
James Cammarata 4c85ae0712 Merge branch 'serial_should_be_string' of https://github.com/klshxsh/ansible into klshxsh-serial_should_be_string 9 years ago
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'
9 years ago
James Cammarata eb60ce1b6e Merge pull request #12703 from keitwb/inventory_file_var
Adding the inventory_file var back
9 years ago
James Cammarata 71a1a3c903 Submodule pointer update 9 years ago
Ben Keith 1f82971283 Adding the inventory_file var back 9 years ago
Toshio Kuratomi 45a161b0a1 Merge pull request #12429 from edmstudio/devel
Update synchronize module plugin to work on OS X
9 years ago
Petr Mifek 6e035a3e94 Move nested function test for ipv6 to top level in synchronize module. 9 years ago
Brian Coca 45788fbfad <homer>doh!</homer> 9 years ago
Brian Coca d24532757c remove fix for local_action/connection local that is now not needed 9 years ago
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 9 years ago
Brian Coca b9d54e9a01 corrects previous fix to deal with missing item key in results dict 9 years ago
Brian Coca abf2e13955 Revert "Track local_action internally to prevent it from being overridden"
This reverts commit 49ca0eb797.
9 years ago
Brian Coca 101c8785ec removed changes to make local action equate connection=local and brought it back to equate delegate_to=localhost 9 years ago
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
9 years ago
Brian Coca fbf4cafab5 on skipped you 'might' not have an item, changed to getattr to avoid keyerror
fixes #12683
9 years ago
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.
9 years ago
Brian Coca ec02b255c3 Merge pull request #12689 from soarpenguin/bugfix
Remove some warning of undefined name and fix classmethod syntax error.
9 years ago
James Cammarata 770032648a Show -> localhost for local_action tasks 9 years ago
James Cammarata f415d39dfd Merge pull request #12690 from stelligent/devel
Use AWS_DEFAULT_REGION env var if none specified
9 years ago
James Cammarata cfa62e7a2a Submodule pointer update 9 years ago
James Cammarata 868819f9fa Make sure shlex split is returning properly encoded strings
Fixes #12676
9 years ago
Shayne Clausson 55b3f9e4e5 Use AWS_DEFAULT_REGION env var if none specified 9 years ago
soarpenguin b11ea17385 fix classmethod syntax error. 9 years ago
soarpenguin 5efa4d29e3 fix some warning of undefined name. 9 years ago
James Cammarata 59d655c543 Double echo temp directory name to handle spaces and ~ expansion both
Fixes #12667
9 years ago
Toshio Kuratomi d1b98ec776 Correct typo 9 years ago
Toshio Kuratomi 2f5e817007 Do not mix byte str with unicode type 9 years ago
Toshio Kuratomi 01ba2e94c0 Wait until later to convert to byte strings for output
Also some pre-emptive python3 compat and a code simplification
9 years ago
Brian Coca 76feba00c4 avoid callbacks during syntax check and listing
fixes #12682
9 years ago
Brian Coca 4463ced8ba simpler safe output 9 years ago
James Cammarata de792ba3c2 Improve handling of unicode errors
Fixes #12669
9 years ago
James Cammarata 5a0f5f1254 Load vars for localhost when created implicitly
Fixes #12666
9 years ago
Brian Coca d8769c93c7 updated ec2 region description to add missing other env var 9 years ago
Brian Coca c77733e64e added docs for commonly used region parameter in some ec2 modules 9 years ago
Brian Coca 638bc14566 now deps is always a list 9 years ago
Brian Coca dac3684fd1 changed task color to dark gray to keep it from being confused with ignore/skip 9 years ago
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
9 years ago
James Cammarata dbae110f6f Merge pull request #12660 from apollo13/fix_galaxy_init
Show a nice error if the role name is missing.
9 years ago
Juraci e52950a939 Displaying task_path on task start when verbosity is more than 3 9 years ago
Juraci 254d6be520 Adding get_path method to Task class 9 years ago
Florian Apolloner 354383874f Show a nice error if the role name is missing. 9 years ago
= 345ce424c6 Explictly set the version of strict mode to use for powershell modules. 9 years ago
James Cammarata 9e364c2eb5 Don't modify results in callbacks
Fixes #12654
9 years ago
James Cammarata 8107c4efc7 Fixing a bug in galaxy parsing of text spec file lines 9 years ago
James Cammarata 7a815b7296 Force connection to local when localhost is delegated to 9 years ago
Toshio Kuratomi 97e8d25eb4 Fix for encoding errors when a command returns non-utf8 encoded values 9 years ago
Toshio Kuratomi 4f6f2c21e8 range vs xrange doesn't matter here and six.moves.range isn't available in six-1.3.0 (rhel7) 9 years ago
James Cammarata 5ae74f7d38 Version bump for 2.0.0-0.3.beta1 9 years ago
James Cammarata d9b79b1bbc Also template the role name when loading roles
Fixes #12602
9 years ago
James Cammarata 9c9897805f More ansible-galaxy fixes for the old spec file format 9 years ago
James Cammarata fb822a4305 Merge pull request #12637 from rcleere/rekey_fix
Fix ansible-vault rekey
9 years ago
James Cammarata 3b8eaf6128 Cleaning up some ansible-galaxy stuff 9 years ago
Ryan Cleere 0400ab8c0f Fix ansible-vault rekey 9 years ago
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
9 years ago
James Cammarata 284bd118a0 Properly switch to the default transport when delegating from localhost 9 years ago
Brian Coca 6f88f79de9 removed dupe install code, now trap errors forom role.install 9 years ago
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
9 years ago
Brian Coca a3ed9fc131 updated to 'fixed' get_url so docs build again 9 years ago
Brian Coca f3d0468726 updated submodule refs 9 years ago
James Cammarata 323012be2e Pop tags out of playbook include params
Fixes #12605
9 years ago
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.
9 years ago
Toshio Kuratomi b83988d9fb Port libvirt_lxc connection plugin to v2 9 years ago
Toshio Kuratomi 567deb5ac2 Add explicit substitution of relative paths on the remote host just in case the connection programs do something unexpected. 9 years ago
Brian Coca 8528b20702 fixed usage text 9 years ago
Brian Coca 04a2b221b9 removed conflicting short options 9 years ago
James Cammarata 38528c8ef3 Show more info in the minimal callback for unreachable hosts
Fixes #12621
9 years ago
Toshio Kuratomi 613e87db6c FIx typo arg_path (not plural) 9 years ago
Brian Coca 4ba5ebd1c8 Merge pull request #12538 from yesbox/url_lookup_plugin_httperror_fix
Fix url lookup plugin HTTPError message not being reachable
9 years ago
Peter Sprygada ab3239ecd7 added methods for retrieving vapp and vm 9 years ago
Toshio Kuratomi 10750214ea Since Connection.execute_command() returns bytes, deal with the repurcussions here. 9 years ago
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
9 years ago
James Cammarata c28758d2a8 Merge branch 'ssh-args' of https://github.com/amenonsen/ansible into amenonsen-ssh-args 9 years ago
James Cammarata 82faba619e Also add args_path param to powershell shell plugin 9 years ago
James Cammarata 30d481ac57 Fix old-style (non-python) module support 9 years ago
Toshio Kuratomi e40e08d799 Update core sumodule ref to fix docs 9 years ago
Abhijit Menon-Sen b127221f50 Pass default None to getattr, remove repeated call 9 years ago
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.
9 years ago
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.
9 years ago
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
9 years ago
Toshio Kuratomi f13d5201b8 Update module refs 9 years ago
Brian Coca 4c9f58a152 added no_log censoring to item output
should be last commit that fixes #12214
9 years ago
Brian Coca ba4afcbbb6 added no_log to results
normalized outputs to use display class
cleaned up unused imports
9 years ago
Brian Coca c27bd4fab0 {sudo,su}_user does not imply become 9 years ago
James Cammarata 57372906aa Pull host/group vars when adding hosts/groups
Fixes #12582
9 years ago
James Cammarata aa3687d736 Fix syntax error for octal in encrypt methods 9 years ago
James Cammarata 538568305a Submodule pointer update for accelerate module fixes 9 years ago
James Cammarata 8ef78b1cf8 Fixing accelerated connection plugin 9 years ago
Brian Coca 3705d54485 fixed error reporting on splitter 9 years ago
Brian Coca de2f62bd9e fixed error reporting for unkown become user 9 years ago
Brian Coca 6d6bfbc3d2 added missing import for pwd, was being obscured by exception catching and fallback 9 years ago
Brian Coca a680ef66dd fixed vault password file script execution 9 years ago
Brian Coca 6b842d9c49 fixed incorrect data passing on certain events 9 years ago
Brian Coca 2463922306 fixed error reporting when missing redis import 9 years ago
Brian Coca 6e96188085 added missing entry for dealing with bcc 9 years ago
Brian Coca 6ec5abf1c3 fixed some pyflakes 9 years ago
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!
9 years ago
Brian Coca fe0e4f27ad Merge pull request #12584 from amenonsen/fixups
Remove an unwanted FIXME annotation
ok, confirmed we don't want to support it
9 years ago
Brian Coca 6c190aa8a4 updated ansible-doc to ignore more stuff that has been added to the module repos 9 years ago
Brian Coca 1a56a5c442 created debug method, renamed debug attribute to _debug 9 years ago
James Cammarata deff045aa9 Fix bug caused by options not having start_at_task when used through adhoc
Fixes #12590
9 years ago
Toshio Kuratomi a0920c06e1 Pull submodule refs to fix docs builds 9 years ago
Toshio Kuratomi 4dae7eeca1 Update submodule refs 9 years ago
Toshio Kuratomi 56fa9a5098 Port to v2 API 9 years ago
Toshio Kuratomi d35c9a30fb Minor refactorings 9 years ago
Toshio Kuratomi 888bcd65a8 Create error messages instead of tracebacks. 9 years ago
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.
9 years ago
Toshio Kuratomi 4cfcf5d61b Merge pull request #12568 from mgedmin/py3k
Python 3: fix most tests for ansible.module_utils.basic
9 years ago
Trond Hindenes 94cfbe7ee9 Get-AnsibleParam 9 years ago
James Cammarata dcb8caf9e8 Remember if we already skipped tasks via --start-at-task
Fixes #12482
9 years ago
chouseknecht 57adf11262 Fix metadata description for galaxy_tags. 9 years ago
chouseknecht f4690e3bfe Changing tag to galaxy_tag. 9 years ago
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.
9 years ago
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.
9 years ago
Brian Coca bf06e36382 updated async to pass along no_log setting 9 years ago
Marius Gedminas cc1e1648f5 Tweak comment style 9 years ago
Marius Gedminas 213029a21e Python 3: don't convert unicode to unicode 9 years ago
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.)
9 years ago
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'
9 years ago
Brian Coca ddafed4403 Merge pull request #12528 from bcoca/task_logging
task logging revamp
9 years ago
Brian Coca 7b64126c9d pushed up openvz detection for cases of 'stacked' virtualization 9 years ago
Linus Unnebäck 45f9800754 facts: correctly detect docker inside a xen host 9 years ago
James Cammarata 3bd71d0619 Use delegated_to field for play context remote_addr, if none other exists
Fixes #12527
9 years ago
James Cammarata 40bdf09998 Merge pull request #12561 from srvg/anotherdirpy
Inject existing groups at InventoryDir initialization
9 years ago
James Cammarata 6fcd292c5e Merge pull request #12569 from amenonsen/fixes
Bring groups handling in ini.py up-to-date (trivial fix)
9 years ago
James Cammarata dfa33d0f23 Tweak variable manager use in role includes to avoid test failures 9 years ago
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.
9 years ago
James Cammarata a89412ecb1 Fail all hosts if a run_once task fails
Fixes #12563
9 years ago
James Cammarata 7173f587ed Allow delegate_to on a role again
Fixes #12560
9 years ago
James Cammarata a3e913da62 Don't assume handlers exist in the same role (if any)
Fixes #12536
9 years ago
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')
9 years ago
James Cammarata 79e364d98b Properly template role dependency names
Fixes #12505
9 years ago
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.)
9 years ago
Toshio Kuratomi 95ede22a1e Add a comment about the docker connection and usage by non-root users 9 years ago
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
9 years ago
Toshio Kuratomi 1d119a1f46 Cleanup some extraneous imports 9 years ago
James Cammarata ffdba96668 Save the included directory for playbook includes for use as the basedir
Fixes #12524
9 years ago
Konstantin Manna 4226e49bc6 bugfix: statement had no effect => statement now has assumed effect 9 years ago
Konstantin Manna 1ccfeafa76 bugfix: use correct close calls 9 years ago
Brian Coca c1ad96e5cf removed fixme as it is already implemented below. 9 years ago
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
9 years ago
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.
9 years ago
Toshio Kuratomi 7a4266e9c5 One more try -- the error message should reference the become method
requested via play context
9 years ago
Toshio Kuratomi 696cf32d63 Correct name of variable 9 years ago
Brian Coca 8d024c3747 Merge pull request #12472 from resmo/for_ansible
cloudstack: improvements and tests
9 years ago
Toshio Kuratomi 0dfa1fb43a Correct call to method typo 9 years ago
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.
9 years ago
Toshio Kuratomi 37844a5c1b Update submodule refs 9 years ago
Toshio Kuratomi c811668a4d Merge pull request #12546 from amenonsen/ssh-cleanups
A couple of ssh cleanups
9 years ago
Toshio Kuratomi 05af4c8e91 Merge pull request #12471 from amenonsen/pipelining
Make pipelining a connection variable
9 years ago
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.).
9 years ago
Toshio Kuratomi c3a05b1181 Update to fix one more doc error 9 years ago
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.
9 years ago
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.)
9 years ago
Toshio Kuratomi fd267989fb Fix docs build 9 years ago
Toshio Kuratomi 69ebb899a7 Update submodule refs 9 years ago
James Cammarata c860775b5d Another fix for --limit in adhoc 9 years ago
James Cammarata babf47decb Clean up some bugs related to --limit on adhoc commands 9 years ago
James Cammarata 621575681a Merge pull request #12542 from amenonsen/qfix
Clarify why we add -q only for ssh
9 years ago
Abhijit Menon-Sen 2ce219b5af Clarify why we add -q only for ssh 9 years ago
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.
9 years ago
Jesper Geertsen Jonsson 353b549eb0 Fix HTTPError message not being reachable 9 years ago
James Cammarata 4cd810a674 Only append -q option for ssh if we're using ssh 9 years ago
James Cammarata 46984a067c Don't wrap vars from include_vars with UnsafeProxy 9 years ago
James Cammarata abfeb104df Merge pull request #12529 from soarpenguin/bug-fix
fix no self pointer out of class.
9 years ago
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.
9 years ago
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
9 years ago
Toshio Kuratomi ae66d01a33 Document how a command is executed on the remote machine
Helps connection plugin implementors understand how to structure
exec_command()
9 years ago
James Cammarata 6dd38c2a10 Fix parent attribute lookup to be default
Fixes #12526
9 years ago
James Cammarata a1c38a3fda Adding delegate_to to Blocks 9 years ago
Brian Coca bb6141ec41 renamed managed_syslog to no_target_syslog 9 years ago
Abhijit Menon-Sen 8251ab2e37 Update outdated comment
Since #12165 was merged, hostnames are properly validated.
9 years ago
Abhijit Menon-Sen 6ff4d40d74 Update outdated comment
We now use "sudo -n" instead of "sudo -k && sudo …"
9 years ago
soarpenguin 1ea66e234f fix logic judgment error. 9 years ago
soarpenguin 2caa52a981 fix no self pointer out of class. 9 years ago
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
9 years ago
James Cammarata 60e1a1f8eb Fix bug in nested lookup where pop is called indiscriminately 9 years ago
Brian Coca 191ae0831d fixed syntax error 9 years ago
Brian Coca 48412c13b2 fixed copy n paste typo on future code 9 years ago
James Cammarata bb1101498d Clean up typo from cdc6c52 9 years ago
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
9 years ago
James Cammarata ae9b34b1d9 Fix for equality checking in Host to make sure things are like types 9 years ago
Toshio Kuratomi fa9ea32a86 Fix test of whether a result has a failed host 9 years ago
Brian Coca 1c49e3b842 draft shared service code for modules, part of spliting service module 9 years ago
Toshio Kuratomi 41756be4d3 Update core module ref 9 years ago
Toshio Kuratomi dcdcd9e9c5 Move is_executable to the toplevel of basic.py so we can utilize it from other code 9 years ago
James Cammarata ccddda1ebc Merge pull request #12502 from mgedmin/py3k
Python 3: make test_variable_manager_precedence pass
9 years ago
James Cammarata eb8d7dcd14 Make sure formatted strings don't bomb on tuples
Fixes #12501
9 years ago
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
9 years ago
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.)
9 years ago
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
9 years ago
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
9 years ago
James Cammarata 12df9f2e31 Make hostvars more dynamic again to improve performance with large inventories
Fixes #12477
9 years ago
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.
9 years ago
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.
9 years ago
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.
9 years ago
James Cammarata 9d47eabfa4 Merge pull request #12506 from hyperized/devel
Add Weekday (0-6) as a number and add weeknumber (00-52)
9 years ago
Toshio Kuratomi 24b9e2e6d1 Update extras submodule ref 9 years ago
Gerben Geijteman 4c20964475 Add Weekday (0-6) as a number and add weeknumber (00-52) 9 years ago
Marius Gedminas 56f2a25bff Python 3: there's no 'unicode' 9 years ago
Marius Gedminas 6d4618f46f Python 3: there's no dict.iteritems() 9 years ago
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.
9 years ago
Marius Gedminas a2bc6b4b26 Bugfix: if you define __eq__, you should define __ne__ too 9 years ago
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.
9 years ago
Toshio Kuratomi 5d3d9cfe0d Convert to byte strings to avoid UnicodeErrors
Fixes #12488
9 years ago
Brian Coca de18bcb95f correct typo on error reporting
fixes #12495
9 years ago
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.
9 years ago
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.
9 years ago
James Cammarata 1164e83477 Remove unnecessary calls to save inventory restrictions since 81bf88b 9 years ago
Toshio Kuratomi 89a78ba16e Update submodule refs 9 years ago
James Cammarata 9e734df0ec Conditionally poll longer if we're still waiting for an auth prompt 9 years ago
Toshio Kuratomi 5f0f5363b6 Merge pull request #12487 from mgedmin/py3k
Fix one more failing test on Python 3
9 years ago
James Cammarata 2898e000a0 Don't use the connection timeout for the select poll timeout 9 years ago
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.)
9 years ago
James Cammarata c9a004227e Improve error catching from malformed playbook data
Fixes #12478
9 years ago
James Cammarata e8e1d9f6fb Apply --limit to inventory in adhoc commands
Fixes #12473
9 years ago
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.
9 years ago
Marius Gedminas 2c4982b58d Python 3: there's no itertools.imap
Because the builtin map() acts like an iterator already.
9 years ago
Marius Gedminas 6708d56a21 Python 3: avoid long integer literals
Even Python 2.4 automatically promotes int to long.
9 years ago
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.
9 years ago
Marius Gedminas e71a986e16 Python 3: avoid octal constants in module_utils/basic.py 9 years ago
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.
9 years ago
James Cammarata 65630d2ce1 Fixing one more bug related to staticmethods in LookupBase 9 years ago
James Cammarata cbbb270761 Cleanup bug from moving base lookup methods to staticmethods 9 years ago
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.
9 years ago
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.
9 years ago
James Cammarata 95c6fe88e4 Fix handling of conditional vars_files which contain variables
Fixes #12484
9 years ago
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.
9 years ago
Toshio Kuratomi 049952fa50 Update submodule refs. 9 years ago
James Cammarata 1e7fd2196d Fixing synchronize + delegate_to user bug
Fixes #12464
9 years ago
James Cammarata 3ffc2783c4 Don't bomb out on handlers with undefined variables in their names 9 years ago
Toshio Kuratomi 4b0d52d2cb Merge pull request #12420 from ansible/win_prefix_modules
Fix for user defined modules not overriding modules from core.
9 years ago
James Cammarata 1076155d8d When failing because of vars_files templating, try and bubble up the file/line info 9 years ago
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.
9 years ago
Toshio Kuratomi f61fb9787d Update submodule refs 9 years ago
Rene Moser b43939dfd6 cloudstack: make tags handling idempotence
Credits to @jeffersongirao, who provided the patch.
9 years ago
James Cammarata c30e464388 Additional tweaks to callback output for delegate_to 9 years ago
James Cammarata 513619867a Show delegated-to host in callback message
Fixes #12465
9 years ago
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,
9 years ago
Rene Moser c9a3801a25 cloudstack: common argument_spec and requried_together to utils 9 years ago
James Cammarata f563b22446 Merge pull request #12461 from mgedmin/py3k
Python 3: there's no basestring
9 years ago
James Cammarata d2949f5449 Merge pull request #12463 from mgedmin/fix-ansible-doc
Fix option descriptions in ansible-doc output
9 years ago
James Cammarata 0fb4a6a67b Tweak to the way new host variables are created for delegated hosts 9 years ago
Marius Gedminas 339790adc4 Fix option descriptions in ansible-doc output
Fixes #12462.
9 years ago
James Cammarata 18adfc6d1a Set some default vars on hosts created for delegate_to connections 9 years ago
James Cammarata a22f7b883d Restrict role param vars to tasks within that role
Fixes #12460
9 years ago
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.
9 years ago
James Cammarata ecf7d8c9ee Fix relative path bug in copy action
Without rebreaking #12055

Fixes #ansible-modules-core/2098
9 years ago
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
9 years ago
Toshio Kuratomi 627f9d73ba Detect if core modules aren't installed and warn if that is the case
Fixes #11206
9 years ago
Brian Coca d27b73e7b5 fixed case in which boto3 is present but module is not using it yet 9 years ago
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.
9 years ago
Brian Coca f96255f7fd fixed typo 9 years ago
James Cammarata 86566e691a Merge pull request #12447 from mgedmin/py3k
Python 3: there is no 'basestring'
9 years ago
James Cammarata 8769f03c16 Also catch AnsibleUndefinedVariable errors when templating vars_files names
Fixes #12449
9 years ago
Toshio Kuratomi 2a614c1c0f Close module file once we're done reading from it 9 years ago
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).
9 years ago
Victor Salgado 20bbd66e85 Use dict.get() 9 years ago
James Cammarata 65bf14cbb0 Merge pull request #12431 from hslee16/devel
Stops using _groups_list to check for host when using 'add_host'
9 years ago
James Cammarata 88e1aa94fa Add play context vars to list of variables before post validation
Fixes #12437
9 years ago
James Cammarata 05f6e76407 Template handler names before checking to see if they need to run
Fixes #12427
9 years ago
James Cammarata 72769d1899 Merge pull request #12432 from mgedmin/py3k
Python 3: there's no xrange
9 years ago
James Cammarata 37f2cbc429 Merge pull request #12436 from amenonsen/ranges
Support «hosts: foo[1:]» and add tests for split/apply_subscript
9 years ago
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
9 years ago
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)
9 years ago
Peter Sprygada e45b71d6cd added new module object to vca 9 years ago
Abhijit Menon-Sen 2fcdb37e7b Support «hosts: groupname[1:]» notation (~= 'the rest of the group') 9 years ago
Brian Coca aca83b15e5 Merge pull request #12425 from privateip/devel
initial add of vca common module
9 years ago
Brian Coca 11707576a3 fix for AIX network facts
fixes #12434
9 years ago
Brian Coca d7b61db6dc made boto3 non mandatory 9 years ago
Toshio Kuratomi fdb1c14004 Update the submodule pointers 9 years ago
Petr Mifek 27f779a7cc Small clean up and refactor of the rsync target ipv6 observing formatter for synchronize action. 9 years ago
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.
9 years ago
Alex Lee cf289191e5 return None if group does not exist in inventory groups 9 years ago
Petr Mifek 6f3f4dff7a Change synchronize module plugin to be backwards compatible with RSync 2.6.9 with regard to handling IPv6 addresses. 9 years ago
James Cammarata cc6627cdd6 Remove custom json encoder cleaner and strip proxy var stuff out before encoding
Fixes #12349
9 years ago
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
9 years ago
James Cammarata bde5ed9672 Catch worker errors that may be subclassed on others that lead to incorrect exits 9 years ago
Peter Sprygada 8f43d222c0 initial add of vca common module 9 years ago
James Cammarata 053c41e79d Fix typo in ansible module_utils import from galaxy code 9 years ago
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
9 years ago
Abhijit Menon-Sen 2d420a9bb7 Allow hexadecimal ranges in IPv6 addresses, not only 0-9 9 years ago
James Cammarata b386f0c64d Merge pull request #12423 from amenonsen/split-fixup
Remove deprecation warning; now handled in _split_patterns
9 years ago
James Cammarata a1fffff92c Merge branch 'addresses' of https://github.com/amenonsen/ansible into amenonsen-addresses 9 years ago
Abhijit Menon-Sen 62ca6b5e35 Remove deprecation warning; now handled in _split_patterns 9 years ago
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.
9 years ago
James Cammarata 951128d7a6 Merge branch 'hostpatterns' of https://github.com/amenonsen/ansible into amenonsen-hostpatterns 9 years ago
Victor Salgado 14fefebaad Modify _split_pattern to use map when working with list input 9 years ago
James Cammarata 46baed864f Submodule update after correcting doc bug 9 years ago
James Cammarata 0beb37a121 Submodule update 9 years ago
James Cammarata ba82e57445 Merge branch 'sudo_on_if_needed' of https://github.com/apollo13/ansible into apollo13-sudo_on_if_needed 9 years ago
Toshio Kuratomi 8532ddd5ed typo in formatting the warning message 9 years ago
Toshio Kuratomi 4ae5512fb0 Restore python3 compat fix and fix AnsibleError undefined before use 9 years ago
James Cammarata c881b1acae Merge pull request #12407 from mgedmin/py3k
Python 3: basestring in play_context.py
9 years ago
James Cammarata 8acbc00853 Fixing groups variable structure to match v1
Fixes #12418
9 years ago
Abhijit Menon-Sen 349eec7855 Fix missing colon (typo) in IPv6 pattern 9 years ago
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
9 years ago
Florian Apolloner d9f873495e Ported over #7158 to support SELinux context switches. 9 years ago
Brian Coca ee840f3029 fixed function signature 9 years ago
Florian Apolloner decd9e8710 Only use become if the target user difers from the current remote user. 9 years ago
Marius Gedminas 8243954dcd Python 3: basestring in play_context.py 9 years ago
Toshio Kuratomi 3db8070aa3 Fix urlopen usage to use open_url instead
Add a travis test for urlopen usage
9 years ago
James Cammarata e97d448838 Cleanup one more missed inventory bug 9 years ago
James Cammarata 5db9e38377 Merge pull request #12345 from mgedmin/py3k
Python 3: two more instances of 'basestring'
9 years ago
Chris Church 43b15ab9a4 Merge pull request #12385 from cchurch/winrm_put_empty_file
Enable winrm put_file to upload an empty file.
9 years ago
Chris Church 93af0b327f Merge pull request #12384 from cchurch/powershell_strict_mode
Add PowerShell exception handling and turn on strict mode.
9 years ago
Chris Church 0325f92b6a Merge pull request #12054 from cchurch/winrm_options
Support additional options for WinRM connections via inventory variables
9 years ago
Chris Church c5409ab493 Remove ansible_winrm_ host/port/user/pass options, update exception handling around establishing a winrm connection. 9 years ago
Chris Church 056c6b77d0 Support additional options for WinRM connections via inventory variables. 9 years ago
James Cammarata 11c27078c0 Cleaning up inventory bugs from earlier group change 9 years ago
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
9 years ago
Victor Salgado 54f1560d3e Fix mutable default argument 9 years ago
James Cammarata 33e79203ce Merge branch 'quinot-topic/crash_empty_inventory' into devel 9 years ago
James Cammarata c8f2483d6d Cleaning up default group creation in inventory parsers 9 years ago
Toshio Kuratomi 30552cf7e9 Fix problems with undefined references to self.display and remove method that's no longer called 9 years ago
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
9 years ago
James Cammarata 4429e7611b Merge pull request #12382 from AxelDelmas/env_async
Added env_string in async_cmd
9 years ago
James Cammarata e899b8e70d Merge branch 'topic/crash_empty_inventory' of https://github.com/quinot/ansible into quinot-topic/crash_empty_inventory 9 years ago
James Cammarata b2848bd25f Merge pull request #12389 from amenonsen/minus-t
Set PlayContext.timeout from the value specified by -T on the command-line
9 years ago
James Cammarata d91ff0db74 Fixing parent block serialization for blocks
Fixes #12395
9 years ago
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
9 years ago
Abhijit Menon-Sen 85bb508f26 Set PlayContext.timeout from the value specified by -T on the command-line
Fixes #12372
9 years ago
James Cammarata 2a50957ad8 Fix galaxy install dep failure
Also fixes issue where force does not force reinstall of deps

Fixes #10425
9 years ago
Toshio Kuratomi 1a39e32a13 Update core modules ref 9 years ago
Chris Church 6ab4cff7db Enable winrm put_file to upload an empty file. 9 years ago
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.
9 years ago
James Cammarata a1948dd1c1 Merge branch 'bcoca-normalize_plugin_paths' into devel 9 years ago
James Cammarata a7e1113b26 Removing FIXME comment which is no longer required 9 years ago
James Cammarata d818a72375 Merge branch 'normalize_plugin_paths' of https://github.com/bcoca/ansible into bcoca-normalize_plugin_paths 9 years ago
Axel Delmas 4802641de7 Added env_string in async_cmd 9 years ago
James Cammarata 60c139e482 Fix logic for changed/failed_when + retry/until loops
Fixes #11809
9 years ago
James Cammarata 8e664ad226 Fix delegate_to localhost vs. 127.0.0.1 (and ::1) 9 years ago
James Cammarata 38573c55bf Tweak failure condition for field attributes expected to be strings 9 years ago
James Cammarata cfdaec0c22 Make sure string attributes are strings from YAML to avoid bad type conversions
Fixes #12367
9 years ago
Brian Coca b6d6c2e4db corrected all missing paths changes 9 years ago
Brian Coca 4aea1f6568 normalized plugin paths and names and configs 9 years ago
Brian Coca 02372e9761 Merge pull request #12371 from apollo13/patch-1
Remove duplicate SU_PROMPT_LOCALIZATIONS
9 years ago
Florian Apolloner 9334046189 Remove duplicate SU_PROMPT_LOCALIZATIONS 9 years ago
gptech 1c6be7b9ba Replace 'degug' with 'debug'
Tiny typo fix.
9 years ago
Andriy Yurchuk af213241ab Fix typo 9 years ago
Brian Coca e7807c4f2d Merge pull request #12339 from emonty/feature/openstack-no-log
Add no-log parameter to common openstack args
9 years ago
James Cammarata 4f30db8ca5 Check if path is /dev/null when checking if a file is in fact a file 9 years ago
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. 9 years ago
James Cammarata feee4613cd Merge pull request #12357 from apollo13/become_fix
Fixed #12356 -- Restored ansible 1.9.x become behavior.
9 years ago
James Cammarata 49ca0eb797 Track local_action internally to prevent it from being overridden
Fixes #12053
9 years ago
Florian Apolloner 8182eb3787 Fixed #12356 -- Restored ansible 1.9.x become behavior. 9 years ago