Commit graph

11759 commits

Author SHA1 Message Date
Monty Taylor
4012272fa2 Add common auth handling across openstack modules
Taking a page out of the ec2 config, make sure that all of the
OpenStack modules handle the inbound auth config in the same way.
The one outlier is keystone wrt auth_url.
2014-08-04 20:55:30 -07:00
Monty Taylor
efb989a50c Consume standard OpenStack environment settings
The OpenStack client utilities consume a set of input environment
variables for things like username and auth_url, so it's very
common for OpenStack users to have such settings set in their
environment. Indeed, things like devstack also output a shell file
to be sourced to set them. Although in a playbook it's entirely
expected that variables should be used to pass in system settings
like api passwords, for ad-hoc command line usage, needing to pass
in five parameters which are almost certainly in the environment
already reduces the utility.

Grab the environment variables and inject them as default. Special care
is taken to ensure that in the case where the values are not found, the
behavior of which parameters are required is not altered.
2014-08-04 20:52:29 -07:00
James Cammarata
7fd2d1c3df Merge branch 'fix_eip_regression' of https://github.com/jsmartin/ansible into jsmartin-fix_eip_regression 2014-08-04 22:48:46 -05:00
Michael DeHaan
4e6685d772 Merge pull request #8442 from Jmainguy/rpm_key_8424
Removed max 8192 bytes, fixes #8424
2014-08-04 21:18:46 -04:00
Jonathan Mainguy
150feb69d4 Removed max 8192 bytes, fixes #8424 2014-08-04 20:55:49 -04:00
Michael DeHaan
8646cc7988 Merge pull request #8440 from jsmartin/asg_docfix
Updated docs for health_check_type parameter.
2014-08-04 16:39:24 -04:00
James Cammarata
5d0bb33ede Make run_command process communication smarter
The run_command module function will now poll stdout/stderr for
data rather than using the builtin command communicate(), which can
hang under certain circumstances.

Fixes #7452
Fixes #7748
Fixes #8163
2014-08-04 15:32:41 -05:00
James Martin
3a15feec13 Updated docs for health_check_type parameter. 2014-08-04 13:25:41 -07:00
James Martin
c8cc089de2 Fixes a regression in 1453f7b013 that would causes unecessary wait_timeouts in certain module operations when a given IP address could not be found. Now wait_timeouts are only active during address associations of newly provisioned EIPs.
Cleanup and comment of main().

s Added wait timeout.
2014-08-04 12:21:28 -07:00
James Cammarata
74cbeb1292 Default interface type to ipv4 when checking flags for Solaris
Fixes #8330
2014-08-04 13:36:37 -05:00
Michael DeHaan
bc2099b1ab Merge pull request #8402 from lukesneeringer/gce-inventory-envvars
Envirionment variable support in GCE inventory plugin.
2014-08-04 14:29:40 -04:00
Michael DeHaan
ec8ff9ce42 Merge pull request #8415 from ebargtuo/patch-1
Fix a typo in gem module documentation
2014-08-04 14:22:30 -04:00
Michael DeHaan
542aa496fc Merge pull request #8409 from Jmainguy/hostname_8339
Fixes issue #8339 where Scientific Linux incorrectly tries to use Fedora...
2014-08-04 14:14:22 -04:00
James Cammarata
bd49a835b4 Atomically move known hosts file into place when edited by paramiko connections
Fixes #8169
2014-08-04 13:08:40 -05:00
James Laska
d202616213 Merge pull request #8426 from jlaska/update_integration_Makefile
Include unicode and var_precedence tests in 'all' target
2014-08-04 13:42:01 -04:00
James Laska
b40f1ddc19 Require python-crypto >= 2.6 for debian package builds
The ansible PyPi package, and RPM both require crypto>=2.6.  This change
carries that dependency into the ansible DEB package.  Note, for
ubuntu-12.04, this dependency is only satisfied by a PPA.  Users
installing from 'ppa:ansible/ansible' will not be affected..
2014-08-04 13:17:25 -04:00
Michael DeHaan
7ff63ab754 Revert "Use atomic move function on known host file in paramiko to prevent rare occurance of Control-C"
This reverts commit 642b183fb6.
2014-08-04 13:11:40 -04:00
James Cammarata
af0d8cda7b Fix literal block multiline parsing
Fixes #8394
2014-08-04 11:10:07 -05:00
Michael DeHaan
07bb7e5a3b Revert ""allow_no_value=True" for ini_file module so /etc/my.cnf can be read without a problem"
This reverts commit cbdc9f1153.

