initial commit of boundary_meter module
made changes as requested by mpdehaan and added code to remove key and cert pem files on removal of meter
fixup appearances of config_directory, remove slash, remove hardcoded /etc/bprobe
as per mpdehaan, change string formatting to something that will work with python 2.4
Adding getstr mode to download an object into a variable
Only revoke GRANT OPTION when user actually has it

When revoking privileges from a user, the GRANT OPTION is always
revoked, even if the user doesn't have it. If the user exists, this
doesn't give an error, but if the user doesn't exist, it does:

mysql> GRANT ALL ON test.* TO 'test'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> REVOKE GRANT OPTION ON test.* FROM 'test'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> REVOKE GRANT OPTION ON test.* FROM 'test'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> REVOKE ALL ON test.* FROM 'test'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> REVOKE GRANT OPTION ON test.* FROM 'test'@'localhost';
ERROR 1141 (42000): There is no such grant defined for user 'test' on
host 'localhost'

Additionally, in MySQL 5.6 this breaks replication because of
http://bugs.mysql.com/bug.php?id=68892.

Rather than revoking the GRANT OPTION and catching the error, check if
the user actually has it and only revoke it when he does.
Pacman module: recursive remove support
fix: if a path is symlink and trying to chmod, OSError Exception will be raised.
changed apikey and apiid to api_key and api_id and noted that it is boundary tags not ansible tags as per mpdehaan
stringify conditional before handing it to Jinja2 for evaluation.

This should fix simple conditionals like:

    when: ansible_selinux

While here add tests for ansible.utils.check_conditional() in
"jinja2_compare mode".
ansible-playbook can load extra vars from a file, with "@" syntax
Updated documentation.
Update docs and example for injecting files.
Add example with multiple files.
Fix nested loop for more than 3 elements
- combine flatten list for each nested level instead once at the end
Fix pkgin search (yielding wrong results under certain conditions, see inline comments).
Fix playbook-local host_vars when running from .

Since ansible 1.2, it became possible to place a host_vars
directory in the same directory as a playbook, making it possible
to keep host_vars local to that playbook there. However, due to
python's os.path.dirname, a action such as:

 $ ansible-playbook pb.yml

..would not pick up the host_vars as os.path.dirname("pb.yml")
returns "", unlike the unix command dirname that would return
".". Substituting "pb.yml" on the command line with "./pb.yml"
would do the trick, but is not always intuitive. This patch
solves the problem until python solves issue18547 [1].

[1] http://bugs.python.org/issue18547
Wrong target for link?

Came to here from http://www.ansibleworks.com/docs/bestpractices.html, but I think the link here meant to go to https://github.com/ansible/ansible-examples and not https://github.com/ansible/ansible-examples/tree/master/language_features?
apt_key: Add 'keyring' parameter

The apt-key command takes an optional --keyring parameter representing
the path to a specific GPG keyring to operate on. If it's not given,
the command operates on all keyring files, i.e., /etc/apt/trusted.gpg
and /etc/apt/trusted.gpg.d/*.gpg.

This change adds a 'keyring' parameter to the apt_key module and
propagates it down to the apt-key command line. The main use case this
supports is organizing keys for third-party repos into individual
keyrings in /etc/apt/trusted.gpg.d, rather than putting them all in
the default keyring.
Made Linode inventory module much faster.

Listing no longer makes an API request for every node.