Commit Graph

638 Commits (46e515131e8a25943efe65ffe32c45f4e1246a9b)

Author SHA1 Message Date
soarpenguin 2caa52a981 fix no self pointer out of class. 2015-09-26 14:09:56 +08:00
Marius Gedminas 5d29a2eabd Python 3: shlex.split() wants unicode
On Python 2, shlex.split() raises if you pass it a unicode object with
non-ASCII characters in it.  The Ansible codebase copes by explicitly
converting the string using to_bytes() before passing it to
shlex.split().

On Python 3, shlex.split() raises ('bytes' object has no attribute 'read')
if you pass a bytes object.  Oops.

This commit introduces a new wrapper function, shlex_split, that
transparently performs the to_bytes/to_unicode conversions only on
Python 2.

Currently I've only converted one call site (the one that was causing a
unit test to fail on Python 3).  If this approach is deemed suitable,
I'll convert them all.
2015-09-24 12:36:05 +03:00
James Cammarata cc6627cdd6 Remove custom json encoder cleaner and strip proxy var stuff out before encoding
Fixes #12349
2015-09-17 16:04:47 -04:00
James Cammarata 5db9e38377 Merge pull request #12345 from mgedmin/py3k
Python 3: two more instances of 'basestring'
2015-09-16 16:49:46 -04:00
Andriy Yurchuk af213241ab Fix typo 2015-09-14 21:11:40 +02:00
Marius Gedminas 9877a5c415 Python 3: two more instances of 'basestring'
Fixes two failing tests on Python 3.4.
2015-09-14 08:27:39 +03:00
James Cammarata 30399edada Use UnsafeProxy for lookup results too
Also fixes a couple of bugs that popped up when using the proxy class
2015-09-08 12:19:39 -04:00
James Cammarata ff9f5d7dc8 Starting to add additional unit tests for VariableManager
Required some rewiring in inventory code to make sure we're using
the DataLoader class for some data file operations, which makes mocking
them much easier.

Also identified two corner cases not currently handled by the code, related
to inventory variable sources and which one "wins". Also noticed we weren't
properly merging variables from multiple group/host_var file locations
(inventory directory vs. playbook directory locations) so fixed as well.
2015-09-04 16:41:38 -04:00
Toshio Kuratomi aeff960d02 Cleanup combine_vars
* Dedupe combine_vars() code (removed from VariableManager)
* Fix merge_hash algorithm to preserve the type
* unittest combine_vars and merge_hash
2015-09-01 11:23:12 -07:00
Marius Gedminas 54dbfba8f8 Make combine_vars() compatible with Python 3
Fixes

  TypeError: unsupported operand type(s) for +: 'dict_items' and 'dict_items'

on Python 3.
2015-09-01 09:39:59 +03:00
James Cammarata 2043fcd5db Merge pull request #12083 from resmo/for-ansible
cloudstack: implement general api_region support, update docs
2015-08-28 13:14:50 -04:00
James Cammarata 5a5b9f211b Validate variable names when loading 'vars:' blocks
TODO: add this to VariableManager to validate vars loaded from files too

Fixes #12022
2015-08-28 11:36:31 -04:00
Marius Gedminas eb99aa8c68 Fix to_bytes(None) on Python 3
You cannot call bytes(obj) to get a simple representation of obj on
Python 3!  E.g. bytes(42) returns a byte string with 42 NUL characters
instead of b'42'.
2015-08-27 22:15:56 +03:00
Marius Gedminas da1e611b26 Support print as a function
I neglected the __future__ import because

  print(one_thing)

