Commit graph

279 commits

Author SHA1 Message Date
Toshio Kuratomi
77731440f3 Optimize the plugin loader.
We have been caching the paths to the plugins but before we would only
cache the specific plugin that we were looking for.  This meant that we
might search through all of the plugin directories before finding the
specific module we were interested in.  The next plugin we needed we
might again search through all the plugin directories before finding the
plugin we wanted.

This new code will cache all the potential plugins in each directory
searched.  For a play that only uses one plugin we'll only search
through directories until we encounter the directory that has the proper
plugin.  For a large playbook with many plugins used we'll search
through each directory at most once each.

From v1: 68e86de26f
         730c2ba403
2015-02-18 08:12:01 -08:00
Toshio Kuratomi
55e26db290 Support nested modules with ANSIBLE_LIBRARY env var
From v1: 4c2d06d2fe
2015-02-18 08:07:57 -08:00
Alexey Shamrin
b950a38e30 fix links to ansible-devel in documentation pages 2015-02-17 14:30:31 +03:00
Monty Taylor
d06a277b50 Port openstack module_utils changes to v2 branch 2015-02-13 10:42:21 -05:00
Toshio Kuratomi
9d605171a7 Didn't port isbasestring/isunicodestring from kitchen so switch to isinstance 2015-02-12 13:55:27 -08:00
Toshio Kuratomi
740bd8fbde Update to fix logentries issues 2015-02-12 12:58:36 -08:00
Toshio Kuratomi
dd484e8211 Update modules 2015-02-12 12:16:31 -08:00
James Cammarata
995aa8e24b Making task includes dynamic and fixing many other bugs
Dynamic task includes still need some work, this is a rough first version.
* doesn't work with handler sections of playbooks yet
* when using include + with*, the insertion order is backwards
* fix potential for task lists to be unsynchronized when using the linear
  strategy, as the include conditional could be predicated on an inventory
  variable
