Commit Graph

2748 Commits (bd56cfdf184203eca67052c6dec4b5467473a55b)

Author SHA1 Message Date
James Cammarata e3b887f770 Fix range issue in inventory and add additional error checking
Fixes #6331
11 years ago
James Cammarata 3cd7d47b7e Correctly catch template errors without returning invalid data
Fixes #6329
11 years ago
James Cammarata f80d02d841 Properly wrap logical elements together for su/sudo detection 11 years ago
James Cammarata b6056044b7 Partial revert of 73c883c due to issues with handlers in roles
Fixes #6322
11 years ago
Michael DeHaan e486dbab04 Use the loaded variable since we have it assigned, not just for error detection. 11 years ago
Michael DeHaan 3f07ec3d73 Fixup JSON error reporting in previous commits. 11 years ago
Michael DeHaan a4d01b0891 Also search .json filenames 11 years ago
Michael DeHaan 79799f6819 Allow any file that can be in YAML to also be in JSON. This is primarily done to support non-visual editors better. 11 years ago
James Cammarata a0f939581d Merge branch 'aresch-devel' into devel 11 years ago
Paul Durivage 3cce3650e5 Use isinstance() rather than a check using type() 11 years ago
Richard Isaacson 119434d079 Merge pull request #6319 from risaacson/fix_test_dir_inventory
Fix TestInventory Unit Tests

Tested clean.
11 years ago
James Cammarata 9b79591f23 Merge branch 'devel' of https://github.com/aresch/ansible into aresch-devel 11 years ago
James Cammarata 2a0028e687 Sanitize run_command argument output
Fixes #6316
11 years ago
Andrew Resch 4d80019ac8 Fix logic checking for both sudo and su, and their respective users 11 years ago
Richard C Isaacson 16fe09eef8 Fixes related to uncommenting test_dir_inventory in TestInventory.
0. Uncomment the test.
1. Test fails.
2. Make vars unique per file in test inventory files.
3. Modify token addition to not ast.literal_eval(v) a variable containing a hash.
4. Modify vars to have an escape in test inventory file.
5. Catch exceptions explicitly. Any unknown exceptions should be a bug.
6. Test passes.
11 years ago
James Cammarata 9f2999df79 Un-escape newlines in delimiters for assemble module 11 years ago
Brian Coca 79809b67dc fixed another line with same issues
Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
11 years ago
Brian Coca d3d5680d8f tags lists are properly uniqued and joined now, also avoids type issues when passed as list/set or strings
Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
11 years ago
Will Thames b9a7352e0a Work to allow security tokens and profiles to work with Ansible
Allow security tokens and profiles to be used as arguments
to the 'common' ec2 modules

Mostly refactoring to provide two new methods,
`get_aws_connection_info`, which results in a dict that can be
passed through to the boto `connect_to_region` calls, and
`connect_to_aws` that can pass that dict through to the
`connect_to_region` method of the appropriate module.

Tidied up some variable names

Works around boto/boto#2100

profiles don't work with boto < 2.24, but this detects for that
and fails with an appropriate message. It is designed to work
if profile is not passed but boto < 2.24 is installed.

Modifications to allow empty aws auth variables to be passed
(this is useful if wanting to have the keys as an optional
parameter in ec2 calls - if set, use this value, if not set,
use boto config or env variables)

Reworked validate_certs improvements to work with refactoring

Added documentation for profile and security_token to affected modules
11 years ago
James Cammarata 0e98496e12 Merge pull request #6299 from jimi-c/issue_4656_role_deps_across_plays
Keep track of role dependencies across plays
11 years ago
Michael DeHaan 94a7fb60fe Allow escaped comments in inventory files. 11 years ago
aresch 23a0468a4b Fix respecting remote_tmp when sudo is used 11 years ago
James Tanner 4e8ed92130 Fixes #6077 decode escaped newline characters in content for the copy module 11 years ago
Richard C Isaacson b41d8106ff Revert "Merge pull request #6287 from risaacson/fix_hash_in_var"
This reverts commit a808287451, reversing
changes made to 6129ea7566.
11 years ago
James Cammarata 73c883c122 Keep track of role dependencies across plays
Also fixes a bug in which tags specified on top-level roles were
not being passed down to dependent roles.

Fixes #4656
11 years ago
Richard Isaacson a808287451 Merge pull request #6287 from risaacson/fix_hash_in_var
Fix inventory for test_dir_inventory, merge PRs from GH-5749, cleanup some formatting.
11 years ago
James Tanner 6129ea7566 Fixes #6298 and adds a sudo unit test for synchronize 11 years ago
Richard C Isaacson 38abd5e20e Break this out into a reusable function and document regex shortcomings. 11 years ago
Luca Berruti 7cf363910a fixes #6244 11 years ago
jctanner 40ee030790 Merge pull request #6265 from franckcuny/gce-fixes
Add credential parameters to the GCE modules.
11 years ago
Franck Cuny 6294264dc4 Add credential parameters to the GCE modules.
In order to simplify the workflow with the GCE modules, it's now
possible to add the parameters and project name as arguments to the
various GCE modules.

The inventory plugin also returns the IP of the host in
`ansible_ssh_host` so that you don't have to specify IPs into the
inventory file.

Some update to the documentation are also added.

Closes #5583.
11 years ago
Richard C Isaacson 49bd8b0b35 Fix inventory for test_dir_inventory
It came up that fixing this unit test may relate to another ticket that is open. This work allows us to uncomment this unit test by fixing how we pars variables allowing a quoted variable to contain a '#'.

Work also went into cleaning up some of the test data to clarify what was working.

Lastly work went into cleaning up formatting so that the code is easily read.
11 years ago
Aaron Bassett 5c589af191 fix missing stdin in _parallel_runner 11 years ago
Richard Isaacson 92aacb198c Merge pull request #6156 from iiordanov/devel
Add support for checking host against global known host files.

The effect of this is that before this fix if files are spread across the known_hosts file but not in the ~/known_hosts file the hosts will execute sequentially. This PR augments the functionality so that all of the knowns hosts will execute in parallel.
11 years ago
Richard Isaacson e79d859dfb Merge pull request #6213 from sergevanginderachter/fix-delegate-templating
Fixes templating of ansible_ssh_host for delegates.