works the same way even when print is a statement.
2015-08-27 22:15:56 +03:00
Marius Gedminas 0c6ce31f76 Use 'except ... as' syntax
This syntax works on Python 2.6 through 3.x.  lib/ansible/module_utils
(and lib/ansible/modules) need to support Python 2.4, so I didn't touch
those.
2015-08-27 22:15:04 +03:00
Brian Coca 2ac931d6c9 ported module_docs to use display 2015-08-27 14:57:50 -04:00
Rene Moser 3db4039ad1 cloudstack: implement general api_region support, update docs 2015-08-25 13:54:21 +02:00
James Cammarata c7dde72aa0 Default listify to converting bare variables again
Since we explicitly set convert_bare=False in the template lookup
code, but still want individual looks that call listify directly to
convert bare variables if needed.
2015-08-12 10:49:46 -04:00
Brian Coca 6e825e8c22 fixed listify for lookups, made sure convert_bare is only on with_ 2015-08-11 16:42:09 -04:00
Brian Coca 5f0359c119 keep banners at 79 2015-08-06 17:37:05 -04:00
Brian Coca 25e67bb716 text wrap now adapts to terminal 2015-08-06 17:37:05 -04:00
James Cammarata d44daf53cc Allow wrapped text in deprecated messages 2015-08-06 17:21:02 -04:00
James Cammarata 5266679964 Use templar all the way down
Fixes bugs related to creating Templar() objects on the fly, where
the shared loader objects (serialized to TaskExecutor) aren't used
so information loaded into plugin loaders after forking is lost.

Fixes #11815
2015-08-04 12:25:53 -04:00
James Cammarata 2673eb0afb Add option to fail on undefined variables to listify
And use it in the call to get the loop items for a task.
2015-08-03 12:04:31 -04:00
Brian Coca 164092a835 optimized module docs 2015-07-27 20:52:53 -04:00
Brian Coca 0b6fadaad7 started implementing diff
diff now works with template
also fixed check mode for template and copy
2015-07-26 12:22:22 -04:00
Brian Coca b19eb0f4dc minor improvements to display 2015-07-25 09:15:33 -04:00
Toshio Kuratomi 36382face9 Add a warning about mode being octal 2015-07-24 14:52:21 -07:00
Brian Coca cff77de917 added todo for future of feature 2015-07-24 12:00:38 -04:00
Brian Coca 0089eb8102 reimplemented logging based on log_path var 2015-07-24 12:00:38 -04:00
James Cammarata e526743b4f Allowing `args: "{{some_var}}"` for task params again
This is unsafe and we debated re-adding it to the v2/2.0 codebase,
however it is a common-enough feature that we will simply mark it
as deprecated for now and remove it at some point in the future.

Fixes #11718
2015-07-24 10:33:12 -04:00
Brian Coca 88e1ef8c9b implemented --step in v2 2015-07-23 20:47:40 -04:00
Brian Coca 851ed45bbf adding display to plugins and start moving debug to display 2015-07-23 10:26:12 -04:00
Jeff Widman 52716c4dc7 Remove mention of 'apache example'
Removed explicit mention of 'apache'
2015-07-21 18:03:55 -07:00
James Cammarata b8b206005c Generalize extra variable parsing and loading
Fixes #11352
2015-07-21 00:18:35 -04:00
Brian Coca 5a5b7ff561 fixed first_available_found for template, refactored into common function
added deprecation warning
fixed display.deprecated to make version optional (code already assumed this)
turned warning + 'deprecated' in plugin loader into actual call to deprecated()
2015-07-15 19:47:59 -04:00
Brian Coca 42e355f9a3 fragments can now be a list 2015-07-14 10:07:59 -04:00
Brian Coca ea159ef9de fixed backup and validate fragments 2015-07-14 10:07:59 -04:00
Brian Coca fe91f7b506 moved read_vault_file to CLI from utils and renamed to clearer read_vault_password_file 2015-07-11 14:24:45 -04:00
Toshio Kuratomi 49a148056c Ensure that we're dealing with byte str when we print or log messages 2015-07-07 12:05:59 -07:00
Marc Abramowitz 314bae2a9e Don't wrap text for AnsibleParserError
This allows not messing up the wonderful error reporting that is
carefully created. Instead of:

    $ ansible-playbook foo.yml
     [ERROR]: ERROR! 'foo' is not a valid attribute for a Task  The error appears
    to have been in '/Users/marca/dev/git-repos/ansible/foo.yml': line 4, column 7,
    but may be elsewhere in the file depending on the exact syntax problem.  The
    offending line appears to be:    tasks:     - name: do something       ^ here