2015-02-12 18:17:16 +00:00
Paul Geraghty
0d82b846cc Correct typos 2015-02-11 02:24:12 +00:00
Toshio Kuratomi
c31831f028 Move from using inspect to __file__ in order to find the path to the
module snippets
2015-02-10 14:41:15 -08:00
Toshio Kuratomi
01a6081b49 First swing at making module_common.py more v2-ish 2015-02-10 12:36:23 -08:00
James Cammarata
0e834509c8 Fix in v2 for bare variable conversion 2015-02-10 11:28:04 -06:00
Toshio Kuratomi
7c86db3187 Add KSH compat
cherry picked from https://github.com/ansible/ansible/pull/6899
2015-02-09 15:37:35 -08:00
James Cammarata
31dd75de59 Fixing many bugs in v2
* delegate_to rudimentary support (still needs much more work)
* lots of other things
2015-02-09 16:56:38 -06:00
Toshio Kuratomi
402a6d0533 Explicitly close files opened by facts
Fixes #10157
2015-02-09 14:30:06 -08:00
Toshio Kuratomi
9db17afc85 Update modules 2015-02-09 11:00:57 -08:00
Toshio Kuratomi
4902c06304 Obfuscate passwords in more places where it is displayed 2015-02-09 10:13:13 -08:00
Toshio Kuratomi
8f06ba2bc1 Port https://github.com/ansible/ansible/pull/10162 (py-2.4 compat fix) to v2 tree 2015-02-04 09:46:25 -08:00
Toshio Kuratomi
019f74dced Update modules 2015-02-03 09:02:46 -08:00
Toshio Kuratomi
cea2f2a7cf remove broken nad commented unicode conversion -- in v2, this is done when the data first enters ansible. 2015-02-02 19:08:10 -08:00
Toshio Kuratomi
d50089ca9f Add a function to change output from a str to unicode 2015-02-02 18:28:47 -08:00
Toshio Kuratomi
c655e91436 For now throw an exception if decoding a non-utf8 extra var 2015-02-02 14:14:18 -08:00
Toshio Kuratomi
1ed1af6cb4 Make extra_vars into unicode string type early
Fixes v2 for #10106
2015-02-02 13:58:21 -08:00
Toshio Kuratomi
97438f0039 Update the modules 2015-02-02 10:25:59 -08:00
Toshio Kuratomi
b2c7b911bc v2/plugins/filter is now a symlink as it does not differ between v1 and v2 2015-02-02 10:25:09 -08:00
Toshio Kuratomi
03e213a272 Change the v2 filter plugins into a symlink to v1 as the plugins are the same for both 2015-02-02 10:25:09 -08:00
Toshio Kuratomi
e702a28496 Comment for why we have checksum and checksum_s 2015-02-02 10:25:09 -08:00
Toshio Kuratomi
4b89eb293f port fix for https://github.com/ansible/ansible/pull/10129 to v2 2015-01-30 07:51:19 -08:00
Toshio Kuratomi
ca35d138f1 Update modules 2015-01-30 07:46:36 -08:00
Toshio Kuratomi
747cc26ae1 Update modules 2015-01-29 18:31:15 -08:00
James Cammarata
c978c77796 Fixing more v2 bugs 2015-01-29 16:44:01 -06:00
Brian Coca
c73254543a made env var also consistent 2015-01-29 13:32:00 -05:00
Brian Coca
4fd760467b made inventory consistent in config file, deprecated old config hostfile 2015-01-29 13:28:33 -05:00
James Cammarata
171a67cfef Tweaking role path searching in v2 to be a bit more like v1 2015-01-29 10:56:04 -06:00
Toshio Kuratomi
556d4f0025 Update core modules 2015-01-28 16:31:08 -08:00
Toshio Kuratomi
b3d5f82d29 copy to_bytes and to_unicode functions from kitchen for use in v2 2015-01-28 14:51:33 -08:00
James Cammarata
181dd058eb Fix roles_path loading in v2 2015-01-28 16:08:41 -06:00
James Cammarata
ed05db52ba Fixing playbook includes in v2 where included paths are relative 2015-01-28 15:03:06 -06:00
James Cammarata
b07ab41994 Fix directory loading of host/group vars in v2 2015-01-28 14:06:10 -06:00
James Cammarata
4d9bf37afa Fixing some v2 inventory bugs 2015-01-28 13:21:52 -06:00
James Cammarata
b6a34518ad Fixing checkmode support and some other things in v2 2015-01-28 13:21:52 -06:00
Toshio Kuratomi
0aac6360e4 Update core modules 2015-01-28 10:38:36 -08:00
Brian Coca
2fa9a0958a v2: added draft url lookup 2015-01-27 18:29:16 -05:00
Toshio Kuratomi
418e24cc6c Merge changes from v1 env-setup into v2/env-setup 2015-01-27 11:54:35 -08:00
Toshio Kuratomi
975b547aaa Update core modules 2015-01-27 09:47:20 -08:00
Toshio Kuratomi
a63e4c595f Another place that needs to be json_dict_bytes_to_unicode 2015-01-26 22:04:51 -08:00
Toshio Kuratomi
0f6b87d33e Revert "Fix import statements" -- those impotrt statements were right
before... something else is fishy

