Michael DeHaan
4cbfe3be57
Merge pull request #3773 from cchurch/devel
...
Update callbacks used for async tasks
2013-08-06 13:32:53 -07:00
Michael DeHaan
99775176ff
Merge pull request #3623 from ralph-tice/fix_3567_2
...
changed role path template to read all vars instead of just extra_vars
2013-08-06 13:26:59 -07:00
Chris Church
6ba4331161
Correctly check for failed status from an async task. Use runner_on_async_failed callback (instead of runner_on_failed) when an async task times out. Add runner_on_async_ok callback when a task is started in fire and forget mode.
2013-08-06 12:42:44 -04:00
Michael DeHaan
56a00e0667
Remove dead code.
2013-08-05 16:13:50 -04:00
Michael DeHaan
dec43f7a2b
PEP8 indent fix.
2013-08-03 14:54:37 -04:00
Stoned Elipot
841093921b
Add extra module path early during playbook parsing.
...
This should fix issue #3668
Also prevent an extra module path to be added multiple times.
2013-07-28 18:47:26 +02:00
Ralph Tice
2383a8205c
changed role path template to read all vars instead of just extra_vars
2013-07-22 09:59:26 -05:00
Michael DeHaan
88720516a1
Merge branch 'changed_when' of git://github.com/stoned/ansible into changed_when
2013-07-21 10:14:03 -04:00
Michael DeHaan
f592340f7f
Merge branch 'playbook-skip-tags' of git://github.com/dekked/ansible into skip_tags
2013-07-21 09:43:23 -04:00
Michael DeHaan
bf70dfc1a0
When a role/include has a conditional, add that conditional ahead of any on the task, not behind, so it can short circuit.
2013-07-20 18:34:24 -04:00
Stoned Elipot
e7a733a6be
Quote pathnames of roles' tasks and handlers files so that _load_tasks() can tokenize them properly
...
With the help of AlejandroTrev's eagle eyes. Thanks !
2013-07-20 23:25:46 +02:00
Michael DeHaan
0f4229f6c4
Merge pull request #3462 from stoned/filtererror
...
Introduce exception AnsibleFilterError and use it in Jinja filters. Ign...
2013-07-20 09:12:26 -07:00
Michael DeHaan
c10c2cae4e
Merge branch 'ansible_sudo_at_role_level' of git://github.com/jeromew/ansible into sudo_role
2013-07-20 11:05:38 -04:00
Michael DeHaan
7d2585caf7
Merge pull request #3577 from Tinche/extra-vars-in-playbook-includes
...
Enabled the use of extra vars in playbook file paths when including play...
2013-07-20 07:37:35 -07:00
Rodney Quillo
a4e829c874
Allow roles to be interpolated from --extra-vars
2013-07-19 18:28:21 +08:00
jeromew
de0bc96b70
Implement sudo/sudo_user at the include and role levels
2013-07-18 22:32:56 +00:00
Tin Tvrtkovic
4a732c1e9f
Enabled the use of extra vars in playbook file paths when including playbooks from other playbooks.
2013-07-18 22:45:18 +02:00
Alan Descoins
04349ec362
Added --skip-tags option to ansible-playbook.
2013-07-16 19:43:58 -03:00
Stoned Elipot
eb45f07ae3
Introduce 'changed_when' keyword to override a task's changed status with the evaluation of a Jinja2 expression
2013-07-14 21:07:45 +02:00
Stoned Elipot
2d88c70cd5
Introduce exception AnsibleFilterError and use it in Jinja filters. Ignore this exception when trying to find the name of a task for display (callback) purpose.
2013-07-07 19:18:32 +02:00
Ninety Thirty
7b1e87b62d
Added flexible filename handling for main files
...
tasks, handlers, and vars main files can now be any of main, main.yml, or main.yaml
2013-06-20 22:03:17 -06:00
Michael DeHaan
010440dc47
Merge pull request #3114 from laggyluke/roles_combine_vars
...
Added basic support for hash_behaviour=merge in roles
2013-06-19 19:27:27 -07:00
Michael DeHaan
d2721526de
Small tweak, don't merge conditionals, just evaluate each in turn.
2013-06-19 21:18:05 -04:00
George Miroshnykov
c642ba77ae
Added basic support for hash_behaviour=merge in roles
...
Dict vars passed to roles are now properly merged
instead of simply overriding dict vars that are
coming from vars_files.
2013-06-19 09:14:20 +03:00
Michael DeHaan
132c89e681
Merge branch 'callbackinit' of git://github.com/sergevanginderachter/ansible into devel
2013-06-18 20:52:43 -04:00
David Golden
d65f45f0b2
Expand sudo_user after variable merging
...
Previous commit c3659741
expanded sudo_user during task construction,
but this is too early as it does not pick up variables set during
the play.
This commit moves sudo_user expansion to the runner after variables
have been merged.
2013-06-14 09:59:31 -04:00
Serge van Ginderachter
2a7f9df109
add support for callback_plugins/ relative to playbook
2013-06-12 23:54:00 +02:00
Chris Church
3f17a39238
Set current play/task to None for callback context when finished running the current play/task.
2013-06-09 12:17:57 -04:00
Kent Frazier
4c6583bd00
Fix bug with include-level vars and sudo_user.
...
If a variable was provided for an include, in either of these ways:
---
- hosts: all
tasks:
- include: included.yml param=www-data
- include: included.yml
vars:
param: www-data
and then that param was used as the value of sudo_user in the included
tasks:
---
- name: do something as a parameterized sudo_user
command: whoami
sudo: yes
sudo_user: $param
you would receive a "failed to parse: usage: sudo" error back and the
command would not execute.
This seemed to be due to a missing call to template.template somewhere,
because the final value being passed through ssh was still `$param`.
After some digging, the issue seems to instead have been a problem with
providing the wrong context to the template for expansion. Inside the
`Task` logic, it was passing `play.vars` as the context, where
`module_vars` seemed more appropriate. After replacing it, my test case
above ran without issue. There was a comment above suggesting that the
template call might be unnecessary, but removing it made the original
error return, since it is not getting escaped later down the line. I
removed the comment since it was inaccurate.
I tried to actually incorporate my test case above into the test suite
as a regression test, but was unable to figure out how to structure it.
The existing test infrastructure seemed to only be testing for correct
number of counts in things (ok vs. changed, etc.), without regard for
whether the content generated by the command is correct. If there is an
example of a test similar to this one (where I would want to check the
JSON generated to make sure sudo_user had been converted), please let me
know and I will be happy to submit an additional patch.
2013-05-23 00:05:11 -05:00
Tim Habermaas
4d24faeeb1
Fix grammatical error in error message
2013-05-13 13:22:57 +02:00
Michael DeHaan
7117ca5395
Allow modules in a "./library" directory to be referenced by their shortforms "modulename:" instead of just "action: modulename"
2013-04-28 21:05:19 -04:00
Michael DeHaan
a81089231e
Register skipped tasks so we can at least check their changed/not-changed status.
2013-04-28 10:13:58 -04:00
Stoned Elipot
75b51f79b4
Add module path library/ if it exists in role directory
2013-04-27 18:43:56 +02:00
Michael DeHaan
75cf5c985b
Allow playbook tags to be comma seperated strings as well as lists
2013-04-27 12:29:32 -04:00
Matt Coddington
c83c534a7d
Search for roles in the roles subdir first. Throw an error when no role .yml files are found.
2013-04-25 22:40:04 -04:00
Michael DeHaan
5af271911b
Fix duplicate handler notification issue in 1.2 devel
2013-04-25 21:24:15 -04:00
Michael DeHaan
21fe750cef
Flush handlers before pre and post task sections change, but not between task and roles, as this seems
...
to be confusing to people (and not usually neccessary)
2013-04-24 22:28:06 -04:00
Michael DeHaan
6fdfbb1a34
Improve variable smushing so it only has to be done in one place. This is related to shlex.split being called
...
on untemplated variables in some rare cases.
2013-04-24 22:00:40 -04:00
Michael DeHaan
6c778acd91
Smush the braces in various places (hey, that rhymes) to avoid undo key=value splitting surprises
...
in new template system.
2013-04-22 22:05:06 -04:00
Michael DeHaan
3e0c33c1fa
Empty plays should still gather facts
2013-04-21 17:35:09 -04:00
Michael DeHaan
b08181e9b4
Merge pull request #2731 from stoned/flush_handlers-cleanup
...
handlers must be run once
2013-04-21 14:14:04 -07:00
Michael DeHaan
08324cb5d7
Allow play tagging in context of new meta-tasks.
2013-04-21 17:12:12 -04:00
Stoned Elipot
747c7f0dff
handlers must be run once
...
so remove all occurences of each host from the handlers notified by
lists
2013-04-21 17:23:13 +02:00
Michael DeHaan
32fb6c807c
Allow handlers to run in between pre_tasks, roles, tasks, and post_tasks.
2013-04-20 18:03:03 -04:00
Michael DeHaan
37789a852a
Rename set_up and tear_down to pre_tasks and post_tasks
2013-04-20 16:19:01 -04:00
Michael DeHaan
d7623d1f91
Added a 'set_up' and 'tear_down' which are like tasks, but execute before and after roles.
2013-04-20 16:07:06 -04:00
Michael DeHaan
53ac0bbec2
Instantiate callback plugins only once so we can set play/task objects on them and they'll stick.
2013-04-20 09:09:35 -04:00
Michael DeHaan
d8bf87b008
(A) include errors in inventory scripts should they occur.
...
(B) allow registration with ignore_errors: True
2013-04-17 22:27:00 -04:00
Michael DeHaan
7c6341718e
Merge branch 'combine_vars' of git://github.com/laggyluke/ansible into exp
...
Conflicts:
lib/ansible/inventory/vars_plugins/group_vars.py
lib/ansible/runner/__init__.py
lib/ansible/utils/__init__.py
test/TestPlayBook.py
2013-04-16 20:06:06 -04:00
Michael DeHaan
0944e7d56a
Make less template calls on playbook objects.
2013-04-12 21:48:01 -04:00
Michael DeHaan
44a9352338
Also template handlers only at the end.
2013-04-12 20:32:35 -04:00
Michael DeHaan
e7f5186dec
Merge pull request #2623 from willthames/when_set_bug
...
Prevent premature variable substitution in tasks
2013-04-12 17:19:25 -07:00
Michael DeHaan
3ab0ed5fd4
Allow 'when' and 'with_items' to be applied to roles.
2013-04-12 19:02:56 -04:00
willthames
377bc31311
Prevent premature substitution of variables into tasks
...
As documented in #2623 , early variable substitution causes when_
tests to fail and possibly other side effects.
I can see the reason for this early substitution, likely introduced
in 1dfe60a6
, to allow many playbook parameters to be templated.
This is a valid goal, but the recursive nature of the utils.template
function means that it goes too far.
At this point removing tasks from the list of parameters to be
substituted seems sufficient to make my tests pass. It may be the
case that other parameters should be excluded, but I suspect not.
Adding a test case. I would prefer to analyse not just the aggregate
statistics but also whether the results are as expected - I can't
see an easy way to do that with the available callbacks at present.
2013-04-12 09:17:03 +10:00
Michael DeHaan
7931597a6a
Fix template call.
2013-04-11 12:15:13 -04:00
Michael DeHaan
b09ef21ec9
Add code to flag legacy templating like $foo.{bar} as deprecated in favor of Jinja2 {{ foo.bar }} so we
...
can remove the legacy system at a later date.
2013-04-10 17:52:35 -04:00
Michael DeHaan
29209c4913
Style fixes so "make pep8" is clean.
2013-04-10 16:37:49 -04:00
Michael DeHaan
c5d9823467
Fix some items related to playbook includes and indentation.
2013-04-10 15:04:41 -04:00
Michael DeHaan
290780d13f
Playbook + with_items was an undocumented feature that was causing problems because it would
...
evaluate and replace '$item' with ''. Really it doesn't make sense to include multiple playbooks
via a loop variable, as you can do this with task + with_items already (and it's a simpler code
path). Given this is undocumented, this removes that feature, and we'll consider next how to
also add 'with_items' support directly to roles.
2013-04-09 20:13:55 -04:00
Michael DeHaan
c64f19dc5f
Don't set the item variable as eager template replacement will over-replace the variable as an empty string.
2013-04-09 19:57:53 -04:00
willthames
9d87733f98
Test case and fix for shlex.split unicode bug
...
When operating on a unicode string in python 2.6, shlex.split returns
a result that does not work with the file constructor.
To reproduce this requires a task include that is templated (this is
because the templated string is a unicode result, whereas a non-
templated string is a non-unicode string)
[will@centos6.3] $ python
Python 2.6.6 (r266:84292, Sep 11 2012, 08:34:23)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import shlex
>>> shlex.split(u'abc')
['a\x00\x00\x00b\x00\x00\x00c\x00\x00\x00']
[will@fedora17] $ python
Python 2.7.3 (default, Jul 24 2012, 10:05:38)
[GCC 4.7.0 20120507 (Red Hat 4.7.0-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import shlex
>>> shlex.split(u'abc')
['abc']
The proposed fix (coercing the include parameters to string before the
shlex.split) may not be ideal but it does fix the bug for my test case.
2013-04-08 14:47:43 +10:00
Michael DeHaan
61f2668b0a
Don't include the '.yml' in the path to the retry files.
2013-04-08 12:38:05 -04:00
Michael DeHaan
0d530f3bf0
Change the retry logic to write a limit file, able to source limit from files by indicating with @filename
2013-04-08 12:36:01 -04:00
Michael DeHaan
c695aa2d6a
When playbooks fail, attempt to create an inventory file in the inventory directory that allows rerunning
...
of the playbook against only the hosts that failed.
2013-04-07 23:37:10 -04:00
Stoned Elipot
1ed54b9b3a
when: condition support for tasks include
2013-04-07 00:43:39 +02:00
Michael DeHaan
fffb1a0a9d
Loose tasks not in roles get executed after roles.
2013-04-06 18:36:25 -04:00
Michael DeHaan
f044fc344b
When using roles, or other includes, the path to DWIM inside is the path of the task include
...
file.
2013-04-06 18:32:36 -04:00
Michael DeHaan
5c4ed72571
Demo of parameterized roles!
2013-04-06 12:51:17 -04:00
Michael DeHaan
f308194b9a
Added examples of how roles work!
2013-04-06 12:35:35 -04:00
Michael DeHaan
892484812e
Much requested feature -- allows relative imports of content within roles or relative to any task or handler include (../templates for template ../files for copy)
2013-04-06 12:13:04 -04:00
Michael DeHaan
95f30f0def
Complete streamlining of vars handling in playbooks and how those are templated to avoid
...
repeat template calls at playbook intialization time.
2013-04-06 10:45:09 -04:00
Michael DeHaan
1dfe60a6ea
Allow any parameter in a play to be set by --extra-vars through cleaner use of data structure
...
templating.
2013-04-06 10:09:16 -04:00
George Miroshnykov
6826aa7360
Tweaked merge_hash to also affect Runner behavior
2013-04-06 13:06:38 +03:00
Michael DeHaan
f585c4cde7
Upgraded variable support met with upgraded conditional support, see examples/playbooks/upgraded_vars.yml
...
for details!
2013-04-05 19:10:32 -04:00
Junegunn Choi
b874027b36
compare the number of available hosts before and after running each task
2013-03-29 13:13:22 +09:00
Junegunn Choi
20a48c6bdf
terminate immediately on a failure
2013-03-28 15:17:01 +09:00
Michael DeHaan
42b0e51223
Upgrade callbacks further, now '.play', '.task', and so on are also available!
2013-03-25 22:56:32 -04:00
Michael DeHaan
0d11f53eff
Let the callbacks see the playbook and (current) runner objects.
2013-03-25 22:47:06 -04:00
Michael DeHaan
783a12cc0e
Resolve merge commit.
2013-03-25 22:32:01 -04:00
David Hughes
c365974117
Added variable expansion to task sudo_user parameter
2013-03-15 11:31:27 -07:00
milan
80dbab3cf0
check type of task explicitly
2013-03-14 13:06:55 +01:00
Seth Vidal
7687c2caf8
add --step option to ansible-playbooks to let people step through a playbook
...
one by one - asking for confirmation along the way.
also allows to 'continue' after a certain point
2013-03-11 00:39:05 -04:00
Daniel Hokka Zakrisson
297259725a
Allow (local_)action: to be a dict
...
Use the key module: to set which module to invoke.
2013-02-28 14:12:36 +01:00
Daniel Hokka Zakrisson
c04d5ba739
Allow specifying args directly to actions using module: syntax
...
Makes things like
- name: do complex things with complex module
complex:
setting_a: true
setting_b:
- foo
- bar
possible.
Fixes #2228 .
2013-02-28 13:54:04 +01:00
Daniel Hokka Zakrisson
7e0ee6809c
Don't template delegate_to too early, not all vars are available
...
Fixes using delegate_to: $item within a playbook include.
2013-02-25 22:25:13 +01:00
Michael DeHaan
9cf66f4376
Fixes from 'make pep8'. Partial, more to come.
2013-02-17 19:40:38 -05:00
Michael DeHaan
1ecf4a6943
Working on complex argument support.
2013-02-17 15:01:49 -05:00
Michael DeHaan
c8878998d1
update some of many copyright dates but we can just do this when editing each file, not super high priority
2013-02-16 15:32:01 -05:00
Daniel Hokka Zakrisson
57e51f7fdf
Clean up some extra_vars redundancy
2013-02-11 23:25:50 +01:00
Michael DeHaan
f7497e75e5
Able to use "environment: " on any task to pass proxy details and other useful settings. Can be a variable
...
or a dictionary.
2013-02-10 13:05:58 -05:00
Michael DeHaan
a9162a86f2
Very basic --diff option for showing what happens when templates change.
...
Probably output is not useful if not used with --limit
Works well with --check mode
2013-02-07 22:52:25 -05:00
Daniel Hokka Zakrisson
98f0a9210e
Raise an error when multiple when_* statements are provided
...
Fixes #1994 .
2013-02-07 08:11:30 +01:00
Daniel Hokka Zakrisson
d5e63332fe
Raise an error if an action doesn't have a string type
...
Happens with e.g. "command: true" that YAML helpfully converts to a
bool.
2013-02-06 16:41:34 +01:00
Michael DeHaan
fed82c2188
This implements a basic --check mode which for now is only implemented on template & copy operations. More detail will be shared with the list
...
shortly.
2013-02-03 20:34:13 -05:00
Daniel Hokka Zakrisson
a025cfcb33
Add on_import_for_host callback from non-list case
2013-02-03 23:37:29 +01:00
Daniel Hokka Zakrisson
a79373f6b2
Make template_ds the only templater
...
Instead of having to remember when to use which one, rename template_ds
to template and move the last bit of code from template to varReplace
(which gets used for all string replacements, in the end).
This means that you can template any data type without worrying about
whether it's a string or not, and the right thing will happen.
2013-02-03 14:01:54 +01:00
Daniel Hokka Zakrisson
f7e286cf34
Fix error format for invalid vars_files
2013-01-31 20:25:28 +01:00
Seth Vidal
83b9654c63
stop updating SETUP_CACHE in run_play as per comment on pr 1945
2013-01-31 11:24:22 -05:00
Seth Vidal
f649777072
- make extra-vars override all other vars and facts in playbooks
2013-01-30 11:56:04 -05:00
Michael DeHaan
0030a2bd09
Allow handler files to be empty lists.
2013-01-27 10:40:29 -05:00