we get:

    $ ansible-playbook foo.yml
    ERROR! 'foo' is not a valid attribute for a Task

    The error appears to have been in '/Users/marca/dev/git-repos/ansible/foo.yml': line 4, column 7, but may
    be elsewhere in the file depending on the exact syntax problem.

    The offending line appears to be:

      tasks:
        - name: do something
          ^ here

which is much nicer.
2015-07-07 09:31:00 -07:00
Brian Coca 552715f072 added validate and backup doc fragments 2015-07-04 17:58:23 -04:00
Brian Coca dcb06ac7a8 Merge pull request #11445 from emonty/devel
Fix a tiny typo
2015-07-01 09:34:32 -04:00
Toshio Kuratomi 54e7c8a3f7 Add python requirement to the documentation for openstack modules requiring shade 2015-06-30 12:51:20 -07:00
Monty Taylor e89f1186e7 Fix a tiny typo 2015-06-30 14:46:43 -04:00
Brian Coca f576d29b6b allow for any non string iterable in listify 2015-06-15 11:02:51 -04:00
Brian Coca aed429554d better checks to ensure listify emits a non string iterable 2015-06-11 10:03:44 -04:00
Brian Coca 7291f9e965 removed cruft
made sure it does not fail on undefined
2015-06-11 00:13:40 -04:00
Brian Coca 7306a5397e simplified function, always attempt to template, always check if string before return, should avoid most cases of strings being passed to lookups 2015-06-10 22:55:50 -04:00
Brian Coca 5aec5e5eb0 fixed ansible pull, reorged validate function for cli to be function specific like parser
added missing cmd_functions with run_cmd, mostly for ansible pull
2015-06-09 17:24:43 -04:00
Brian Coca 9856a8f674 added missing imports to doc module 2015-06-03 15:00:41 -04:00
Brian Coca a87687dccb Merge pull request #11147 from sivel/module-docs-import-mutablemapping
Import missing MutableMapping class for module_docs
2015-06-03 14:50:17 -04:00
Matt Martz 89dceb503a Import missing MutableMapping class 2015-06-03 10:02:27 -05:00
Brian Coca 65b82f69e4 avoid failing when mode is none 2015-06-02 23:39:57 -04:00
Brian Coca ba02e5e3bf minor adjustments as per code review 2015-06-02 13:01:59 -04:00
Brian Coca 2590df6df1 created makedirs_safe function for use in cases of multiprocess
should fix #11126 and most race conditions
2015-06-02 11:41:30 -04:00
Rene Moser fc807e29c8 cloudstack: add api_timeout to doc fragments 2015-06-02 14:51:25 +02:00
Rene Moser 7bb9cd3766 cloudstack: minor cleanup in doc fragments 2015-06-02 14:51:25 +02:00
James Cammarata fe41f109a9 Merge branch 'v2_final' into devel_switch_v2 2015-06-01 16:42:59 -05:00
Monty Taylor 2046d76310 Add defaults and a link to os-client-config docs 2015-05-29 13:10:13 -07:00
Monty Taylor b659621575 Remove unneeded required_one_of for openstack
We're being too strict - there is a third possibility, which is that a
user will have defined the OS_* environment variables and expect them to
pass through.
2015-05-29 13:09:45 -07:00
Brian Coca e7a096c4c5 cowsay is back! 2015-05-28 20:01:39 -04:00
James Cammarata 2bad888f28 Merge branch 'v2_final' into devel_switch_v2
Conflicts:
	lib/ansible/inventory/__init__.py
	lib/ansible/modules/core
	lib/ansible/utils/__init__.py
	lib/ansible/utils/module_docs.py