This reverts commit 8ab536fbf2.
2015-01-26 22:01:52 -08:00
Toshio Kuratomi
8ab536fbf2 Fix import statements 2015-01-26 21:49:09 -08:00
Toshio Kuratomi
d3666f3265 Make py2.4 remote checksum large-file-enabled as well 2015-01-26 21:44:42 -08:00
James Cammarata
bbd08cd0e2 Fixing more v2 issues with integration tests 2015-01-26 23:41:19 -06:00
Toshio Kuratomi
6f5d18a20e Merge pull request #10087 from axos88/devel
fix checksum calculation for large files
2015-01-26 21:40:09 -08:00
Toshio Kuratomi
335cf2f05f Update module repos 2015-01-26 20:39:53 -08:00
Toshio Kuratomi
915d232d5f jinja2 cannot handle byte strs with non-ascii. So we need to transform potential byte str into unicode type. This fix is for dynamic inventory.
Fixes #10007
2015-01-26 20:39:09 -08:00
James Cammarata
455423aafb Updating submodule reference for v2 2015-01-26 11:34:33 -06:00
James Cammarata
71e774e8bf Implementing playbook-level includes and getting includes integration test working 2015-01-26 11:30:30 -06:00
Akos Vandra
03fa421f3f do not use with, it is not supported all the way down to 2.4 2015-01-25 18:42:59 +01:00
Akos Vandra
e8144b3b90 fixes #10086 2015-01-25 14:51:01 +01:00
Toshio Kuratomi
53a3644ecd Update the modules 2015-01-22 23:17:58 -08:00
James Cammarata
45212394ca Adding in hostvars to v2 and getting more integration tests working 2015-01-22 22:50:21 -05:00
James Cammarata
f9d451eb9c Adding post-validation method to connection info object 2015-01-22 22:49:04 -05:00
Toshio Kuratomi
364f772cc5 Fix quoting of shell parameters used in remote_checksum and add integration test to detect the error
Fixes #682
2015-01-22 12:33:06 -08:00
Toshio Kuratomi
f2b1a289ed Update modules to pull in fixes 2015-01-22 10:27:50 -08:00
Toshio Kuratomi
2a04663255 Port forward lmacken's fix for 9886 to v2 2015-01-20 12:41:02 -08:00
James Cammarata
115684d235 Minor tweak to stub code for v2 ansible-playbook 2015-01-20 01:21:17 -06:00
James Cammarata
eae9a406ad Fixing v2 code for test_yum and added capability to squash items 2015-01-20 01:16:19 -06:00
James Cammarata
5addbe7956 V2 submodule update 2015-01-19 21:18:24 -06:00
James Cammarata
c60c295ada Adding more fixes for integration testing under v2 2015-01-19 16:18:46 -06:00
Toshio Kuratomi
2e0472e03b Allow ansible-playbook to determine if an invalid limit is specified 2015-01-19 13:39:45 -08:00
Brian Coca
23783a5228 Merge pull request #10014 from bcoca/inventory_script_errorhandle
ansible now captures returncode errors on inventory scripts
2015-01-19 15:17:56 -05:00
Brian Coca
976f51e5f5 Merge pull request #9968 from bcoca/v2_play_env
V2: added environment to play
2015-01-19 15:17:15 -05:00
Toshio Kuratomi
46e486ba41 Update modules to fix docs build and unittests 2015-01-19 09:43:30 -08:00
Toshio Kuratomi
01be9f4399 Update modules to latest 2015-01-19 09:07:49 -08:00
Brian Coca
78e1a7ed93 Revert "Fix: Add support for SSL protocol version configuration option" 2015-01-19 08:36:17 -05:00
Toshio Kuratomi
365af69c3e More quotes and reimplement without pushd/popd 2015-01-18 08:17:37 -08:00
Brian Coca
832b3ebea2 adds to v2 the ability to run with empty inventory (implicit localhost),
which is now a warning and not an error.
2015-01-16 18:31:58 -05:00
Brian Coca
9ccabbb95e Merge pull request #9808 from swimlappy/sslconfig
Fix: Add support for SSL protocol version configuration option
2015-01-16 10:25:48 -05:00
James Cammarata
a7615c4a6f Updating v2 submodule pointer again, after updating from devel 2015-01-15 17:00:32 -06:00
James Cammarata
6e5fb3de59 Updating submodule pointer for v2 core modules 2015-01-15 16:58:18 -06:00
James Cammarata
a6d6a89ad1 More work on v2, fixing bugs and getting integration tests running 2015-01-15 16:57:19 -06:00
Toshio Kuratomi
dde32a826f Set default values for shell variables that we use
Fixes #9991
2015-01-15 11:08:00 -08:00
Brian Coca
6b3d0f4788 now captures returncode errors on inventory scripts 2015-01-15 13:38:25 -05:00
James Cammarata
02bc014bcd More work on getting integration tests running for v2 2015-01-15 01:14:22 -06:00
Toshio Kuratomi
6326daa34e Update modules for unarchive handling user,group,mode and add integration test for the same 2015-01-14 19:23:12 -08:00
Toshio Kuratomi
6e6d291f59 Disable egg generation in a way that works on bash 2015-01-14 12:55:25 -08:00
Toshio Kuratomi
67c988411b Comment out egg generation for now as we don't yet have a setup.py for v2 2015-01-14 09:29:35 -08:00
Toshio Kuratomi
5f8d63dd57 Sync changes to v2 env-setup 2015-01-14 09:28:19 -08:00
Toshio Kuratomi
4add30c96e Optimize away a string replacement :-) 2015-01-14 09:16:09 -08:00
James Cammarata
4010f79441 Updating v2 submodule sha 2015-01-14 10:07:22 -06:00
James Cammarata
2aeb79f45f Starting work on getting integration tests working on v2
This is incomplete work, and requires some minor tweeks to the integration
tests which are not included in this commit.
2015-01-12 16:07:01 -06:00
James Cammarata
b0486f7a20 Updating submodule pointer for v2 2015-01-09 14:28:02 -06:00
Brian Coca
b250e138d3 added environment to play and made both it and no_log inhertiable by
task
2015-01-09 12:39:49 -05:00
James Cammarata
1544dde932 Moving over all lookup plugins to v2 2015-01-09 09:37:45 -06:00
James Cammarata
63c2d616e7 Starting to move over lookups and fixing some bugs related to that 2015-01-08 10:52:14 -06:00
James Cammarata
0823fb2cd9 fixing bug with role paths 2015-01-07 13:54:09 -06:00
James Cammarata
fd67a20787 Fixed "until" loop support, and cleaned up the async_wrapper/polling a bit 2015-01-07 11:44:52 -06:00
James Cammarata
065733ad93 Moving more action plugins over and fixing some bugs with role loading 2015-01-07 10:48:33 -06:00
James Cammarata
7f7e9914aa Changing tag evaluation method to match when conditional method 2014-12-29 23:30:37 -06:00
James Cammarata
62d79568be Creating playbook executor and dependent classes 2014-12-29 10:46:47 -06:00
Jason Holland
eedc51f213 Add support for SSL protocol version configuration option. Also fix 2 places where the SSL version was not being set properly. 2014-12-13 21:20:33 -06:00
Toshio Kuratomi
b6c3670f8a Mark some inventory methods that I'm thinking should go away (and their
replacements)
2014-12-09 13:52:47 -06:00
Toshio Kuratomi
b4dfcc2d28 Start laying out how the pieces of code that parse inventory information into ansible will work 2014-12-09 13:52:42 -06:00
Toshio Kuratomi
bdf42104cd Add some more comments from jimi-c and mpdehaan 2014-12-09 13:52:39 -06:00
Toshio Kuratomi
74f48ed79d Inventory with docstrings and notes on how to change 2014-12-09 13:52:35 -06:00
Veres Lajos
bf5d8ee678 typofixes - https://github.com/vlajos/misspell_fixer 2014-12-04 22:23:35 +00:00
James Cammarata
a1d990a673 Minor tweaks to v2 playbook iterator to support executor testing 2014-11-14 10:25:37 -06:00
James Cammarata
24bebd85b4 Adding v2 task/block iterator and some reorganizing 2014-11-08 01:44:21 -06:00
Toshio Kuratomi
f1267c0b05 Move from md5 to sha1 to work on fips-140 enabled systems 2014-11-06 21:28:04 -08:00
James Cammarata
229d49fe36 Adding new playbook objects for v2
* Playbook
* TaskInclude
2014-11-05 21:13:47 -06:00
James Cammarata
0ed9746db3 Adding Play class for v2 2014-11-04 15:16:53 -06:00
James Cammarata
11822f0d57 Adding VariableManager class for v2 2014-11-03 13:51:18 -06:00
James Cammarata
7cd5b13e34 Make sure v2 playbook classes validate attributes
Also removing cruft code from earlier iteration on task.py and fixing
a bug where 'shell' was not removed from the task ds after munge()
cleaned things up
2014-10-30 16:04:34 -05:00
James Cammarata
3b0e64127d Refactoring role spec stuff into a dedicated parsing class
Also reworking tests to cut down on the number of patches required
by sub-classing the DataLoader() class and reworking the base object's
structure a bit to allow its use
2014-10-30 12:42:06 -05:00
James Cammarata
bd203a44be Adding more unittests for the v2 role class 2014-10-30 12:42:06 -05:00
Toshio Kuratomi
7055505227 Add python3 compat header 2014-10-28 20:44:21 -04:00
Toshio Kuratomi
e7ee9ddc0a Add the python3 compat header 2014-10-28 20:41:51 -04:00
Toshio Kuratomi
e99dc5a57c Add copyright and py3 compat header 2014-10-28 20:40:39 -04:00
Toshio Kuratomi
67ff4428d5 Fix up all python3 issues that do not have to do with text/bytes 2014-10-28 20:27:14 -04:00
James Cammarata
58defa5cce Adding role deps to v2 Role class and fixing some bugs 2014-10-28 00:15:02 -05:00
James Cammarata
7ea84d7499 More v2 roles class work
* added ability to set parents (will be used when the deps are loaded)
* added role caching, so roles are not reloaded needlessly (and for
  use in detecting when roles have already been run)