Tested that this works. Confirmed.
11 years ago
Michael DeHaan 435104065e Merge pull request #6248 from hkariti/fix_list_copy
Fix incorrect use of copy() on list, causing a traceback
11 years ago
Jesse Keating 0c2c37a47a Avoid range selection on empty groups
This prevents a traceback when the group is empty.
Fixes #6258
11 years ago
James Tanner 623cd9ac50 Revert "Merge pull request #6250 from dagwieers/gather_facts-once"
This reverts commit b769b4181a, reversing
changes made to 1e01fb856d.
11 years ago
Dag Wieers 0da06eff5c Fix regression causing setup to run for every play
This patch makes sure setup only runs once, unless it is enforced on a play.
11 years ago
Hagai 0e4b38ed5a Fix incorrect use of copy on list 11 years ago
Tefnet c652802d29 missing import in assert module
Fixed missing ansible.errors import in assert module
11 years ago
Michael DeHaan 16d3be03af Remove a few extra legacy variable feature references. 11 years ago
Michael DeHaan 46ec8759d5 Remove the legacy templating code, which was guarded by deprecation warnings in the previous two releases, and undocumented for a long time. use {{ foo }} to access variables instead of ${foo} or $foo. 11 years ago
Michael DeHaan 9d01d88a57 Bump versions on the devel branch (devel branch version is 1.6) 11 years ago
Michael DeHaan 5443ddec75 Trim references to fireball as we want folks using accelerate or pipelining options. Fireball is pretty well deprecated at this point, but will still be part of the release. 11 years ago
James Cammarata 79645535c0 Handle empty results from failed connections in _remote_md5()
Fixes #5800
11 years ago
Gilles Cornu 04f6367172 Fully clean 'ssh_old' and 'paramiko_alt' options
These transports have been removed in 33857855ad
11 years ago
Ashok Raja R cb3c6417dd pause plugin doesn't flush raw_input prompt
##### Issue Type:

Bugfix Pull Request

##### Ansible Version:

ansible 1.4.3

##### Environment:

N/A

##### Summary:

We are using a wrapper python script to run ansible-playbook. We use subprocess to execute and print the stdout as and when its written. Problem is when we use pause it doesn't display the prompt string as raw_input does not flush stdout before reading from stdin.

It looks like a dirty fix to add "\n" to the prompt string but i don't see any other way to over come this. If anyone else have a better fix please do propose/suggest.

##### Steps To Reproduce:

```yaml
#File: test_play.yml
- name: Test
  hosts: $nodes
  gather_facts: false

  tasks:
    - name: Waiting for User
      local_action: pause prompt="Do you want to continue (yes/no)? "
```

```python
#!/usr/bin/env python
#File: test.py
import shlex, subprocess

def run_process(process):
    process = process.encode("utf-8")
    command = shlex.split(process)
    p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    for line in iter(p.stdout.readline, b''):
        print line,

cmd = "/usr/bin/python -u /usr/bin/ansible-playbook -i hosts.txt test_play.yml -e 'nodes=local'"
run_process(cmd)
```

```
shell $ python test.py
```

##### Expected Results:
```
PLAY [Test] *******************************************************************

TASK: [Waiting for User] ******************************************************
[localhost]
Do you want to continue (yes/no)? :
```

##### Actual Results:
```
PLAY [Test] *******************************************************************

TASK: [Waiting for User] ******************************************************
[localhost]
```
11 years ago
James Cammarata df9de6ea71 Expand the source path in the action plugin when not using a remote source
Fixes #6209
11 years ago
Serge van Ginderachter 9833263417 Fixes templating of ansible_ssh_host for delegates 11 years ago
James Cammarata c11e2100e0 Save the original transport in runner after detecting the smart transport
Fixes #6192
11 years ago
Michael DeHaan cd7d7eb1bc Merge pull request #6202 from muffl0n/unarchive_destdir
unarchive: output dest in error-message
11 years ago
muffl0n 17946b23d5 output dest in error-message 11 years ago
Richard C Isaacson 9c8bbe2904 column must always be less than len(probline)
Fixes related to GH-5773.
11 years ago
James Cammarata 14ba10393b Minor tweak to region config in boto configuration file 11 years ago
James Cammarata 88acb48e61 Merge branch 'ec2_boto_config_region' of https://github.com/willthames/ansible into willthames-ec2_boto_config_region 11 years ago
James Cammarata 2a383786dd And remove the expanduser calls from the action_plugin 11 years ago
Richard C Isaacson 585766201d When looking for double colon len(line) is longer then 1.
Addresses GH-5116.

It comes up that when parsing json that if you are missing the last double quote on the last variable and the next line is just '}' we will get an out of range error. In this instance we will also then make sure that the line is long enough to have two colons.
11 years ago
James Cammarata b758ed9417 Merge pull request #6150 from hkariti/fix_join_bug
Fix incorrect use of .join on list causing a traceback
11 years ago
James Cammarata 96f1c3ce2e Move where the expanduser call is made, to avoid issues with None 11 years ago
James Cammarata e659d55d62 Merge branch 'devel' of https://github.com/muffl0n/ansible into muffl0n-devel 11 years ago
James Cammarata 5ff20c1ae7 Merge branch 'scottanderson42-ec2-params' into devel 11 years ago
James Tanner baed7a0ed9 Fixes #6187 Add unit tests for VaultLib 11 years ago
Michael DeHaan 33857855ad removing some unusued files. Paramiko alt was an experiment to attempt pipeline for paramiko, ssh_old is the non-pipelining-supported earlier
version of the OpenSSH transport, which is configurable now and unified.
11 years ago
James Tanner 35def422a3 Addresses #6188 Add --vault-password-file to bin/ansible and bin/ansible-playbook 11 years ago
James Cammarata 8a7c68dc18 Merge branch 'ec2-params' of https://github.com/scottanderson42/ansible into scottanderson42-ec2-params
Conflicts:
	lib/ansible/module_utils/ec2.py
	library/cloud/ec2