Code needs to make allowances for particular python versions and try/except
around this block.
2014-08-04 11:49:55 -04:00
James Cammarata
6d94ae64ec Remove unnecessary unicode conversions from parse_kv
Fixes #8425
2014-08-04 09:59:08 -05:00
Michael DeHaan
642b183fb6 Use atomic move function on known host file in paramiko to prevent rare occurance of Control-C
during file operations.
2014-08-04 10:50:14 -04:00
Michael DeHaan
a7d2e729f8 Add some whitespace to make paramiko_ssh more browseable 2014-08-04 10:38:16 -04:00
Michael DeHaan
24f6f656cc Merge branch 'bug8392' of git://github.com/gnosek/ansible into devel 2014-08-04 10:22:29 -04:00
James Laska
d4a78dc951 Include unicode and var_precedence tests in 'all' target 2014-08-04 09:50:30 -04:00
Michael DeHaan
c5f92597e4 Add version_added attribute for regexp parameter. 2014-08-04 07:51:29 -04:00
Takeharu Oshida
972b06ee5d Escape "_" in database name for "SHOW DATABASES" statement 2014-08-04 20:15:58 +09:00
Will Thames
cc59760ac9 Improved handling of already terminated instances
It is possible to create an instance, terminate the instance and then
attempt to recreate the instance with the same parameters. In this case
`ec2.run_instances` returns a reservation list containing the instance ids
but the logic gets stuck waiting for the instance to exist in the call to
`ec2.get_all_instances`, even if wait is no).
2014-08-04 11:58:57 +10:00
Monty Taylor
f3357099a7 Pass region_name to nova_keypair
Again, on things with regions, when we're configuring it, we should
actually pass it in to the compute constructor.
2014-08-03 10:43:39 -07:00
Monty Taylor
b81a37ad9b Rename nova filters to include and exclude
jeblair says: "having 'flavor_filter' be inclusive, and 'image_filter'
be exclusive is kind of mind blowing" and I agree. Let's be more
explicit.
2014-08-03 09:21:14 -07:00
Monty Taylor
38beae3b19 Add nova config drive support
Config drive can be enabled on nova by passing config_drive=True.
That's a pretty easy feature to support.
2014-08-03 09:05:45 -07:00
ebargtuo
76aae48ea6 Fix a typo in gem module documentation 2014-08-03 14:52:24 +02:00
Monty Taylor
a05804bf8d Update the nova inventory plugin with new ip code
The provisioning module knows more about how nova deals with IP
addresses now. Ensure that the inventory module is similarly as smart
by separating out the logic into the openstack/module_utils.
2014-08-02 22:31:27 -07:00
Monty Taylor
a12086f1bf Update existing nova instances with current ip
During the state check, check IP address information. This gets us
two things. The most obvious is that for direct IP management, a
change to the config will reflect in the config of the instance. But
also, if we succeed in creating the instance but fail in adding an IP,
this should let us re-run and arrive in the state we were expecting.
2014-08-02 21:13:17 -07:00
Monty Taylor
c6975552d7 Cleaned up nova_compute documentation
Added version_added tags as well as a few more examples.
2014-08-02 20:45:35 -07:00
Monty Taylor
b80be42ed9 Add ability to filter on image and flavor names
The fun part about having multiple vendors providing the same cloud
is that while their APIs are the same, what they do with their metadata
tends to be ... fun. So in order to be able to express sanely what you
want without needing to stick tons of unreadable uuids in your config,
it turns out what sometimes you need to further filter image and flavor
names. Specific examples are (deprecated) images in HP Cloud and the
Standard and Performance flavors on Rackspace.
2014-08-02 20:31:31 -07:00
Monty Taylor
65adb6465b Specify nova image and flavor by name
Putting uuid and numberic identifies in playbooks is fragile, especially
with cloud providers who change them out from under you. Asking for
Ubuntu 14.04 is consistent, the UUID associated with that is not. Add
mutually exclusive parameters to allow for specifying images by name and
flavors by RAM amount.
2014-08-02 18:51:27 -07:00
Monty Taylor
3fe1083192 Use mutually exclusive on nova floating ip params
ansible knows how to deal with mutually exclusive parameters, so
instead of coding that ourselves, use it.
2014-08-02 18:26:23 -07:00
Monty Taylor
d17a1b5c19 Add common auth handling across openstack modules
Taking a page out of the ec2 config, make sure that all of the
OpenStack modules handle the inbound auth config in the same way.
The one outlier is keystone wrt auth_url.
2014-08-02 17:39:19 -07:00
Monty Taylor
ac420fd483 Consume standard OpenStack environment settings
The OpenStack client utilities consume a set of input environment
variables for things like username and auth_url, so it's very
common for OpenStack users to have such settings set in their
environment. Indeed, things like devstack also output a shell file
to be sourced to set them. Although in a playbook it's entirely
expected that variables should be used to pass in system settings
like api passwords, for ad-hoc command line usage, needing to pass
in five parameters which are almost certainly in the environment
already reduces the utility.