* reworked the way metadata was stored - now individual attribute fields
  instead of a dictionary blob
2014-10-27 13:27:25 -05:00
James Cammarata
44afa7facc Updating Role class for new DataLoader stuff 2014-10-25 23:42:35 -05:00
James Cammarata
7cb489eca3 Adding a data parsing class for v2 2014-10-24 14:06:43 -05:00
James Cammarata
be972225a5 Removing unnecessary import from v2 parsing init 2014-10-22 11:00:24 -05:00
James Cammarata
2ff17ebd93 Adding in VaultEditor tests from old unittests 2014-10-21 16:40:44 -05:00
Toshio Kuratomi
c1b290a311 Fix logic that prevents multiple action, local_action, and modules to be specified. 2014-10-21 17:04:49 -04:00
Toshio Kuratomi
b3452de8a7 Hook up the general parsing unittests and get them passing 2014-10-21 16:06:40 -04:00
James Cammarata
0a8c91a812 Fixing up tests, removing some of the yaml error stuff from parsing
* moved old unittests for vault over to the new codebase
* reverted YAML error helpers and reverted the load() function
  in parsing/__init__.py, pending a rewrite of a new YAML loader
  class of some kind to encapsulate all of that
* fixed an error in in the module args parser regarding the shell/
  command argument parsing, where some additional arguments were
  being lost