2015-05-28 15:26:03 -05:00
Serge van Ginderachter b6ea8de399 limit extensions for files in group/host_vars dir
inventory vars: make loading from a directory obey the same rules as
when checking the base paths, looking at the file name extensions
as defined in CONSTANTS.YAML_FILENAME_EXTENSIONS

Fixes Github issue #11017
2015-05-23 20:34:08 +02:00
Brian Coca 9a88e0fc8e removed empty choices from files 2015-05-19 10:46:44 -04:00
Brian Coca da6d15d1f9 removed empty choices from files 2015-05-19 10:46:20 -04:00
Brian Coca 8fdf9ae59b moved module_doc_fragments to v2 2015-05-12 12:18:55 -04:00
Toshio Kuratomi 490cde3cbd Add python2.6+ as a documented requirement for rackspace modules 2015-05-11 12:25:03 -07:00
Toshio Kuratomi c80c5c980d Add python2.6 dep to aws and cloudstack doc fragments 2015-05-11 10:10:58 -07:00
Toshio Kuratomi 4839243366 Documentation fixes 2015-05-05 13:51:22 -07:00
Brian Coca 17e65b45d0 Merge pull request #10913 from bcoca/sudosu_ask_fix
now properly inherit data from ansible.cfg for sudo/su ask pass
2015-05-04 16:51:19 -04:00
Brian Coca b23a879273 now properly inherit data from ansible.cfg for sudo/su ask pass
fixes #10891
2015-05-04 16:42:25 -04:00
Toshio Kuratomi cbde1c5ec0 Fix extending non-dict types from doc fragments 2015-05-04 13:39:07 -07:00
Toshio Kuratomi b19d426f0b Normalize the way requirements is specified 2015-05-04 13:39:07 -07:00
James Cammarata ce3ef7f4c1 Making the switch to v2 2015-05-03 21:47:26 -05:00
Carlos E. Garcia cfbfd38723 just a few spelling error changes 2015-04-28 09:36:42 -04:00
Brian Coca d5a7cd0efc bad hack to maybe fix some corner cases with pbrun custom prompts 2015-04-14 12:44:28 -04:00
Feanil Patel 0abcebf1e4 Don't convert numbers and booleans to strings.
Before this change if a variable was of type int or bool and the variable was referenced
by another variable, the type would change to string.

eg. defaults/main.yml
```
PORT: 4567
OTHER_CONFIG:
  secret1: "so_secret"
  secret2: "even_more_secret"

CONFIG:
  hostname: "some_hostname"
  port: "{{ PORT }}"
  secrets: "{{ OTHER_CONFIG }}"
```

If you output `CONFIG` to json or yaml, the port would get represented in the output as a
string instead of as a number, but secrets would get represented as a dictionary.  This is
a mis-match in behaviour where some "types" are retained and others are not.  This change
should fix the issue.

Update template test to also test var retainment.

Make the template changes in v2.
Update to only short-circuit for booleans and numbers.

