This makes the Serf inventory plugin use the `SERF_RPC_ADDR` and
`SERF_RPC_AUTH` environment variables that the `serf` command-line tool
already uses.
These can be used to get Serf data from a remote node instead of
requiring the ansible control host to be running a serf agent and to be
a member of the serf cluster.
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.