2014-10-21 13:28:01 -05:00
James Cammarata
0ed97e4d11 Updating v2 Role class code 2014-10-21 10:12:45 -05:00
Toshio Kuratomi
4c86bd3ca6 Merge the vault tempfile fix to the v2 tree 2014-10-21 10:33:33 -04:00
Toshio Kuratomi
e78c5f925b Python3 fixes 2014-10-21 01:24:09 -04:00
Toshio Kuratomi
a954220957 Migrate the v2/tests to use the ansible.compat module 2014-10-21 01:14:30 -04:00
Toshio Kuratomi
3f27e5e080 Compat tree for code dealing with compatibility between python versions 2014-10-21 01:09:11 -04:00
James Cammarata
b0069a338e Overhauls to v2 code
* using inspect module instead of iteritems(self.__class__.__dict__, due
  to the fact that the later does not include attributes from parent
  classes
* added tags/when attributes to Base() class for use by all subclasses
* removed value/callable code from Attribute, as they are not used
* started moving some limited code from utils to new places in v2 tree
  (vault, yaml-parsing related defs)
* re-added ability of Block.load() to create implicit blocks from tasks
* started overhaul of Role class and role-related code
2014-10-20 13:11:20 -05:00
Toshio Kuratomi
5fe5e2d3f4 Docstring for v2 inventory.subset 2014-10-20 11:43:27 -04:00
Michael DeHaan
a60fd58145 Update block.py
Add note on block properties
2014-10-19 10:48:32 -04:00
James Cammarata
57d2622c8c Adding block code and tests 2014-10-16 16:03:29 -05:00
James Cammarata
21577ff2cc Moved v2 tests for plugins to new location 2014-10-16 08:55:44 -07:00
James Cammarata
1d04e4b3d2 Updating unittests for v2 stuff 2014-10-15 18:02:45 -07:00
Toshio Kuratomi
eafa718be1 Remove inherit from object as it's no longer needed to determine new-style classes 2014-10-15 19:37:29 -04:00
Toshio Kuratomi
acf4bc95a3 Give all v2 tests the python3 compat boilerplate 2014-10-15 19:25:48 -04:00
Toshio Kuratomi
18f30b00ba Add python3-compat boiler to all core files 2014-10-15 19:22:54 -04:00
Toshio Kuratomi
ff8042c5c3 Add python3 compat boilerplate to executor 2014-10-15 19:18:12 -04:00
Toshio Kuratomi
c9abd0fd58 Stub out Inventory class - we're going to draw heavily on the existing
inventory for implementation
2014-10-15 18:56:23 -04:00
Michael DeHaan
6ca67c61cb Starting to stub out some classes. 2014-10-15 15:54:12 -07:00
Toshio Kuratomi
a707f5acfe Fix relative imports 2014-10-15 18:40:03 -04:00
Toshio Kuratomi
6ecca227b8 Fix missing import 2014-10-15 18:37:17 -04:00
Toshio Kuratomi
057c1df303 Remove temp file 2014-10-15 18:36:30 -04:00
Toshio Kuratomi
cf5ce97275 Somehow, git mv only rm'd test/v2 and didn't add v2/test 2014-10-15 18:35:16 -04:00
Toshio Kuratomi
b62e7ae8f5 Remove extraneous __init__ to fix v2 unittests 2014-10-15 18:26:05 -04:00
Toshio Kuratomi
46b54443f1 Add a README for the v2 unittests 2014-10-15 18:25:54 -04:00
Toshio Kuratomi
938b2108d0 Move the v2 tests under the v2 tree 2014-10-15 18:08:28 -04:00