Added an entry to the changelog.
2015-04-11 12:03:42 -04:00
Brian Coca 92e400eb6d fixed minor issues with openstack docs not being valid yaml 2015-04-02 21:08:17 -04:00
Brian Coca 42b7321d4b Merge pull request #10587 from bcoca/fix_unrelated_lookup_fail
dont break everything when one of the vars in inject does not template
2015-04-02 15:49:18 -04:00
Brian Coca 4dd233b0dd Merge pull request #10237 from emonty/remove-auth-token
Remove auth token and port openstack module_utils changes to v2 tree
2015-04-01 12:20:59 -04:00
Monty Taylor 87c99b4675 Align verify parameter with validate_certs
The rest of ansible uses validate_certs, so make that the main
documented parameter. However, leave verify as an alias since that's the
passthrough value to the underlying libraries.
2015-04-01 07:54:02 -04:00
Brian Coca 0d1e2e74a1 converted error on play var initialization into warning with more information 2015-03-31 23:07:03 -04:00
Brian Coca 17e086fe8c dont break everything when one of the vars in inject does not template correctly, wait till its used 2015-03-31 21:36:18 -04:00
Monty Taylor 90ca386555 Add api timeout now that shade spports it everywhere 2015-03-31 20:29:06 -04:00
Brian Coca 299314c6b6 Merge pull request #10545 from resmo/feature/cloudstack-utils
cloudstack: common code used in cloudstack modules
2015-03-30 22:03:45 -04:00
Brian Coca 76e3a9c93a Merge pull request #9894 from 47lining/cloud_modules_sts_support_redux_ansible
Cloud Modules STS Support Redux
2015-03-27 08:20:43 -04:00
Rene Moser 1ba05dd3a2 cloudstack: add doc fragment 2015-03-26 14:18:23 +01:00
Toshio Kuratomi c024057e97 Fix assert to work with unicode values 2015-03-25 12:24:49 -07:00
Brian Coca a47c132695 slight changes to allow for checksum and other commands to work correctly with quoting 2015-03-16 19:09:03 -04:00
Shirou WAKAYAMA d92e8edf6e set 'nonstring' arg to passthru. 2015-03-12 12:36:50 +09:00
Shirou WAKAYAMA 2d73892acf use to_unicode() in _jinja2_vars if type is str. 2015-03-11 14:50:27 +09:00
Brian Coca 5f6db0e164 preliminary privlege escalation unification + pbrun
- become constants inherit existing sudo/su ones
- become command line options, marked sudo/su as deprecated and moved sudo/su passwords to runas group
- changed method signatures as privlege escalation is collapsed to become
- added tests for su and become, diabled su for lack of support in local.py
- updated playbook,play and task objects to become
- added become to runner
- added whoami test for become/sudo/su
- added home override dir for plugins
- removed useless method from ask pass
- forced become pass to always be string also uses to_bytes
- fixed fakerunner for tests
- corrected reference in synchronize action plugin
- added pfexec (needs testing)
- removed unused sudo/su in runner init
- removed deprecated info
- updated pe tests to allow to run under sudo and not need root
- normalized become options into a funciton to avoid duplication and inconsistencies
- pushed suppored list to connection classs property
- updated all connection plugins to latest 'become' pe

- includes fixes from feedback (including typos)
- added draft docs
- stub of become_exe, leaving for future v2 fixes
2015-03-10 18:42:36 -04:00
Monty Taylor 8758ba08bd Update common OpenStack requests-related parameters
Also, update docs related to earlier changes in this stack.
2015-03-06 18:20:45 -05:00
Brian Coca 346689f9f2 Merge pull request #9293 from cchurch/module_suffixes
Simpler fix for module suffixes than c02e8d8c8.
2015-02-26 23:33:51 -05:00
Toshio Kuratomi 0f4b72cdfa Refactor loop to only calculate the full_path once 2015-02-26 16:01:42 -08:00
Toshio Kuratomi 68c99a12b3 Merge pull request #10346 from lekum/find_plugin_bugfix
Bug fix: Search only for files as candidates
2015-02-26 15:38:45 -08:00
Toshio Kuratomi 8a5067d628 Adapt sanitize_output to log messages instead of assuming properly formatted key-value pairs
Fixes #10332
2015-02-26 12:31:11 -08:00
Alejandro Guirao b8cf131375 Bug fix: Search only for files as candidates 2015-02-26 19:13:07 +01:00
Monty Taylor 0b8773fc99 Remove state from central argument list
There is an old PR that shows a great use case for having a different
set of states for the server module. Before the other modules start
being in real use, pull this out so that we don't get ourselves into a
pickle.
2015-02-26 11:35:29 -05:00