11 years ago
Richard C Isaacson af616fe15e Rename flatten funciton.
flatten(x) is used a lot in the various lookup plugins where in each it is slightly different. This is to make this name slightly more unique.
11 years ago
Kent R. Spillner 1fcc9ff666 lookup_plugins: loop over hashes
Create a lookup plugin named dict that can be used to loop over hashes.
It converts a dict into a list of key-value pairs, with attributes named
"key" and "value."  Also adds a brief explanation and simple example to
the docs.

Signed-off-by: Kent R. Spillner <kspillner@acm.org>
11 years ago
James Tanner 876035c0b1 Fixes #6161 Get the delegate host info properly from the hostvars object 11 years ago
James Tanner 9209581565 Fixes #6155 Inject checkmode into synchronize module args 11 years ago
James Cammarata a18f811b2d Merge branch 'jimi-c-issue_4620' into devel 11 years ago
James Cammarata f23ccebbdc Merge branch 'issue_4620' of https://github.com/jimi-c/ansible into jimi-c-issue_4620 11 years ago
James Tanner 0f95a905d9 Fixes #5965 Ensure the inject for each item in a loop is un-altered 11 years ago
Iordan Iordanov a1854bb762 Add support for checking host against global known host files. 11 years ago
James Cammarata 3b2d409906 Fixing several bugs in assemble and updating tests
Bugfixes:
* the remote_src param was not being converted to a boolean correctly,
  resulting in it never being used by the module as the default behavior
  was remote_src=True (issue #5581)
* the remote_src param was not listed in the generic file params, leading
  to a failure when the above bug regarding remote_src was fixed
* the delimiter should always end with a newline to ensure that the file
  fragments do not run together on one line

Fixes #5581
11 years ago
jctanner 8a253bf576 Merge pull request #6151 from jctanner/vault_rewrite
Vault rewrite, pass 1
11 years ago
jctanner 93c746db9c Merge pull request #5651 from nikut/sshfix
allow ansible_ssh_private_key_file to be templated (thanks to benno)
11 years ago
James Tanner 9c9f15acb7 Fix decryption error 11 years ago
James Tanner 52a8efefba Vault rewrite, pass 1 11 years ago
Hagai ae9c0d87a9 Fix incorrect use of .join on list 11 years ago
Richard C Isaacson 8be8dbc9ed Formatting cleanup. 11 years ago
Richard C Isaacson aaf0a182e1 Merge remote-tracking branch 'jeromew/ansible_script_creates' into issues_4986 11 years ago
Veeti Paananen dd6f2e6bfa Show the offending file name with the include + with_items error 11 years ago
Michael DeHaan 9686695170 Assume empty files are unencrypted. 11 years ago
James Tanner 4af1d6098b Fixes #5939 Allow for delegate hosts that are not in inventory 11 years ago
James Cammarata fa1ab231c9 Fixing bug in which playbook vars were not merged properly
This occurred when a hash would be passed in via extra args and the
hash variable behavior was set to 'merge', which resulted in the
variable from extra args replacing the playbook variable.
11 years ago
Michael DeHaan bc65956798 Add tests that leverage most of our custom filters. A few more to add. 11 years ago
James Cammarata f5505425f9 Adding 'expanduser' filter to the core filters list
Example usage: {{ my_path | expanduser }} # my_path: "~/path/to/file"
11 years ago
James Cammarata ef2df8157a Fixup result dictionary when copy module calls file module 11 years ago
muffl0n b0f00cc097 already call expanduser in action_plugin 11 years ago
muffl0n 5f0e882d01 call expanduser for src and dest 11 years ago
root 0df166e7c0 Copy tests WIP, fix bug in assert module upgrades where the wrong value was being checked. 11 years ago
James Cammarata 54117ab28f Modified assert module to take tests as an array 11 years ago
James Tanner bee089d5e1 Remove entropy comment 11 years ago
James Tanner 86b9f84fb9 Change entropy message for vault 11 years ago
Richard Isaacson dc403eb21e Merge pull request #6058 from jctanner/vault_squashed_2
Ansible vault: a framework for encrypting any playbook or var file.
11 years ago
James Tanner 3a965a1392 Remove intermediate string on decrypt 11 years ago
James Tanner 286ca505bd Remove breakpoint 11 years ago
James Tanner 84467a8f12 Change retype to confirm 11 years ago
James Tanner aa46ab1d86 Fix function name 11 years ago
James Tanner 3fc87e011b Fix all other calls to yaml 11 years ago
James Cammarata b6222abee6 Fix unicode decode error in syslog for modules
Fixes #6056
11 years ago
James Tanner 427b8dc78d Ansible vault: a framework for encrypting any playbook or var file. 11 years ago
Richard C Isaacson 1ac19cb981 Copy action_plugin: encode content when dict.
When content is processed and found to be valid JSON it is decoded into a dict. To write it out to a file we need to encode it back into a string.

Addresses GH-5914.
11 years ago
James Cammarata f29ce80d12 Default port to 22 for paramiko when it is unset 11 years ago
James Cammarata 92cbfff904 Merge branch 'sshdefault' of https://github.com/craigtracey/ansible into craigtracey-sshdefault 11 years ago
jeromew 7a14cb61c4 Add creates= and removes= to the script: action 11 years ago
Niku Toivola 6cc9b16f06 allow templating of ansible_ssh_private_key_file also in the synchronize module 11 years ago
Niku Toivola 2faaff78ee removed comment 11 years ago
Niku Toivola 68a3e8163e allow ansible_ssh_private_key_file to be templated (thanks to benno) 11 years ago
Martin Thorsen Ranang 7e23ed345f Avoid breaking on unicode input when logging to syslog in modules
After commit 254f87e, non-ascii input broke logging to syslog.
11 years ago
James Cammarata 0cfaabf9cb Make sure unicode params don't break logging in modules 11 years ago
James Cammarata 788ac51185 Sanitize sudo success_key from stdout for raw/script modules
Fixes #5533
Closes #5605
Closes #5606
Closes #5607
11 years ago
Richard C Isaacson 80ddd1ca75 Config resoution order correction and documentation. 11 years ago
James Cammarata 4012f4bb95 Merge branch 'allow-equals-in-ini-vars' of https://github.com/worklez/ansible into worklez-allow-equals-in-ini-vars 11 years ago
James Cammarata faa645c834 Merge pull request #6001 from jimi-c/issue_4087_sanitize_output
Filter out messages that match the pattern username:password@host
11 years ago
Ilya Kuznetsov 0658847ea6 Allow equal sign in single-line ini variables 11 years ago
Michael DeHaan c91ceddfac Add the start of an integration test structure using Ansible playbooks, also added an assert action plugin to make writing those easier. 11 years ago
Chris Hoffman affed67ebd Small fix for ec2 validate_certs option 11 years ago
James Cammarata b8646991db Filter out messages that match the pattern username:password@host
This filtering is done in both the module invocation logging and in
the regular verbose() logging output.

Fixes #4087
11 years ago
James Cammarata 056d54ebd3 Adding 'validate_certs' option to EC2 modules
When disabled, the boto connection will be instantiated without validating
the SSL certificate from the target endpoint. This allows the modules to connect
to Eucalyptus instances running with self-signed certs without errors.

Fixes #3978
11 years ago
Brian Coca 31b5728618 directory detection should now work on BSDs, added AIX alternate path 11 years ago
James Cammarata 254f87e7dd Fix log handling of unicode output to syslog in modules 11 years ago
Richard Isaacson eb4a730933 Merge pull request #5969 from risaacson/pull_5136
Updates for the unarchive module and action_plugin.
11 years ago
Richard C Isaacson 598b9c6b7c Cleanup per notes.
Some small changes to per notes from @mpdehann.
11 years ago
Richard C Isaacson cb7c2b7524 Updates for the unarchive module and action_plugin.
There is a bit going on with the changes here. Most of the changes are cleanup of files so that they line up with the standard files.

PR #5136 was merged into the current devel and brought up to working order. A few bug fixes had to be done to get the code to test correctly. Thanks out to @pib!

Issue #5431 was not able to be confirmed as it behaved as expected with a sudo user.

Tests were added via a playbook with archive files to verify functionality.

All tests fire clean including custom playbooks across multiple linux and solaris systems.
11 years ago
Jacob Weber 35742fe008 Add regex_replace jinja2 filter 11 years ago
Richard C Isaacson e6c9705058 Merge remote-tracking branch 'pib/unarchive_remote' into pull_5136 11 years ago
James Cammarata a023cbce14 When using jsonify in modules, try several unicode encoding for dumps()
Fixes #4821
11 years ago
James Tanner 9ce46e5f41 Refactor the synchronize action plugin and add unit tests 11 years ago
James Cammarata 3f90020d62 Open LOG_LOCK file with FD_CLOEXEC to prevent file descriptor leakage
Fixes #5399
11 years ago
James Cammarata bbda98a3ee Merge branch 'issue_4812' into devel 11 years ago
James Cammarata bb79b16d59 Specify mode in the makedirs call for fireball/accelerate keys 11 years ago
James Cammarata 65cb79a5c1 Merge branch 'devel' of https://github.com/xyrix/ansible into xyrix-devel 11 years ago
Scott Anderson baf508a379 Change standard AWS access and secret key parameter names to aws_access_key and aws_secret_key. Fixes an authentication problem with the rds module and standardizes the naming convention on something more encompassing than ec2_*_key. 11 years ago
Richard C Isaacson 786e3d2fd2 Refining the fix made in #5885.
It turns out that some of the assumptions in #5885 were slightly off. The previous fix relied on a call to the module to creat a tmp_path. This is insufficent as there are few cases that we need to have the tmp directory before we make the module call. If we don't have a tmp_path before we do a recursive call or when we find a file that does not match the remote md5 hash we need to create a tmp directory. Also we are not more percise when we will need to clean up the remote tmp_path.
11 years ago
Michael DeHaan 1609dfbca4 Revert "Revert "Revert "Add the fork manager code (related to previous patch)."""
This reverts commit 60d3611b70.
11 years ago
Michael DeHaan 633d685bb7 Revert "Revert "Revert "This patch makes Ansible reuse fork allocation between seperate instantations of the runner API, therefore the overhead of recreating forks"""
This reverts commit 73ca1a173c.
11 years ago
Michael DeHaan ad8c275887 Revert "While the previous work on the foon class can't be quite recycled, it's still a nice abstraction."
This reverts commit caab52aee2.
11 years ago
Michael DeHaan caab52aee2 While the previous work on the foon class can't be quite recycled, it's still a nice abstraction. 11 years ago
Michael DeHaan 73ca1a173c Revert "Revert "This patch makes Ansible reuse fork allocation between seperate instantations of the runner API, therefore the overhead of recreating forks""
This reverts commit 6685b4989e.
11 years ago
Michael DeHaan 60d3611b70 Revert "Revert "Add the fork manager code (related to previous patch).""
This reverts commit c53538dc77.
11 years ago
Michael DeHaan 6685b4989e Revert "This patch makes Ansible reuse fork allocation between seperate instantations of the runner API, therefore the overhead of recreating forks"
This reverts commit 85d66b9a0c.
11 years ago
Michael DeHaan c53538dc77 Revert "Add the fork manager code (related to previous patch)."
This reverts commit adb1719fe8.
11 years ago
Michael DeHaan adb1719fe8 Add the fork manager code (related to previous patch). 11 years ago
Michael DeHaan 85d66b9a0c This patch makes Ansible reuse fork allocation between seperate instantations of the runner API, therefore the overhead of recreating forks
between tasks in a playbook is avoided.  The fork pool will be regenerated when a second play comes along and needs more hosts.
11 years ago
Richard Isaacson 2d88246c9d Merge pull request #5885 from risaacson/issue5739_4
Addresses #5739 and cleans up copy.py
11 years ago
James Tanner b3ab7e7885 Check mutually_exclusive parameters before applying defaults 11 years ago
Will Thames d5c309e20d Pick up default EC2 region from boto.config
This doesn't account for boto configs where e.g. RDS has one
default region and EC2 another - all will default to `ec2_region_name`.

However, this is just handy to allow an easy site wide default
region if existing configuration already relies on it.

Modules can be improved to mention this in the documentation and
turn off required=True where needed. But it works with `ec2`
and `ec2_vol` without change.
11 years ago
jctanner 0bc0315171 Merge pull request #5880 from willthames/ec2_modules_refactor
Create a common EC2 connection argument spec for EC2 modules
11 years ago
xyrix 20d97416e5 fixed thinkoes 11 years ago
xyrix 0af40374ed fixed file perms checking 11 years ago
xyrix 1de45bf687 made accelerate keys directory configurable, and permissions for the file and dir configurable, and gave them a safe default 11 years ago
James Cammarata a72dc2ec34 Use finalize method in jinja2 to convert None values to empty strings
Fixes #4812
11 years ago
Will Thames 7600c664fe Create a common EC2 connection argument spec for EC2 modules
Refactor the currently well-factored ec2 modules (i.e. those that already use ec2_connect) to
have a common argument spec. The idea is that new modules can use this spec without duplication
of code, and that new functionality can be added to the ec2 connection code (e.g. security
token argument)
11 years ago
jctanner 28933de84d Merge pull request #5771 from bcoca/play_hosts2
added new play_hosts var
11 years ago
James Cammarata 959a156195 Properly count newlines appearing at the end of templates after rendering
Fixes #4633
11 years ago
James Cammarata ca0ec800d8 Revising method for parsing ranges from --limit subsets
Also added a new test (test_subset_range) for future validation.

Fixes #4620
11 years ago
Richard C Isaacson ac0a5c8ad5 Dug into the remaining FIXME and replaced with comments to document the expected behavior. 11 years ago
Luca Berruti 75b7a1d9c7 Fix slow ssh
We break the read while loop after waiting "the end of the process" and
the pipes are empty, otherwise we do another select that waits all the
timeout.
11 years ago
jctanner a0f91f2aaa Merge pull request #5576 from xyrix/symlink-bug-fix
fixed bug causing symlinks to fail in the host_vars, group_vars etc dire...
11 years ago
jctanner 253fe7be50 Merge pull request #5662 from RSpiertz/update_playbook_error
PlayBook: better error message
11 years ago
Richard C Isaacson a3261500dd Addresses #5739 and cleans up copy.py
The copy action_plugin is not easy to read. Part of this commit is taking that file, restructuring it, and adding comments. No functionality changed in how it interacts with the world.

The fix for #5739 ends up being the assumption that there is a cleanup 'rm -rf' that happens at the end of the copy loop. This was not the fact before and we made a bunch of tmp directories that we hoped would end up being cleaned up. Now we just use the tmp directory that the runner provides and cleanup inline if it is a single file to be coppied or after the loop if it is a recursive copy.

As a part of this we did end up having to change runner to provide a flag so that we could short the inline tmp directory removal. This flag defaults to True so it will not change the behavior of other modules that are being called.
11 years ago
James Tanner 5fafc61008 Fixes 5870 Template delegate hostname earlier in the process 11 years ago
James Tanner d355d3c698 Fixes #5818 Default to all known connection information for the delegate host 11 years ago
Timur Batyrshin 658c15930e reword "except Error as e:" into "except Error, e:" to be compatible with Python 2.5 (#5852) 11 years ago
James Cammarata 2d0e9cd75d Revert "Fix for issue 5739. The copy module does not delete directories it will only unlinks symlinks."
This reverts commit b20dc4f578.
11 years ago
James Cammarata ae9843fccd Fix issue with handler notifications being sent out incorrectly
This is a partial revert of e8ad36c, which introduced the bug.

Fixes #5848
11 years ago
James Cammarata 9ff99acaff Merge branch 'issue5739_3' of https://github.com/risaacson/ansible into risaacson-issue5739_3 11 years ago
Brian Coca ff024b65b2 now with_items also accepts sets
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
11 years ago
Richard C Isaacson b20dc4f578 Fix for issue 5739. The copy module does not delete directories it will only unlinks symlinks. 11 years ago
James Cammarata 75e3b59bbd Adding no_log: capability for tasks
Fixes #4088
11 years ago
James Tanner e6aeb191d5 Revert "Merge branch 'slow_ssh' of git://github.com/lberruti/ansible into lberruti-slow_ssh"
This reverts commit fe091ec00d, reversing
changes made to aed2194b1d.
11 years ago
James Cammarata 9574f89471 Detect remote_user change in accelerate daemon and allow a restart
Fixes #5812
11 years ago
jctanner 6c25ea1b91 Merge pull request #5527 from sergevanginderachter/basedirdwim
path_dwim: fix when basedir not set
11 years ago
James Cammarata f955d9db6a Handle implicit localhost when using '-i host,' syntax
Fixes #5820
11 years ago
jctanner 360f06b41d Merge pull request #5806 from sivel/rax-mod-utils-improvements
Rax mod utils improvements
11 years ago
James Cammarata 5cc354696d Build variable dictionary on included plays without using dict()
Using dict(k=v) means the key was always named 'k', as the variable
is not interpreted there.

Fixes #5801
11 years ago
Michael DeHaan d07a3b5e9b AnsibleWorks -> Ansible 11 years ago
Heikki Hokkanen b6875b3b87 Fix .ssh/known_hosts path expansion.
In particular, do not rely on the $USER environment variable always existing.
tmux for example seems to clear it, causing lots of invalid messages:
"previous known host file not found"

This broke in commit 80fd22dc, but instead of reverting that commit, we now
fall back to expanding just ~ when $USER is not set.
11 years ago
Matt Martz ac666e63e0 Support providing a tenant_name also 11 years ago
Matt Martz aa709012ba Make sure to also include the region when using keyring_auth 11 years ago
Matt Martz 021b926235 Only specify to USE_KEYRING as the api_key/password when we actually got a keyring_username from ~/.pyrax.cfg 11 years ago
Matt Martz 1ac7dffd55 Support using ~/.pyrax.cfg and multi environments 11 years ago
Matt Martz 139e905e98 identity_type is set dynamically above 11 years ago
Matt Martz bc473c5be3 Support additional attributes that would allow the rax modules to work with other OpenStack clouds 11 years ago
Matt Martz d7597414b8 Support keyring for the api_key 11 years ago
James Tanner fe091ec00d Merge branch 'slow_ssh' of git://github.com/lberruti/ansible into lberruti-slow_ssh 11 years ago
Adam Heath aed2194b1d self.su_user is done earlier in the code path, and is auto-vivified from
su_user_var.  My last PR was only half merged, and when the bug fix for
the su/su_pass typo was merged, the removed line in this commit was
mistakenly reintroduced.
11 years ago
James Tanner 3ec043ec17 Fixes #5750 Fail on missing ~/.ssh and ignore accept_hostkey if stricthoskeychecking is off 11 years ago
James Cammarata 88e2595a90 Fixing bug relating to su without an su_pass 11 years ago
Adam Heath fac7c6d3fe Allow su_user to be templated, same as sudo_user. 11 years ago
James Cammarata 3fddd78ec5 Fixing traceback caused by incorrect argument passing to json.dumps
Fixes #5756
11 years ago
Brian Coca 59d5892fa3 added new play_hosts var
this variable has the 'current host list' to be executed over in the
play. Useful when using --limit to not iterate over hosts not included
in play in templates or with_items.

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
11 years ago
jctanner b2d594d24e Merge pull request #5724 from angstwad/su-tasks-fix
Fix bug where playbook tasks do not escalate privs with 'su'
11 years ago
jctanner 19e8742005 Merge pull request #5713 from angstwad/su-fix
Disallow su and sudo params in same play/task
11 years ago
Craig Tracey 8c6b3baf6f Make default ANSIBLE_REMOTE_PORT None
The ansible remote port should be None, not 22. Having a default value
of 22 means that '-o Port 22' will be appended to the ssh connection
all of the time. This is incorrect as when one would like to use
something like an ssh configuration file (-F) that sets the port to
something other than 22.

Part of this change requires that we check that, in get_config, the
value is not None before trying to cast it into an integer or float.
11 years ago
Paul Durivage e875089eba Fix bug where self.su was being set by the sudo param in play tasks 11 years ago
Paul Durivage 01d1bd61e7 Disallow su and sudo params in same play/task 11 years ago
James Cammarata ff8eb5f454 Merge pull request #5722 from jeromew/pipelining_default
Bug in constants.py, ANSIBLE_SSH_PIPELINING should be coerced to boolean
11 years ago
jeromew ef69d23715 Bug: chmod should be called only if the tmp dir was created in the first place 11 years ago
jeromew 3f23483022 Bug in constants.py, ANSIBLE_SSH_PIPELINING should be coerced to boolean 11 years ago
Thomas Omans 9343db69b4 Fixing whitespace 11 years ago
Thomas Omans ce0b5d16b3 Allow templates in ansible_sudo_pass inventory var
Template ansible_sudo_pass the same way we template ansible_ssh_pass.
11 years ago
Matt Martz 5ba6739603 Use realpath for plugin directories instead of abspath 11 years ago
James Tanner 61d283e2ad Fix merge conflicts from #5519 11 years ago
jctanner da136dbe7c Merge pull request #5694 from angstwad/add-su-support-revert
Add su support
11 years ago
Rob Smith 761fe8cc04 Fix an issue where git-pull fails with AttributeError
As part of 94f3b9bfab the code was changed to support dynamically adding localhost to the inventory. This change introduced an crash when run via ansible-pull

```
Starting ansible-pull at 2014-01-20 23:09:57
Traceback (most recent call last):
  File "/tmp/ansible/bin/ansible", line 157, in <module>
    (runner, results) = cli.run(options, args)
  File "/tmp/ansible/bin/ansible", line 82, in run
    hosts = inventory_manager.list_hosts(pattern)
  File "/tmp/ansible/lib/ansible/inventory/__init__.py", line 372, in list_hosts
    result = [ h.name for h in self.get_hosts(pattern) ]
  File "/tmp/ansible/lib/ansible/inventory/__init__.py", line 136, in get_hosts
    subset = self._get_hosts(self._subset)
  File "/tmp/ansible/lib/ansible/inventory/__init__.py", line 177, in _get_hosts
    that = self.__get_hosts(p)
  File "/tmp/ansible/lib/ansible/inventory/__init__.py", line 198, in __get_hosts
    hpat = self._hosts_in_unenumerated_pattern(name)
  File "/tmp/ansible/lib/ansible/inventory/__init__.py", line 275, in _hosts_in_unenumerated_pattern
    ungrouped.add_host(new_host)
AttributeError: 'NoneType' object has no attribute 'add_host'
```

The root cause is there is no group for the host to be added to. I fixed this case by creating the ungrouped group when it doesn't exist and then adding the host to the newly added group. This fixes the regression for me.
11 years ago
Rob Smith 953dc6b345 When not finding a host in ~/.ssh/known_hosts, the return value is 0 if the host just is not found. We then never check the system host file in /etc. This fixes the code to check /etc on any failure, not just a bad return code. 11 years ago
Paul Durivage f72f5a20df Revert "Revert "Merge pull request #5325 from angstwad/add-su-support""
This reverts commit c17d0e0357.

Conflicts:
	lib/ansible/runner/connection_plugins/paramiko_ssh.py
11 years ago
Paul Durivage 4c84ba74b0 Resolve su bug in paramiko libs 11 years ago
Jesse Keating 6013f0738e Store the list of hosts to run on in runner object
This reduces the number of times inventory.list_hosts is called, which
can be costly. When coming from a playbook that data is already known.
11 years ago
Jesse Keating e8ad36c8d4 Store hosts for a play as a play attribute
Operate on that play attribute to make things faster for larger
inventories. Instead of making a round trip through inventory.list_hosts
and working through some lengthy list comprehensions over and over
again, calculate the potenital hosts for a play once, then reduce from
it the unavailable hosts when necessary.

Also moves how the %fail is done. The host count is a play level count
of available hosts, which then is compared after each task to the
current number of available hosts for the play. This used to get a new
count every task which was also time expensive.
11 years ago
James Tanner 94f3b9bfab Fixes #3129 Do not require localhost to be in inventory 11 years ago
James Tanner c17d0e0357 Revert "Merge pull request #5325 from angstwad/add-su-support"
This reverts commit 6f4bfa2cff, reversing
changes made to c91ba3a7c7.
11 years ago
Paul Durivage 8cf071f697 Hostvars support for su 11 years ago
Paul Durivage dec9131735 Ensure playbook support for su params 11 years ago
Paul Durivage d21281ff43 Resolve rebase conflicts 11 years ago
Paul Durivage ab6ee1a282 Enable su support in paramkio; disable su support in fireball, local, accelerate, chroot, jail, funcd connection plugins 11 years ago
Paul Durivage 4088243deb Proposing fix for Issue #4324; adding support for su in connection plugins ssh, ssh_alt
Fixes for ssh_alt support, adding in references to in_data where appropriate
11 years ago
Michael Scherer 5c5c8fd7ce Make synchronize module work better with local transport, fix #5668 11 years ago
Rutger Spiertz dec6345fe6 PlayBook: better error message
When a PlayBook has missing arguments the error message now shows which ones are missing.
11 years ago
James Tanner 559e89036b Fixes #5631 Return a unique list of hosts when joining groups 11 years ago
James Cammarata 02ce5af6df Added ANSIBLE_SSH_PIPELINING option to enable/disable pipelining support
Pipelining will be disabled by default, since it requires users remove
the 'requiretty' option from the servers sudoers configuration.
11 years ago
James Cammarata 233aae5861 Reverting paramiko_ssh/alt changes from yesterday 11 years ago
Matt Martz d46037d64c Do not log the rax api_key argument in module invocation 11 years ago
James Cammarata 36e6709771 Don't use pipelining when ANSIBLE_KEEP_REMOTE_FILES is enabled 11 years ago
James Cammarata df13b19fe1 Moving {ssh,paramiko}_alt connection types to be the defaults
The previous implementations will be kept for now as _old
11 years ago
James Cammarata c27db84e41 Adding paramiko_alt - pipelining support for paramiko connections 11 years ago
jctanner 91c5c9da08 Merge pull request #5465 from deonbredenhann/false_mandatory_variable
Treat a False mandatory variable as defined.
11 years ago
jctanner 59d99c17b3 Merge pull request #5337 from bob-smith/bugfixFQDNParsing
Fix inventory parsing so that FQDN can be parsed without throwing ssh port error
11 years ago
jctanner a6bc63512e Merge pull request #5308 from zecrazytux/fix/hash_merge_dynamic_inventory
Let merge hash_bahaviour work with dynamic inventory
11 years ago
jctanner 671b0454c6 Merge pull request #4987 from jpmens/lookup-csvfile
New lookup plugin csvreader
11 years ago
willthames 31f5ecea60 Allow float as an argument type in AnsibleModule 11 years ago
Rob Smith c15cffabdd This fixes bugs added as a part of 8665b0638a
1. if accept_hostkey is false, no matter if the host key is known or not, it will fail.

2. We don't check for the host key in /etc/ssh/ssh_known_hosts

This fixes both of those issues.
11 years ago
James Tanner 3719f3f496 Do not fetch or add keys for http based git urls 11 years ago
James Tanner eeee1e1c5a Set accept_hostkey to False by default in the git module and fail
early if the key is unknown
11 years ago
James Tanner 8665b0638a Add an "accept_hostkey" parameter to the git module to help automatically
accept hostkeys for git repos and prevent task hangs when the key is unknown
11 years ago
James Tanner 09e0d052ca Ensure sys.stdout has an istty method 11 years ago
James Tanner d7c8cf6ca7 Fixes #4958 Truncate printed stdout if it contains non-printable characters 11 years ago
jay e1f5b801cf fixed bug causing symlinks to fail in the host_vars, group_vars etc directories 11 years ago
James Tanner 78ec7c736f Fixes #3973 Second Revision of live ansible-pull output 11 years ago
Luca Berruti ae543eecab Simplified p.poll handling 11 years ago
James Tanner c408bcea31 Update sshpass hostkey error message 11 years ago
James Tanner 0b64408f5a Fixes #5531 Give the user a better error message when sshpass does not know the remote hostkey 11 years ago
Matt Martz f99500d65c Expose the playbook to callback plugins 11 years ago
jeromew 69febcefde remove useless create/delete remote tmp dir roundtrip in copy module 11 years ago
Serge van Ginderachter 836fb4143c path_dwim: fix when basedir not set 11 years ago
jeromew c9b01febb3 Make sure 'tmp' is in the remote tmp dirname to ensure correct cleanup 11 years ago
jctanner 21b4212ff5 Merge pull request #5517 from lichesser/fix_set_depreciation_warning
Fixes #5513. set is built-in since 2.4 and deprecated since 2.6
11 years ago
jctanner 83dec044ab Merge pull request #5504 from smoothify/synchronize-sudo
Synchronize Module: Improved sudo override behaviour.
11 years ago
jctanner 9a69b1b0ec Merge pull request #5311 from willthames/ec2_refactor
ec2 modules: Move more responsibility to common EC2 module
11 years ago
James Tanner d6b78e9dd6 Fixes #5238 Improve error messaging about unquoted variable references in playbooks 11 years ago
James Tanner ab51bd23a2 Fixes #5196 return a unique list of hostnames for a single host pattern 11 years ago
smoothify 93a55e8dff Don't override sudo if transport is set to local.
https://github.com/ansible/ansible/pull/5251
11 years ago
Michael DeHaan c039e276a2 Fact gathering on a second play against the same hosts should not be implicitly off since this is an undocumented beheavior and potentially
rather unwanted when a play could change a fact.

gather_facts: True/False can still be explicitly used per play.

Reverts 564a212b3c
11 years ago
Michael DeHaan 87258f6d42 Resolve merge commit 11 years ago
Michael DeHaan 1c632af2c9 Merge pull request #5468 from jeromew/ansible_ssh_alt
fix issue #5372 on ssh_alt: accept -K option for a user with NOPASSWD
11 years ago
Michael DeHaan a3d90e8a87 Merge pull request #5498 from j2sol/exit_setup_early
Return early from setup step when possible
11 years ago
Michael DeHaan 227e8e31c9 Merge branch 'use_comps' of git://github.com/j2sol/ansible into devel 11 years ago
Michael DeHaan 10350d1639 Update various copyrights. Not complete, but sufficient. 11 years ago
Jesse Keating 23720ff19d Use list comprehensions for efficiency
For loops can be inefficient, particularly when doing a dot command with
them. https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Loops and
https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Avoiding_dots...

This patch makes use of list comprehensions to be as efficient as
possible while still retaining order. Efficiency was lost a bit when
switching away from sets() but this gains some of it back.
11 years ago
Jesse Keating 35328ed503 Return early from setup step when possible
The _list_available_hosts call can be lengthy, and in the case where
gather_facts is disabled the call is pointless. So re-arrange the logic
to return early from _do_setup_step when gather_facts is false.
11 years ago
Michael DeHaan c41a23a35a Complete removal/refactoring of conditional deprecations. 11 years ago
Michael DeHaan 8e5b7d3095 Remove code underlying when_* and only_if, which are deprecated features slated for removal in the 1.5 release. 11 years ago
Michael DeHaan 28b9fd4e30 We have had only_if, when_foo, etc, deprecated for a while and said they would be removed in 1.5. Now they are, with friendly error messages still.
Users of these features should use "when:" as documented at docs.ansible.com.

Similarly, include + with_items has been removed.  The solution is to loop
inside the task files, see with_nested / with_together, etc.
11 years ago
James Tanner 21fdb2bbc7 Fixes #5200 Handle template contents with unicode strings better 11 years ago
James Tanner fc473b3246 Fixes #5146 Handle missing stdin when running under celery with rabbitmq or redis 11 years ago
Michael DeHaan de2ffc1276 Don't need to document these guys. 11 years ago
James Tanner cb2214d6f8 Fixes #4935 Synchronize module: set destination to an fqdn if connection is not local, and abide by ansible_remote_user 11 years ago
jctanner 99560e3902 Merge pull request #5047 from sergevanginderachter/synch_template_ansiblesshhost
synchronize: allow ansible_ssh_host to be templated
11 years ago
jeromew b2cd4a62de fix issue #5372 on ssh_alt: accept -K option even for a user with NOPASSWD 11 years ago
Deon Bredenhann c85aac8b17 Treat a False mandatory variable as defined. 11 years ago
Deon Bredenhann 4f1f13b100 Remove trailing space 11 years ago
Levi Gross dc6a26123b
Fixed syntax error and removed unused imports 11 years ago
Michael DeHaan 643690ffec Remove depedency of lookup plugin on setting in ansible.cfg 11 years ago
Michael DeHaan 5b3c796641 Update constants.py
Lookup plugins for optional web services do not warrant advertising in ansible.cfg.
11 years ago
Stephen Fromm 833e1f6e2a Make sure action plugin copy cleans up tmp dir
The copy action plugin creates its own tmp dir for each file that it
copies to the target machine.  However, it does not clean up the
original tmp path it was given when run() is called.  This cleans up the
tmp path before it begins looping on source files.
11 years ago
dparalen 6bf5d664dc allow per-host sudo operation 11 years ago
James Tanner 993e0f057e Allow for no role dependencies in role metadata 11 years ago
James Tanner 1ef9930b80 Addresses #5341 Expand home directories when searching for roles in ansible-playbook 11 years ago
James Tanner 5d022182fe Fixes #5341 Use constants.py to set the roles directory 11 years ago
John Barker 4bf9f714d0 Fix inventory parsing so that FQDN can be parsed without throwing ssh
port parsing errors
Fixes problesm introduced by 948d019fef
Adds testcases to defend
11 years ago
jctanner ea8cd62b19 Merge pull request #5259 from mvo5/bugfix/improve-error-on-invalid-vars-file
improve error on invalid vars file (if its a list instead of a dict)
11 years ago
jeromew e4a3f49fa2 ssh_alt - only trigger 'fatal' when returncode == 255 (interpreted as 'could no connect') 11 years ago
willthames 12005a1cd0 Move more responsibility to common EC2 module
Moved `AWS_REGIONS` into `ec2` module
Created `ec2_connect` method in `ec2` module
Updated modules able to use `ec2_connect` and `AWS_REGIONS`
11 years ago
jctanner cd3144af5d Merge pull request #5178 from cavassin/devel
Prevents UnicodeEncodeError
11 years ago
James Tanner f3a4705a9c Revert "Merge pull request #4874 from leth/editable_install"
This reverts commit 15b89b45e1, reversing
changes made to 3d836a1ab7.
11 years ago
jctanner 15b89b45e1 Merge pull request #4874 from leth/editable_install
Fix setup.py to work with 'pip install -e .'
11 years ago
Sébastien Bocahu c8d5846ab9 Let merge hash_bahaviour work with dynamic inventory 11 years ago
jctanner 3d836a1ab7 Merge pull request #5247 from jeromew/ansible_ssh_alt
ssh_alt.py / decrease # of ssh roundtrips
11 years ago
jeromew 5c965a75f0 ssh_alt.py / decrease # of ssh roundtrips 11 years ago
jctanner 1679d83637 Merge pull request #5131 from janeznemanic/devel
Fix for issue #4730 - stacktrace when deferenencing a non-existent group
11 years ago
jctanner 301a1189dd Merge pull request #5122 from willthames/openlog_str
Make first argument to syslog.openlog be a string
11 years ago
Ferenc Grecu 56642f9b04 Remove unused parameter from _get_config 11 years ago
Michael Vogt bef5ee2c3b improve error on invalid vars file (if its a list instead of a dict) 11 years ago
Jesse Keating 8cef210aea Make sure ssh pipes are empty before moving on
Resolves issue #5082

Code as it was would hit a scenario where one of the FDs was not ready for
reading the first time through -- but p.poll() would show the process as
complete. This would cause ansible to continue on, while leaving some content
left in a pipe.

The other scenario -- the one that causes the unclosed quote, is if we go
through select.select() and we do get stdout in the ready for reading -- we
read from it (9000 bytes), but that's not all that is there. Again we'd get to
the p.poll() check and it would be indeed not none, but we would have left some
of stdout on the FD and thus the json blob would be malformed.

Tested with and without full ssh debugging.
Tested with and without ControlPersist
Tested with and without ControlPersist sockets already created
11 years ago
Michael DeHaan 929f8a5c93 Had to revert commits due to async. 11 years ago
Michael DeHaan 74e4ccb59b Revert "ssh_alt.py / decrease # of ssh roundtrips"
This reverts commit 7f8863f96d.
11 years ago
jeromew 7f8863f96d ssh_alt.py / decrease # of ssh roundtrips 11 years ago