James Cammarata
20957a1b85
Remove duplicate compiling of task when: statements
...
Fixes #8538
2014-08-11 13:23:07 -05:00
Josh Drake
aa419044c4
WIP on the re-implementation of fact caching and various backends.
2014-08-11 12:23:05 -04:00
James Cammarata
a650421e39
Catch task parameter splitting errors nicely
...
Fixes #8481
2014-08-11 10:16:58 -05:00
hoettle
4243ce61b3
Correct placement of right parenthesis.
...
(serial_pct)/100.0 is a typo - the parentheses should be around the entire percentage calculation, which makes much more sense when multiplying by the number of hosts (luckily BODMAS prevailed).
2014-08-08 13:46:57 -04:00
Howard Oettle
cbf0bd6baf
playbook: permit the serial attribute to be a pecentage string as well as well as a straight integer
2014-08-08 13:46:57 -04:00
Michael DeHaan
8c4161d4a1
Merge branch 'retf_py' of git://github.com/berendt/ansible into devel
...
Conflicts:
lib/ansible/inventory/vars_plugins/group_vars.py
plugins/callbacks/mail.py
2014-08-08 12:17:37 -04:00
Michael DeHaan
48a0236ec6
Merge pull request #6619 from sergevanginderachter/ansible_version_var
...
Introduce an ansible_version dict as runner variable
2014-08-08 11:20:17 -04:00
James Cammarata
e19ed3424d
Make sure default vars are used in template calls for tasks
...
Fixes #8499
2014-08-07 13:28:09 -05:00
James Cammarata
80df2135e9
Fix parsing of tasks with variable module names
...
Also adding an integration test for same.
2014-07-30 14:18:06 -05:00
James Cammarata
e6fa50a306
Move splitter to module_utils so modules can use it and fix command arg splitting
...
Fixes #8338
2014-07-29 14:55:16 -05:00
James Cammarata
6e814566de
Unquote params passed to an include statement
...
Fixes #8315
2014-07-28 16:35:52 -05:00
James Cammarata
6eac47e519
Use split_args instead of shlex.split for included params
...
Fixes #8296
2014-07-26 00:30:42 -05:00
James Cammarata
b21875d5a9
Make sure 'item' variable is set when using first_available_file
...
Fixes #8220
2014-07-24 00:05:26 -05:00
Michael DeHaan
0fad9575e9
Refine error message about invalid ops since people forget to indent tasks fairly often.
2014-07-17 10:13:10 -04:00
James Cammarata
e74853300a
Merge branch 'task-host-loop-bypass' of https://github.com/sivel/ansible into sivel-task-host-loop-bypass
2014-07-14 14:21:25 -05:00
James Cammarata
fe892fccb1
Merge remote-tracking branch 'svg/varsplugins_refactor' into svg_and_inventory_refactor
2014-07-07 14:16:37 -05:00
James Cammarata
ff04b2b532
Allow empty yaml vars files
...
Fixes #7843
2014-07-04 23:10:32 -05:00
Chris Church
4e98e3785a
Reset play attribute on callback plugins when a play fails.
2014-07-01 17:02:10 -04:00
James Cammarata
6d9cc64e0f
Add role_names to valid keys entry for plays
...
Prevents a "not a legal parameter" error for play ds structures that
may be passed into the Play() constructor, which really is mainly a
concern during tests.
2014-06-16 10:00:43 -05:00
James Cammarata
82a784931e
Fix error passing play vars to an included playbook with empty vars
...
Fixes #7658
2014-06-04 13:22:50 -05:00
James Cammarata
74f20ebf79
Removing cruft leftover from the deprecation of include+with_items
...
Also cleaning up integration tests that had checks for the empty item
attribute in certain results.
Fixes #7535
2014-06-03 13:33:26 -05:00
James Cammarata
cfd8c685d1
Correct issue of handlers running on all hosts incorrectly
...
Also adds an integration test to catch this bug in the future.
Fixes #7559
2014-05-27 12:03:08 -05:00
James Cammarata
e36a8d466e
Don't re-query inventory when trimming failed/dark hosts
...
Since the filter list contains hosts, passing that back to list_hosts()
in the inventoy causes issues when the hostname is an IPv6 address
(with :'s interpreted as group unions). Since we already have the list
of hosts, we should not need to pass that back through inventory a
second time.
Fixes #7446
2014-05-20 14:58:37 -05:00
Matt Martz
0e953c2863
Add run_once task key
...
This caused the task to act like bypass host loop plugin and
execute only on a single host. Can be used with delegate_to
2014-05-19 12:33:47 -05:00
James Cammarata
7faecd54b0
Merge pull request #7388 from jimi-c/issue_7384_vars_files_include
...
Pass vars_files on to included playbooks too
2014-05-14 14:52:33 -05:00
James Cammarata
525e7339ed
Merge branch 'pass-basedir-to-runner-on-setup' of https://github.com/ByteInternet/ansible into ByteInternet-pass-basedir-to-runner-on-setup
2014-05-14 09:46:47 -05:00
James Cammarata
85bd6810bb
Pass vars_files on to included playbooks too
...
Fixes #7384
2014-05-14 08:37:47 -05:00
Allard Hoeve
c5833f9869
Add missing basedir to Runner in _do_setup_step
2014-05-14 15:22:02 +02:00
James Cammarata
360ffc4dfd
Properly merge role conditionals in with pre-existing conditionals
...
Fixes #7387
2014-05-14 01:45:35 -05:00
James Cammarata
187619c7fe
Use utils.combine_vars on vars_files data
...
Fixes #7345
2014-05-13 11:24:41 -05:00
James Cammarata
2e2e5d5321
Use the existing module_vars during the templating of module_vars
...
Since some of the vars contained in there may be used in the templating
of other variables. This also reverts e83a494
which originally fixed
issue #6979 but broke some other variable related things.
Fixes #6979
Fixes #7321
Fixes #7332
2014-05-08 13:09:36 -05:00
Christian Berendt
6676720ce5
fixed typos found by RETF rules in PY files
...
rules are avaialble at https://en.wikipedia.org/wiki/Wikipedia:AutoWikiBrowser/Typos
2014-05-03 18:40:05 +02:00
Michael Scherer
0f0f5ff1ce
Give more information when a task is empty
...
I made a typo in a playbook and was great by:
ERROR: expecting dict; got: None
The issue was a single - on the last line of a playbook.
With the name of the file, I was able to see right away where the
error was.
2014-04-23 13:13:46 +02:00
James Cammarata
e83a494e41
Make sure VARS_CACHE for hosts are updated with the play vars too
...
Fixes #6979
2014-04-22 14:42:43 -05:00
Michael Scherer
1e34e95ba0
Improve error message when multiple action are given
...
This can be illustrated using this playbook:
- command: id
delegate_to: "{{ remote_server }}"
user: "{{ remote_user }}"
The error is to use 'user' instead of 'remote_user', but the error message
do not really mention it, so it can be a bit hard to spot.
2014-04-20 20:32:33 +02:00
James Tanner
4eb626825b
Refactor play._update_vars_files_for_host to make common functions and easier debugging
...
Fixes #4883
2014-04-10 13:43:59 -04:00
Serge van Ginderachter
d240e2b9fb
Introduce an ansible_version dict as runner variable
...
Given the version:
"1.6 (ansible_version_var 14499e8bf3
) last updated 2014/03/21 17:07:50 (GMT +200)"
We get the special variable:
"ansible_version": {
"full": "1.6",
"major": 1,
"minor": 6,
"revision": 0,
"string": "1.6 (ansible_version_var 14499e8bf3
) last updated 2014/03/21 17:07:50 (GMT +200)"
}
modified: lib/ansible/playbook/__init__.py
modified: lib/ansible/runner/__init__.py
modified: lib/ansible/utils/__init__.py
2014-04-08 17:14:42 +02:00
Michael DeHaan
0a574af270
Merge pull request #5555 from sivel/expose-playbook-to-callback
...
Expose the playbook to callback plugins
2014-04-03 17:01:28 -04:00
James Cammarata
317c2f4bc0
Fixes to variable issues introduced by recent changes
...
Fixes #6801
Fixes #6832
2014-04-02 19:49:38 -05:00
James Cammarata
a6a4680e5c
Fix variable naming issue in _load_tasks()
...
Fixes #6800
2014-04-02 16:13:22 -05:00
James Cammarata
e2d86e4f43
Splitting SETUP_CACHE into two caches, one for host vars and one for setup facts
2014-04-01 16:23:33 -05:00
James Cammarata
612a1a64f0
Apply extra vars after all other vars have been merged in a play
...
Fixes #6677
2014-03-31 15:31:10 -05:00
James Cammarata
78bdb078fe
Fix for bug related to async jid polling change plus a new test
2014-03-26 15:49:15 -05:00
James Tanner
38de8cc87e
Addresses #6705 Only set the role_uuid inside the role vars
2014-03-26 14:43:07 -04:00
James Tanner
8991e403e8
Fixes #6705 Give each role a unique uuid and apply tags only to tasks matching the uuid
2014-03-26 13:29:41 -04:00
James Cammarata
9ede6f7f49
Convert gather_facts to a boolean value if it is not None
...
Fixes #5618
2014-03-26 12:04:06 -05:00
Serge van Ginderachter
f8ea93c732
Move inventory.set_playbook_basedir from ansible-playbook to playbook constructor
2014-03-25 22:12:01 +01:00
James Tanner
f9018a6f1d
Ensure handlers run when meta tasks are defined and add handler integration tests
...
Fixes #6678
Fixes #6670
2014-03-25 13:33:52 -04:00
James Tanner
ebd1f70c5d
Typo in setting task_errors variable
2014-03-25 10:35:05 -04:00
James Tanner
605156c904
Fixes premature handler execution after adding force-handlers
2014-03-25 00:20:11 -04:00
James Tanner
9169a11088
Fixes #4777 add --force-handlers option to run handlers even if tasks fail
2014-03-24 10:28:48 -04:00
James Tanner
5b3b9ba267
Addresses #4407 Caculate failed percentage based on serial and number of hosts in play
2014-03-21 13:31:47 -04:00
James Tanner
14499e8bf3
Fixes #4325 allow async and poll parameters to be templated vars
2014-03-20 16:09:58 -04:00
James Tanner
95c79ad483
Fixes #4239 merge injects with new vars loaded from files
2014-03-20 13:12:33 -04:00
James Tanner
d327e3d11a
Fixes #5622 included tasks in roles now inherit tags from the role
2014-03-20 11:56:13 -04:00
Brian Coca
18adf07fc6
changed setting values and updated docs
2014-03-19 18:03:03 -04:00
Brian Coca
4dfa40f18e
added gathering control to ansible, defaults to 'smart'
2014-03-19 18:03:03 -04:00
James Cammarata
eb7717aa02
Make sure all tags are in a list before merging for role deps
...
Fixes #6557
2014-03-18 12:32:22 -05:00
James Cammarata
84908a57fc
Don't filter role deps on tags
...
Also, fixed a bug where the tags were being merged into the wrong
data structure (passed_vars) in _build_role_dependencies()
Fixes #6439
Fixes #5709
2014-03-17 23:03:16 -05:00
James Cammarata
7edee91aba
Fixing a bug in role tag handling where only the first tag was used
...
Fixes #6517
2014-03-17 11:28:54 -05:00
Michael DeHaan
b8f1e4f765
Merge pull request #6134 from veeti/include_with_items_path
...
Show the offending file name with the include + with_items error
2014-03-16 15:10:31 -05:00
Michael DeHaan
9cdbc53741
Merge pull request #6420 from bcoca/role_names
...
added new role_names variable that exposes current roles list
2014-03-16 14:42:40 -05:00
Michael DeHaan
26efc7ace8
Revert "Populate module_setup from the setup module rather than special code elsewhere"
...
This reverts commit 58eec2e4c2
.
2014-03-16 14:11:43 -04:00
Michael DeHaan
a9896afc66
Merge pull request #6418 from bcoca/template_itnore_errors
...
templates ignore_errors
2014-03-16 12:44:51 -05:00
Dag Wieers
58eec2e4c2
Populate module_setup from the setup module rather than special code elsewhere
...
This small change allows for individual setup actions to populate the SETUP_CACHE and not cause a subsequent facts-gathering when not needed. This follows the standard of other facts modules as laid out in #1206 and implemented in fedfd18774
. It allows to test of the setup module has already been run even when gather_facts was explicitely disabled.
2014-03-16 13:37:07 -04:00
Cristian Ciupitu
0749112286
Micro-optimization: replace s.find(x)!=-1 with x in s
...
timeit shows a speedup of ~3x on Python 2.7.5 x86_64.
It also makes the code a bit shorter.
2014-03-16 13:10:28 -04:00
James Cammarata
86d2ee4b97
Don't append tags from roles to the plays tags list
...
Fixes #6393
2014-03-12 10:41:18 -05:00
Brian Coca
906e59d8a8
added new role_names variable that exposes current roles list
2014-03-11 22:13:29 -04:00
Brian Coca
7778aca966
templates ignore_errors
2014-03-11 21:30:58 -04:00
James Cammarata
6577ff5f85
Add tags from handlers to tag availability calculation
2014-03-10 16:06:13 -05:00
Seth Woodworth
1d5db30067
Updates loop warning, removes unnecessary c
2014-03-09 00:19:28 -05:00
James Cammarata
04a6dc6d12
Check for skipped tags in passed role variables before adding to them
...
Fixes #6330
2014-03-08 18:55:42 -06:00
James Cammarata
b6056044b7
Partial revert of 73c883c
due to issues with handlers in roles
...
Fixes #6322
2014-03-06 21:13:40 -06:00
Michael DeHaan
a4d01b0891
Also search .json filenames
2014-03-06 21:47:49 -05:00
Brian Coca
79809b67dc
fixed another line with same issues
...
Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
2014-03-06 08:43:24 -05:00
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>
2014-03-06 08:28:36 -05:00
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
2014-03-05 14:37:37 -06:00
Hagai
0e4b38ed5a
Fix incorrect use of copy on list
2014-03-03 14:47:57 +02:00
James Cammarata
b758ed9417
Merge pull request #6150 from hkariti/fix_join_bug
...
Fix incorrect use of .join on list causing a traceback
2014-02-26 12:50:07 -06:00
Hagai
ae9c0d87a9
Fix incorrect use of .join on list
2014-02-24 19:48:55 +02:00
Veeti Paananen
dd6f2e6bfa
Show the offending file name with the include + with_items error
2014-02-23 20:51:57 +02:00
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.
2014-02-20 15:25:52 -05:00
James Tanner
3fc87e011b
Fix all other calls to yaml
2014-02-19 11:01:21 -05:00
James Tanner
427b8dc78d
Ansible vault: a framework for encrypting any playbook or var file.
2014-02-18 15:35:12 -05:00
jctanner
28933de84d
Merge pull request #5771 from bcoca/play_hosts2
...
added new play_hosts var
2014-02-05 23:52:20 -05:00
jctanner
253fe7be50
Merge pull request #5662 from RSpiertz/update_playbook_error
...
PlayBook: better error message
2014-02-04 11:16:44 -08:00
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
2014-02-03 10:10:45 -06:00
James Cammarata
75e3b59bbd
Adding no_log: capability for tasks
...
Fixes #4088
2014-01-31 16:58:46 -06:00
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
2014-01-29 12:31:12 -06:00
Michael DeHaan
d07a3b5e9b
AnsibleWorks -> Ansible
2014-01-28 20:29:42 -05:00
James Cammarata
88e2595a90
Fixing bug relating to su without an su_pass
2014-01-27 16:27:02 -06:00
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>
2014-01-25 18:43:15 -05:00
jctanner
b2d594d24e
Merge pull request #5724 from angstwad/su-tasks-fix
...
Fix bug where playbook tasks do not escalate privs with 'su'
2014-01-23 14:05:14 -08:00
jctanner
19e8742005
Merge pull request #5713 from angstwad/su-fix
...
Disallow su and sudo params in same play/task
2014-01-23 13:55:43 -08:00
Paul Durivage
e875089eba
Fix bug where self.su was being set by the sudo param in play tasks
2014-01-22 11:04:19 -06:00
Paul Durivage
01d1bd61e7
Disallow su and sudo params in same play/task
2014-01-22 10:55:45 -06:00
James Tanner
61d283e2ad
Fix merge conflicts from #5519
2014-01-21 13:35:06 -05:00
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
2014-01-20 19:19:03 -06:00
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.
2014-01-20 16:22:28 -08:00
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.
2014-01-20 16:22:28 -08:00