Grab the environment variables and inject them as default. Special care
is taken to ensure that in the case where the values are not found, the
behavior of which parameters are required is not altered.
2014-08-02 17:39:19 -07:00
Monty Taylor
2611246b89 Cleanup in nova after a failed floating ip
There is a potential leak of resources if there is somehow a failure
adding a floating ip to a server. Clean up after ourselves.
2014-08-02 17:39:19 -07:00
Monty Taylor
6045923cab Find IPs on OpenStack clouds without floating-ips
The floating-ip extension, while pretty ubiquitous, is not a
foregone conclusion. Specifically, Rackspace, while also
served by the rax module, is a valid OpenStack cloud and can
be interacted with directly via nova interfaces.

Add support for determining public and private IPs for
OpenStack clouds that don't use floating ips by reading
the public and private keys from the addresses dict.
2014-08-02 17:39:15 -07:00
Monty Taylor
1e0e7a6b28 Add support for nova availability zones
If a cloud has availability zone support, it's possible to specify
an availability zone via the nova client. Add that as a config param.
2014-08-02 17:15:15 -07:00
Monty Taylor
8938222029 Pass through nova region name
If the region name is specified in the config, we need to pass it
in to the nova client constructor. Since key_name is similarly optional,
go ahead and handle both parameters the same.
2014-08-02 17:15:15 -07:00
Monty Taylor
10a50b4a61 Split nova floating-ip pool logic
The desires around getting a floating ip associated with a pool and
getting a floating ip not associated with a pool is just different
enough that following it as one set of nested ifs is tricky. Split
the function into two, one for the pool and one for the non-pool logic.
2014-08-02 17:15:15 -07:00
CaptTofu
6da266f64c Added floating IP functionality to nova_compute 2014-08-02 17:15:15 -07:00
Jonathan Mainguy
c0966eee7c Fixes issue #8339 where Scientific Linux incorrectly tries to use FedoraStrategy of hostnamectl 2014-08-02 15:38:52 -04:00
Michael DeHaan
b9a5242f03 Merge pull request #8405 from wenottingham/patch-2
Update version.
2014-08-02 10:33:12 -04:00
Michael DeHaan
d49f8c28df Merge pull request #8400 from nicocesar/devel
"allow_no_value=True" for ini_file module
2014-08-02 10:24:56 -04:00
Michael DeHaan
a88dc7a26a Merge pull request #8398 from wrosario/integration_mysql_variables
Adding test Coverage for mysql_variable module
2014-08-02 10:24:16 -04:00
Michael DeHaan
78ee3b4a59 Merge pull request #8397 from lukesneeringer/gce-envvars
Add support for environment variables in GCE module.
2014-08-02 10:23:35 -04:00