Marius Gedminas
6708d56a21
Python 3: avoid long integer literals
...
Even Python 2.4 automatically promotes int to long.
2015-09-23 10:04:25 +03:00
Marius Gedminas
f5d4935197
Python 3: treat python as a function in module_utils/basic.py
...
NB: we can't use 'from __future__ import print_function', but luckily
print(one_thing) works fine on both Python 2 and Python 3 without that.
2015-09-23 10:04:25 +03:00
Marius Gedminas
e71a986e16
Python 3: avoid octal constants in module_utils/basic.py
2015-09-23 10:04:25 +03:00
Marius Gedminas
d2bec7f81f
Python 3: avoid "except ..., e:" in module_utils/basic.py
...
Make the code compatible with Pythons 2.4 through 3.5 by using
sys.exc_info()[1] instead.
This is necessary but not sufficient for Python 3 compatibility.
2015-09-23 10:04:25 +03:00
James Cammarata
65630d2ce1
Fixing one more bug related to staticmethods in LookupBase
2015-09-23 02:33:32 -04:00
James Cammarata
cbbb270761
Cleanup bug from moving base lookup methods to staticmethods
2015-09-23 02:26:19 -04:00
Abhijit Menon-Sen
ac98fe9e89
Implement ssh connection handling as a state machine
...
The event loop (even after it was brought into one place in _run in the
previous commit) was hard to follow. The states and transitions weren't
clear or documented, and the privilege escalation code was non-blocking
while the rest was blocking.
Now we have a state machine with four states: awaiting_prompt,
awaiting_escalation, ready_to_send (initial data), and awaiting_exit.
The actions in each state and the transitions between then are clearly
documented.
The check_incorrect_password() method no longer checks for empty strings
(since they will always match), and check_become_success() uses equality
rather than a substring match to avoid thinking an echoed command is an
indication of successful escalation. Also adds a check_missing_password
connection method to detect the error from sudo -n/doas -n.
2015-09-23 01:55:00 -04:00
Abhijit Menon-Sen
840a32bc08
Reorganise ssh.py to cleanly separate responsibilities
...
The main exec_command/put_file/fetch_file methods now _build_command and
call _run to handle input from/output to the ssh process. The purpose is
to bring connection handling together in one place so that the locking
doesn't have to be split across functions.
Note that this doesn't change the privilege escalation and connection IO
code at all—just puts it all into one function.
Most of the changes are just moving code from one place to another (e.g.
from _connect to _build_command, from _exec_command and _communicate to
_run), but there are some other notable changes:
1. We test for the existence of sshpass the first time we need to use
password authentication, and remember the result.
2. We set _persistent in _build_command if we're using ControlPersist,
for later use in close(). (The detection could be smarter.)
3. Some apparently inadvertent inconsistencies between put_file and
fetch_file (e.g. argument quoting, sftp -b use) have been removed.
Also reorders functions into a logical sequence, removes unused imports
and functions, etc.
Aside: the high-level EXEC/PUT/FETCH description should really be logged
from ConnectionBase, while individual subclasses log transport-specific
details.
2015-09-23 01:55:00 -04:00
James Cammarata
95c6fe88e4
Fix handling of conditional vars_files which contain variables
...
Fixes #12484
2015-09-23 01:26:24 -04:00
Toshio Kuratomi
c83f51b7f2
Some LookupBase cleanups:
...
* Make LookupBase an abc with required methods (run()) marked as an
abstractmethod
* Mark methods that don't use self as @staticmethod
* Document how to implement the run method of a lookup plugin.
2015-09-22 16:19:36 -07:00
Toshio Kuratomi
049952fa50
Update submodule refs.
2015-09-22 14:01:53 -07:00
James Cammarata
1e7fd2196d
Fixing synchronize + delegate_to user bug
...
Fixes #12464
2015-09-22 16:06:52 -04:00
James Cammarata
3ffc2783c4
Don't bomb out on handlers with undefined variables in their names
2015-09-22 12:42:02 -04:00
Toshio Kuratomi
4b0d52d2cb
Merge pull request #12420 from ansible/win_prefix_modules
...
Fix for user defined modules not overriding modules from core.
2015-09-22 09:16:38 -07:00
James Cammarata
1076155d8d
When failing because of vars_files templating, try and bubble up the file/line info
2015-09-22 12:13:55 -04:00
Toshio Kuratomi
18e2ee16ef
Fix for user defined modules not overriding modules from core.
...
This fix takes into account that powershell modules are somewhat
different than regular modules and have to be kept separate.
2015-09-22 09:07:37 -07:00
Toshio Kuratomi
f61fb9787d
Update submodule refs
2015-09-22 08:59:10 -07:00
Rene Moser
b43939dfd6
cloudstack: make tags handling idempotence
...
Credits to @jeffersongirao, who provided the patch.
2015-09-22 16:12:35 +02:00
James Cammarata
c30e464388
Additional tweaks to callback output for delegate_to
2015-09-22 09:25:38 -04:00
James Cammarata
513619867a
Show delegated-to host in callback message
...
Fixes #12465
2015-09-22 08:45:04 -04:00
Rene Moser
efd122c2f0
cloudstack: add returns_to_int return handling into utils
...
It is not uncommon that the API returns string for int values e.g. ports in listFirewallRules or listPortForwardings,
2015-09-22 14:44:08 +02:00
Rene Moser
c9a3801a25
cloudstack: common argument_spec and requried_together to utils
2015-09-22 14:36:43 +02:00
James Cammarata
f563b22446
Merge pull request #12461 from mgedmin/py3k
...
Python 3: there's no basestring
2015-09-22 03:11:43 -04:00
James Cammarata
d2949f5449
Merge pull request #12463 from mgedmin/fix-ansible-doc
...
Fix option descriptions in ansible-doc output
2015-09-22 03:10:59 -04:00
James Cammarata
0fb4a6a67b
Tweak to the way new host variables are created for delegated hosts
2015-09-22 03:03:21 -04:00
Marius Gedminas
339790adc4
Fix option descriptions in ansible-doc output
...
Fixes #12462 .
2015-09-22 10:00:33 +03:00
James Cammarata
18adfc6d1a
Set some default vars on hosts created for delegate_to connections
2015-09-22 02:35:01 -04:00
James Cammarata
a22f7b883d
Restrict role param vars to tasks within that role
...
Fixes #12460
2015-09-22 02:14:18 -04:00
Marius Gedminas
fc0dcc3947
Python 3: there's no basestring
...
Fixes one failing test.
Now technically a filename can be a bytestring, even on Python 3. I
hope this is unlikely for Ansible.
2015-09-22 08:42:33 +03:00
James Cammarata
ecf7d8c9ee
Fix relative path bug in copy action
...
Without rebreaking #12055
Fixes #ansible-modules-core/2098
2015-09-22 01:31:03 -04:00
James Cammarata
53794b692c
Merge pull request #12457 from ansible/warn-if-core-modules-not-present
...
Detect if core modules aren't installed and warn if that is the case
2015-09-21 21:15:54 -04:00
Toshio Kuratomi
627f9d73ba
Detect if core modules aren't installed and warn if that is the case
...
Fixes #11206
2015-09-21 12:31:51 -07:00
Brian Coca
d27b73e7b5
fixed case in which boto3 is present but module is not using it yet
2015-09-21 15:16:07 -04:00
James Cammarata
cb7060c9fe
Allow undefined var errors to bubble up when templating vars_files in certain conditions
...
Follow up to 8769f03c
, which allows the undefined var error to be raised
if we're getting vars with a full context (play/host/task) and the host
has already gathered facts. In this way, vars_files containing variables
that fail to be templated are not silently ignored.
2015-09-21 11:57:37 -04:00
Brian Coca
f96255f7fd
fixed typo
2015-09-21 10:10:21 -04:00
James Cammarata
86566e691a
Merge pull request #12447 from mgedmin/py3k
...
Python 3: there is no 'basestring'
2015-09-21 09:39:17 -04:00
James Cammarata
8769f03c16
Also catch AnsibleUndefinedVariable errors when templating vars_files names
...
Fixes #12449
2015-09-21 09:35:06 -04:00
Toshio Kuratomi
2a614c1c0f
Close module file once we're done reading from it
2015-09-21 01:46:29 -07:00
Marius Gedminas
9cdb6ebae3
Python 3: there is no 'basestring'
...
This fixes a failing unit test.
In actual use (which is still quite far), I'm not sure if bytes ->
unicode conversion should be done here (in which case the code will fail
with an AttributeError: 'bytes' object has no attribute 'readlines'), or
inside self._connection.exec_command() (in which case my change is
correct).
2015-09-21 08:48:59 +03:00
Victor Salgado
20bbd66e85
Use dict.get()
2015-09-20 22:54:02 -03:00
James Cammarata
65bf14cbb0
Merge pull request #12431 from hslee16/devel
...
Stops using _groups_list to check for host when using 'add_host'
2015-09-20 18:17:02 -04:00
James Cammarata
88e1aa94fa
Add play context vars to list of variables before post validation
...
Fixes #12437
2015-09-19 21:51:24 -04:00
James Cammarata
05f6e76407
Template handler names before checking to see if they need to run
...
Fixes #12427
2015-09-18 18:54:48 -04:00
James Cammarata
72769d1899
Merge pull request #12432 from mgedmin/py3k
...
Python 3: there's no xrange
2015-09-18 15:33:08 -04:00
James Cammarata
37f2cbc429
Merge pull request #12436 from amenonsen/ranges
...
Support «hosts: foo[1:]» and add tests for split/apply_subscript
2015-09-18 15:32:15 -04:00
James Cammarata
1f5584aa5b
Refactoring delegate_to code
...
Now, instead of relying on hostvars on the executor side, we compile
the vars for the delegated to host in a special internal variable and
have the PlayContext object look for things there when applying task/
var overrides, which is much cleaner and takes advantage of the code
already dealing with all of the magic variable variations.
Fixes #12127
Fixes #12079
2015-09-18 15:25:10 -04:00
James Cammarata
fa69e8ebb8
Fixing some bugs in _compute_delegate() in TaskExecutor
...
* Clearing interpreter settings from variables, so those set for the
original host aren't incorrectly applied to the delegated to host
* Fixed incorrect string for remote user in delegated hosts hostvars
* Properly looking for multiple possiblities in the delegated-to hosts
hostvars (ansible_ssh_host vs. ansible_host)
2015-09-18 15:25:10 -04:00
Peter Sprygada
e45b71d6cd
added new module object to vca
2015-09-18 13:45:37 -04:00
Abhijit Menon-Sen
2fcdb37e7b
Support «hosts: groupname[1:]» notation (~= 'the rest of the group')
2015-09-18 22:28:34 +05:30
Brian Coca
aca83b15e5
Merge pull request #12425 from privateip/devel
...
initial add of vca common module
2015-09-18 11:24:54 -04:00
Brian Coca
11707576a3
fix for AIX network facts
...
fixes #12434
2015-09-18 10:43:53 -04:00
Brian Coca
d7b61db6dc
made boto3 non mandatory
2015-09-18 08:05:33 -04:00
Toshio Kuratomi
fdb1c14004
Update the submodule pointers
2015-09-18 04:49:30 -07:00
Marius Gedminas
baf9320369
Python 3: there's no xrange
...
Use six.moves.range instead (aliased to xrange on Python 2, aliased to
range on Python 3).
Also I couldn't resist replacing the elaborate chr/ord/randrange dance
with the simpler random.choice(string.ascii_lowercase) that was already
used elsewhere in the Ansible codebase.
2015-09-18 08:52:26 +03:00
Alex Lee
cf289191e5
return None if group does not exist in inventory groups
2015-09-17 15:58:10 -07: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
c95d4ca05f
Properly assign search path to environment.loader in template lookup
...
Same fix as was applied in f162990c
to the action plugin
Fixes #12355
2015-09-17 14:47:20 -04:00
James Cammarata
bde5ed9672
Catch worker errors that may be subclassed on others that lead to incorrect exits
2015-09-17 14:46:53 -04:00
Peter Sprygada
8f43d222c0
initial add of vca common module
2015-09-17 14:41:53 -04:00
James Cammarata
053c41e79d
Fix typo in ansible module_utils import from galaxy code
2015-09-17 14:25:48 -04:00
Chrrrles Paul
7b778d8a4b
Merge pull request #12424 from amenonsen/ipv6-ranges
...
Tested. Thanks for spotting and then fixing this -- Allow hexadecimal ranges in IPv6 addresses, not only 0-9
2015-09-17 14:21:03 -04:00
Abhijit Menon-Sen
2d420a9bb7
Allow hexadecimal ranges in IPv6 addresses, not only 0-9
2015-09-17 23:32:58 +05:30
James Cammarata
b386f0c64d
Merge pull request #12423 from amenonsen/split-fixup
...
Remove deprecation warning; now handled in _split_patterns
2015-09-17 14:02:22 -04:00
James Cammarata
a1fffff92c
Merge branch 'addresses' of https://github.com/amenonsen/ansible into amenonsen-addresses
2015-09-17 13:43:05 -04:00
Abhijit Menon-Sen
62ca6b5e35
Remove deprecation warning; now handled in _split_patterns
2015-09-17 23:09:56 +05:30
Abhijit Menon-Sen
575a8b8c77
Merge Host.ipv[46]_address into .address
...
The earlier distinction was never used; .ipv6_address was always a copy
of .ipv4_address, and the latter was always used to set the remote_addr
field in the PlayContext.
Also uses the canonical ansible_host/ansible_port names when setting the
address and port from variables.
2015-09-17 23:03:48 +05:30
James Cammarata
951128d7a6
Merge branch 'hostpatterns' of https://github.com/amenonsen/ansible into amenonsen-hostpatterns
2015-09-17 13:31:51 -04:00
Victor Salgado
14fefebaad
Modify _split_pattern to use map when working with list input
2015-09-17 13:52:54 -03:00
James Cammarata
46baed864f
Submodule update after correcting doc bug
2015-09-17 11:30:38 -04:00
James Cammarata
0beb37a121
Submodule update
2015-09-17 11:26:54 -04:00
James Cammarata
ba82e57445
Merge branch 'sudo_on_if_needed' of https://github.com/apollo13/ansible into apollo13-sudo_on_if_needed
2015-09-17 11:03:27 -04:00
Toshio Kuratomi
8532ddd5ed
typo in formatting the warning message
2015-09-17 08:01:43 -07:00
Toshio Kuratomi
4ae5512fb0
Restore python3 compat fix and fix AnsibleError undefined before use
2015-09-17 07:45:21 -07:00
James Cammarata
c881b1acae
Merge pull request #12407 from mgedmin/py3k
...
Python 3: basestring in play_context.py
2015-09-17 10:40:57 -04:00
James Cammarata
8acbc00853
Fixing groups variable structure to match v1
...
Fixes #12418
2015-09-17 10:24:03 -04:00
Abhijit Menon-Sen
349eec7855
Fix missing colon (typo) in IPv6 pattern
2015-09-17 19:34:33 +05:30
Abhijit Menon-Sen
2405861a9e
Use ',' instead of ':' or ';' to separate host patterns
...
The earlier-recommended "pat1:pat2:pat3[x:y]" notation doesn't work well
with IPv6 addresses, so we recommend ',' as a separator instead. We know
that commas can't occur within a pattern, so we can just split on it.
We still have to accept the "foo:bar" notation because it's so commonly
used, but we issue a deprecation warning for it.
Fixes #12296
Closes #12404
Closes #12329
2015-09-17 19:31:16 +05:30
Florian Apolloner
d9f873495e
Ported over #7158 to support SELinux context switches.
2015-09-17 15:03:46 +02:00
Brian Coca
ee840f3029
fixed function signature
2015-09-17 07:47:51 -04:00
Florian Apolloner
decd9e8710
Only use become if the target user difers from the current remote user.
2015-09-17 12:24:16 +02:00
Marius Gedminas
8243954dcd
Python 3: basestring in play_context.py
2015-09-17 08:08:55 +03:00
Toshio Kuratomi
3db8070aa3
Fix urlopen usage to use open_url instead
...
Add a travis test for urlopen usage
2015-09-16 20:40:17 -07:00
James Cammarata
e97d448838
Cleanup one more missed inventory bug
2015-09-16 16:53:08 -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
Chris Church
43b15ab9a4
Merge pull request #12385 from cchurch/winrm_put_empty_file
...
Enable winrm put_file to upload an empty file.
2015-09-16 16:46:01 -04:00
Chris Church
93af0b327f
Merge pull request #12384 from cchurch/powershell_strict_mode
...
Add PowerShell exception handling and turn on strict mode.
2015-09-16 16:45:40 -04:00
Chris Church
0325f92b6a
Merge pull request #12054 from cchurch/winrm_options
...
Support additional options for WinRM connections via inventory variables
2015-09-16 16:39:18 -04:00
Chris Church
c5409ab493
Remove ansible_winrm_ host/port/user/pass options, update exception handling around establishing a winrm connection.
2015-09-16 16:38:19 -04:00
Chris Church
056c6b77d0
Support additional options for WinRM connections via inventory variables.
2015-09-16 16:38:18 -04:00
James Cammarata
11c27078c0
Cleaning up inventory bugs from earlier group change
2015-09-16 16:36:27 -04:00
Chris Church
1d15e8f37a
Pass windows command as-is without splitting/rejoining parameters.
...
* Fixes extra spaces added between parameters from https://github.com/ansible/ansible-modules-core/issues/1929
* Correctly decode PowerShell command encoded as UTF-16-LE so that it displays correctly in debug messages, fixes the other issue from https://github.com/ansible/ansible-modules-core/issues/1929
* Add test to verify that script parameters are passed as-is, so $true is interpreted as a boolean, fixes https://github.com/ansible/ansible/issues/10947
2015-09-16 16:30:10 -04:00
Victor Salgado
54f1560d3e
Fix mutable default argument
2015-09-16 16:49:45 -03:00
James Cammarata
33e79203ce
Merge branch 'quinot-topic/crash_empty_inventory' into devel
2015-09-16 13:15:40 -04:00
James Cammarata
c8f2483d6d
Cleaning up default group creation in inventory parsers
2015-09-16 12:54:54 -04:00
Toshio Kuratomi
30552cf7e9
Fix problems with undefined references to self.display and remove method that's no longer called
2015-09-16 09:27:28 -07:00
James Cammarata
3f8e12d1f7
Merge pull request #12359 from cchurch/fetch_no_fail_on_missing
...
Fix fetch to not fail for missing file when fail_if_missing=False
2015-09-16 11:05:39 -04:00
James Cammarata
4429e7611b
Merge pull request #12382 from AxelDelmas/env_async
...
Added env_string in async_cmd
2015-09-16 11:04:40 -04:00
James Cammarata
e899b8e70d
Merge branch 'topic/crash_empty_inventory' of https://github.com/quinot/ansible into quinot-topic/crash_empty_inventory
2015-09-16 10:08:43 -04:00
James Cammarata
b2848bd25f
Merge pull request #12389 from amenonsen/minus-t
...
Set PlayContext.timeout from the value specified by -T on the command-line
2015-09-16 09:49:39 -04:00
James Cammarata
d91ff0db74
Fixing parent block serialization for blocks
...
Fixes #12395
2015-09-16 09:29:16 -04:00
Thomas Quinot
c005f75469
Always create 'all' group
...
Create 'all' even if host_list is empty, as this group needs to exist
when creating the implicit 'localhost' host.
Fixes #12391
2015-09-16 12:24:06 +02:00
Abhijit Menon-Sen
85bb508f26
Set PlayContext.timeout from the value specified by -T on the command-line
...
Fixes #12372
2015-09-16 08:57:25 +05:30
James Cammarata
2a50957ad8
Fix galaxy install dep failure
...
Also fixes issue where force does not force reinstall of deps
Fixes #10425
2015-09-15 17:31:47 -04:00
Toshio Kuratomi
1a39e32a13
Update core modules ref
2015-09-15 14:26:09 -07:00
Chris Church
6ab4cff7db
Enable winrm put_file to upload an empty file.
2015-09-15 17:21:27 -04:00
Chris Church
5c65ee7f0c
Add PowerShell exception handling and turn on strict mode.
...
* Add exception handling when running PowerShell modules to provide exception message and stack trace.
* Enable strict mode for all PowerShell modules and internal commands.
* Update common PowerShell code to fix strict mode errors.
* Fix an issue with Set-Attr where it would not replace an existing property if already set.
* Add tests for exception handling using modified win_ping modules.
2015-09-15 16:32:35 -04:00
James Cammarata
a1948dd1c1
Merge branch 'bcoca-normalize_plugin_paths' into devel
2015-09-15 14:48:11 -04:00
James Cammarata
a7e1113b26
Removing FIXME comment which is no longer required
2015-09-15 14:47:49 -04:00
James Cammarata
d818a72375
Merge branch 'normalize_plugin_paths' of https://github.com/bcoca/ansible into bcoca-normalize_plugin_paths
2015-09-15 14:41:09 -04:00
Axel Delmas
4802641de7
Added env_string in async_cmd
2015-09-15 20:11:14 +02:00
James Cammarata
60c139e482
Fix logic for changed/failed_when + retry/until loops
...
Fixes #11809
2015-09-15 13:37:35 -04:00
James Cammarata
8e664ad226
Fix delegate_to localhost vs. 127.0.0.1 (and ::1)
2015-09-15 13:08:54 -04:00
James Cammarata
38573c55bf
Tweak failure condition for field attributes expected to be strings
2015-09-15 13:08:40 -04:00
James Cammarata
cfdaec0c22
Make sure string attributes are strings from YAML to avoid bad type conversions
...
Fixes #12367
2015-09-15 12:17:55 -04:00
Brian Coca
b6d6c2e4db
corrected all missing paths changes
2015-09-15 11:57:54 -04:00
Brian Coca
4aea1f6568
normalized plugin paths and names and configs
2015-09-15 11:44:09 -04:00
Brian Coca
02372e9761
Merge pull request #12371 from apollo13/patch-1
...
Remove duplicate SU_PROMPT_LOCALIZATIONS
2015-09-15 09:54:07 -04:00
Florian Apolloner
9334046189
Remove duplicate SU_PROMPT_LOCALIZATIONS
2015-09-15 10:40:25 +02:00
gptech
1c6be7b9ba
Replace 'degug' with 'debug'
...
Tiny typo fix.
2015-09-14 23:21:03 -04:00
Andriy Yurchuk
af213241ab
Fix typo
2015-09-14 21:11:40 +02:00
Brian Coca
e7807c4f2d
Merge pull request #12339 from emonty/feature/openstack-no-log
...
Add no-log parameter to common openstack args
2015-09-14 15:03:09 -04:00
James Cammarata
4f30db8ca5
Check if path is /dev/null when checking if a file is in fact a file
2015-09-14 14:41:22 -04:00
Chris Church
260b9f648c
Fix fetch action plugin to not fail if file is missing and fail_if_missing=False (the default). Add tests to test_fetch role to verify it works as expected.
2015-09-14 14:21:52 -04:00
James Cammarata
feee4613cd
Merge pull request #12357 from apollo13/become_fix
...
Fixed #12356 -- Restored ansible 1.9.x become behavior.
2015-09-14 12:27:45 -04:00
James Cammarata
49ca0eb797
Track local_action internally to prevent it from being overridden
...
Fixes #12053
2015-09-14 12:11:58 -04:00
Florian Apolloner
8182eb3787
Fixed #12356 -- Restored ansible 1.9.x become behavior.
2015-09-14 17:53:14 +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
Monty Taylor
3bdd6793ca
Add no-log parameter to common openstack args
...
These bad boys can contain secret data, so should be marked no-log.
2015-09-13 19:48:37 +02:00
James Cammarata
aa762bb432
Don't split args out unless we're parsing module args using the new style
...
Fixes #12331
2015-09-12 17:50:05 -04:00
James Cammarata
1cb4e0be1c
Fix bug in implicit block squashing where block is not reassigned
...
Fixes #12333
2015-09-12 11:27:30 -04:00
James Cammarata
7deb8bbd1c
Reworking how includes within handlers are run
...
Fixes #12238
2015-09-12 08:46:29 -04:00
Brian Coca
03758151e4
Merge pull request #12330 from cchurch/revert_find_plugin_changes
...
Revert "Fix order of loading of modules."
2015-09-11 20:05:37 -04:00
Brian Coca
9d4d7bd74d
fixed porting bugs in profile_tasks to v2
2015-09-11 16:48:09 -04:00
Chrrrles Paul
ba7734b78b
Merge pull request #12165 from amenonsen/address-parsing
...
Hi @amenonsen - thanks for fixing up the hunting down the unicode bug and expanding test_addresses. The code looks good, merging!-- Be systematic about parsing and validating hostnames and addresses
2015-09-11 15:25:50 -05:00
James Cammarata
4156bcedf5
Fix typo in 049a48f
2015-09-11 15:54:24 -04:00
Chris Church
ed3a9795d4
Revert "Fix order of loading of modules."
...
This reverts commit 4b895f04e3
.
2015-09-11 14:16:30 -04:00
James Cammarata
1243686b90
Submodule update
2015-09-11 13:11:15 -04:00
Abhijit Menon-Sen
049a48f3d3
Test state.tasks_child_state before dereferencing
...
I hit a traceback in the FAILED_TASKS case, but it seemed prudent to add
guards in the other similar branches.
2015-09-11 21:59:08 +05:30
James Cammarata
df89f03627
Fixing precedence order for new nonpersistent vars (set_fact/register)
...
These used to go in vars_cache, so merging them in after that as they
are "live" variables and the user would most likely want to see these
above anything else.
2015-09-11 12:24:44 -04:00
Abhijit Menon-Sen
7479ab47e0
Be stricter about parsing hostname labels
...
Labels must start with an alphanumeric character, may contain
alphanumeric characters or hyphens, but must not end with a hyphen.
We enforce those rules, but allow underscores wherever hyphens are
accepted, and allow alphanumeric ranges anywhere.
We relax the definition of "alphanumeric" to include Unicode characters
even though such inventory hostnames cannot be used in practice unless
an ansible_ssh_host is set for each of them.
We still don't enforce length restrictions—the fact that we have to
accept ranges makes it more complex, and it doesn't seem especially
worthwhile.
2015-09-11 21:47:19 +05:30
Abhijit Menon-Sen
065bb52109
Be systematic about parsing and validating hostnames and addresses
...
This adds a parse_address(pattern) utility function that returns
(host,port), and uses it wherever where we accept IPv4 and IPv6
addresses and hostnames (or host patterns): the inventory parser
the the add_host action plugin.
It also introduces a more extensive set of unit tests that supersedes
the old add_host unit tests (which didn't actually test add_host, but
only the parsing function).
2015-09-11 21:47:18 +05:30
James Cammarata
49803509b4
Make sure include paths are templated before dwim in case they're absolute
...
Fixes #12327
2015-09-11 11:57:43 -04:00
James Cammarata
4cdd9b2a82
Merge pull request #12318 from mgedmin/py3k
...
Python 3: make ansible.template.safe_eval() work
2015-09-11 10:44:37 -04:00
Brian Coca
52f587cac3
Merge pull request #12325 from quinot/topic/wrong_interp_test
...
Test for Python must be against basename of interpreter
2015-09-11 09:47:49 -04:00
James Cammarata
c2115c3715
Re-adding part of 926f127
which was actually fixing #12277
2015-09-11 09:45:27 -04:00
James Cammarata
083aef65ad
Revert "set_fact should put facts in the fact_cache, not vars_cache"
...
This reverts commit 926f127245
.
2015-09-11 09:45:27 -04:00
Thomas Quinot
0bc9223826
Test for Python must be against basename of interpreter
...
Followup on issue #12076
2015-09-11 13:29:34 +02:00
James Cammarata
441a8af671
Merge pull request #12267 from h-hirokawa/add_replacer_jsonargs
...
Add the new module replacer <<INCLUDE_ANSIBLE_MODULE_JSON_ARGS>>.
2015-09-11 02:44:50 -04:00
Marius Gedminas
f91b28ef23
Fix safe_eval() of set literals
...
There was code to support set literals (on Python 2.7 and newer), but it
was buggy: SAFE_NODES.union() doesn't modify SAFE_NODES in place,
instead it returns a new set object that is then silently discarded.
I added a unit test and fixed the code. I also changed the version
check to use sys.version_tuple instead of a string comparison, for
consistency with the subsequent Python 3.4 version check that I added in
the previous commit.
2015-09-11 09:41:05 +03:00
Marius Gedminas
2b73002044
Python 3: make ansible.template.safe_eval() work
...
Two things changed in Python 3.4:
- 'basestring' is no longer defined, so use six.string_types
- True/False are now special AST node types (NamedConstant) rather than
just names
(Good thing we had tests, or I wouldn't have noticed the 2nd thing!)
I found only one place where safe_eval() is called inside the ansible
codebase: in lib/template/__init__.py. The call to safe_eval(result,
...) is protected by result.startswith('...'), which means result cannot
possibly be a byte string on Python 3 (or startswith() would raise, so
six.string_types (which excludes byte strings on Python 3) is fine here.
2015-09-11 09:37:44 +03:00
James Cammarata
0c5bbe3c32
Use the original (un-templated) args for include params
...
Fixes #12314
2015-09-11 00:53:27 -04:00
James Cammarata
292e2da4e1
Fix some bugs related to facts/nonpersistent-facts cache split
...
Fixes #12313
2015-09-10 17:36:39 -04:00
Brian Coca
91c9df2154
added verbosity to ansible-doc to make it easier to trace down issues
2015-09-10 16:50:14 -04:00
James Cammarata
b35529b09f
Submodule pointer update
2015-09-10 15:44:30 -04:00
James Cammarata
95a58d1178
Properly serialize UnsafeProxy objects
...
Required as part of fix for #12123
2015-09-10 14:01:02 -04:00
James Cammarata
a410bf26d3
Wrap registered variables in UnsafeProxy
...
Fixes #12123
2015-09-10 14:01:02 -04:00
Toshio Kuratomi
46bf3d1bc1
Remove plugin._basedirs as we now use different data structures to achieve that functionality.
2015-09-10 10:41:31 -07:00
Jiri tyr
174f805fb3
Resurrection of the comment filter
2015-09-10 14:37:42 +02:00
Marius Gedminas
b95e3d18a7
Python 3: use the right PyYAML SafeRepresenter for unicode
...
PyYAML has a SafeRepresenter in lib/... that defines
def represent_unicode(self, data):
return self.represent_scalar(u'tag:yaml.org,2002:str', data)
and a different SafeRepresenter in lib3/... that defines
def represent_str(self, data):
return self.represent_scalar('tag:yaml.org,2002:str', data)
so the right thing to do on Python 3 is to use represent_str.
(AnsibleUnicode is a subclass of six.text_type, i.e. 'str' on Python 3.)
2015-09-10 08:57:53 +03:00
Benno Joy
6de13c3062
Merge pull request #11818 from Java1Guy/module_utils_ec2_for_ecs
...
change ec2 util to create only requested objects
2015-09-10 11:06:19 +05:30
James Cammarata
ee7905c7e1
Compare include params against deprecated param names too
...
Fixes #12282
2015-09-09 22:15:50 -04:00
James Cammarata
950e067d2f
Merge pull request #12295 from napkindrawing/patch-3
...
Typo in comment: "bsaename" → "basename"
2015-09-09 21:41:13 -04:00
James Cammarata
f576e0f1af
Merge pull request #12300 from robusto/devel
...
Vault missing DataLoader for pwd file #12293
2015-09-09 18:52:31 -04:00
James Cammarata
22639a2a22
Fix mistake in fact setting to nonpersistent cache in VariableManager
...
Fixes #12301
2015-09-09 18:28:39 -04:00
James Cammarata
aa3b290efd
Fix indent on line in playbook executor
2015-09-09 18:10:38 -04:00
Toshio Kuratomi
4b895f04e3
Fix order of loading of modules.
...
Allows ANSIBLE_LIBRARY to overload core modules even if the module in
ANSIBLE_LIBRARY doesn't have a .py extension.
2015-09-09 15:00:26 -07:00
James Cammarata
e81947c3b4
Fix vars_prompt short form support (and mark deprecated)
2015-09-09 17:52:44 -04:00
Blake Atkinson
6062519986
Vault missing DataLoader for pwd file #12293
2015-09-09 15:33:52 -05:00
James Cammarata
be7bd392cb
Fix unreachable host detection and have plays continue after unreachable failures
...
Fixes #12284
2015-09-09 15:27:26 -04:00
Toshio Kuratomi
25c97fff69
Merge pull request #12294 from ansible/fix-password-lookup
...
Fix problem with "=" in the initial file path.
2015-09-09 11:48:30 -07:00
Brian Coca
0dbebfddaa
Revert "remove closing connections after every task, this goes against conneciton caching and was not expected behaviuor nor inhertited from v1"
...
needed for winrm, disabled closing connections in ssh to avoid issues with that persistance, need to normalize all this in future
This reverts commit 23a22397bf
.
2015-09-09 14:21:56 -04:00
Brian Coca
3f0e14c2a0
disabled ssh closing connections
2015-09-09 14:21:46 -04:00
Toshio Kuratomi
e2c49b4ef4
Fix problem with "=" in the initial file path.
2015-09-09 11:14:31 -07:00
James Cammarata
56d7f3889d
Add new level of vars to deal with set_fact/register precedence rules
2015-09-09 12:21:07 -04:00
napkindrawing
172bbac97a
Typo in comment: "bsaename" → "basename"
2015-09-09 11:55:40 -04:00
James Cammarata
926f127245
set_fact should put facts in the fact_cache, not vars_cache
...
Also fixes a template path lookup issue when using an include
Fixes #12277
2015-09-09 11:10:18 -04:00
Toshio Kuratomi
e2e9319f06
Merge pull request #12287 from mgedmin/py3k
...
Python 3: use six.string_types instead of basestring
2015-09-09 01:35:46 -07:00
Toshio Kuratomi
fa2edfa1ef
* Make sure we don't sometimes get byte strings instead of unicode strings
...
* Turn strings into byte strings before passing to shlex and turn them
back into unicode strings after they are retyurned from there
Fixes #12257
2015-09-09 01:24:11 -07:00
Toshio Kuratomi
e67459df86
Fix docstring of parse_value() to be informative
2015-09-09 01:24:11 -07:00
Marius Gedminas
ba0cf42ce9
Python 3: use six.string_types instead of basestring
...
Reduces the number of failing tests from 35 to 17.
2015-09-09 09:25:23 +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
Brian Coca
f1c72a55a5
Merge pull request #12261 from toshywoshy/12169
...
added Manjaro as an Archlinux family
2015-09-08 08:24:01 -04:00
Victor Costan
bd405169fb
Fix #12258 : don't wrap None in UnsafeProxy.
2015-09-08 04:02:04 -04:00
James Cammarata
ac6f61ec7f
Properly handle group/host_var files with dots in them
...
Fixes #12245
2015-09-08 03:20:09 -04:00
James Cammarata
1eb5b42705
Don't double proxy unsafe variables
...
Potential fix for #12260
2015-09-08 02:50:07 -04:00
Gaurav Jain
6c107258fa
Fix rsync connections to IPv6 addresses
...
Similar to https://github.com/ansible/ansible/pull/11816 we can unconditionally
wrap the host address in square brackets. This is required by rsync for IPv6
addresses.
2015-09-06 22:20:45 -07:00
h-hirokawa
cd478a76fc
Add the new module replacer <<INCLUDE_ANSIBLE_MODULE_JSON_ARGS>>.
...
Fixes #12266
2015-09-07 12:01:26 +09:00
Toshio Kuratomi
718812d945
update submodule refs for documentation formatting
2015-09-05 08:56:15 -07:00
Toshio Kuratomi
26e109aa13
Update module refs
2015-09-05 08:27:48 -07:00
Toshaan Bharvani
4702d2be09
added Manjaro as an Archlinux family
2015-09-05 12:49:20 +02: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
James Cammarata
87f75a50ad
Use proxy class to mark variables unsafe for templating
...
Fixes #12191
2015-09-04 16:38:06 -04:00
Toshio Kuratomi
2d251cba45
Merge pull request #12256 from ansible/password-lookup-fix
...
Use parse_kv to correctly parse parameters from password lookup
2015-09-04 12:27:18 -07:00
Toshio Kuratomi
c68e04c185
Use parse_kv to correctly parse parameters from password lookup
...
Fixes https://github.com/ansible/ansible-modules-core/issues/1968
2015-09-04 12:18:46 -07:00
Brian Coca
6e5f3db9de
updated submodule refs
2015-09-04 12:17:34 -04:00
Brian Coca
c17fbf2f12
simplify become testing and handling, we had drifted and were doulbe checking prompt, become and become_pass
...
fixed tests to conform to new signature and now tests both with and w/o password
now we are more explicit about self.prompt
2015-09-04 10:36:16 -04:00
Brian Coca
eb0e7e198b
remove closing connections after every task, this goes against conneciton caching and was not expected behaviuor nor inhertited from v1
2015-09-04 10:36:15 -04:00
Marius Gedminas
37be9539ff
Python 3: use six.text_type instead of unicode
...
Replace 'unicode' with six.text_type, everywhere but in module_utils.
2015-09-04 08:40:10 +03:00
James Cammarata
1840906f74
Merge pull request #12236 from amenonsen/ssh-cpdir
...
Go back to using ~/.ansible/cp as the ControlPath
2015-09-03 21:12:45 -04:00
Toshio Kuratomi
e218bf8da9
Do not escape backslashes when processing a template file.
...
Fixes #12198
Fixes #12241
2015-09-03 17:45:17 -07:00