This fix resolves an issue on EL6 systems where there may be multiple versions
of pycrypto installed. EPEL provides both `python-crypto` and
`python-crypto2.6`. These packages are co-installable. However, modules
importing the `Crypto` library must specify which version to use, otherwise the
default will be used.
This change follows the same pattern established in `bin/ansible` for
specifying python library requirements.
Current code has sys.exit(1) at the end of the codepath for the
options --help, --list and --host. These are not error conditions
so should be returning 0 for success, not 1 which is EPERM i.e.
"Operation not permitted". Newer Vagrant versions examine the exit
codes from subprocesses and interpret this as a failure.
When the error reason is "Forbidden", the code throws a Python exception
rather than simply outputting the exception reason.
It's not nice to throw a Python exception when all the info to display
a proper message is available.
This inventory module is based on the shade library like the new os_
modules. It shares the ability to configure itself from os-client-config
configuration files or from the standard OS_ environment variables.
More importantly the guts of the code to get the server vars is now
shared with os_compute_facts. This means that playbooks that provision
compute hosts and then want to run plays on them can refer to server
variables in exactly the same way whether the provsioning play ran first
or whether the play ran in the context of a pre-existing inventory.
- Adds to changes from #6676 to support nested VPC group and VPC grouping for RDS.
- Adds to changes from #8822 to ignore invalid instance filters.
- Implements grouping by AMI ID based on #7573.
- Implements configuration options to limit which groups are created automatically, based on #7573.
Submission includes support for
- creating and registering services and checks
- reading, writing and lookup for values in consul's kv store
- creating and manipulating sessions for distributed locking on values in the kv
- creating and manipulating ACLs for restricting access to the kv store
- inventory support that reads the Consul catalog and group nodes according to
- datacenters
- exposed services
- service availability
- arbitrary groupings from the kv store
This submission makes extensive use of the python-consul library and this is required
as a dependency and can be installed from pip.
The tests were written to target a vagrant cluster which can be setup by following the
instructions here http://github.com/sgargan/consul-vagrant
Put them in separate sections of config to make it more clear what is
essential and what is not. Also comment out the optional settings.
And remove duplicate mention of `service_type`.
- auth_system
- region_name
- service_type
These are config settings that could be left out in many scenarios, but
the current code is requiring them. In particular, "service_type" is a
new one in PR #7444 so if we add that and don't set a default, then
existing .ini files won't work:
```
File
"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ConfigParser.py",
line 618, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'service_type' in section:
'openstack'
```
This allows filtering out EC2 instances based on various different
filters including tags. As requested in 7480 it supports logical "OR"
instead of "AND" on the provided list of filters.
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.
fixed vmware properties, was getting parent's properties
cache now actually works
removed tags, they were not the ones i was looking for
renamed cache defaults fixed ini file to match
- auth_system
- region_name
These are config settings that could be left out in many scenarios, but
the current code is requiring them. With this in place, I can get by
with this minimal .ini file:
```ini
[openstack]
version=1.1
auth_url=http://{keystone_host}:5000/v2.0
project_id=web
username={username}
api_key={password}
```