Simple module to install Perl libraries via cpanm.

cpanm is a popular alternative to the CPAN client for installing Perl
libraries.  Unfortunately it can't uninstall already installed module, so it
can't handle states.
Add the `mirror` option and verify if a package is already installed.

By default, the cpanm client will use a default mirror to download
libraries, but it's possible for the end user to pass a different URL.

Since ansible favorite idempotence when possible, we verify if the
module is already installed before running the cpanm client.

Another minor additional change, the `notest` option is now a boolean.
Alias name to pkg.
changing permissions of modules to 0644
Made URL an optional parameter
use new airbrake API URL
Optionally unarchive a file already on the remote machine
properly convert arg into boolean
If there is no tmp_src, don't modify the args
debconf package
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
fixed typo for showing diff
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
and it was supposed to be a dict
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
corrected indentation and now handles non existing previous key (not
just changed existing)

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
did some minor refactoring on docs and fixed spelling mistakes (thanks
Mikhail)
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
corrected my grammar (again Mikhail)

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
making pylint happier

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
postgresql_user module: Gracefully handle ALTER ROLE on read-only postgres servers.
Fix postgresql_user to understand PG namespaces

Previously postgresql_user quoted user supplied identifers to create
grant statements that look like this:

    GRANT SELECT on "tablename" to "user";

Which only works if the tablename is not in a namespace.  If you supply
a namespaced tabelname like "report.revenue" then it creates this
incorrect statement:

    GRANT SELECT on "report.revenue" to "user";

Which will not find the "revenue" table in the "report" namespace, but
will rather look for a table named "report.revenue" in the current
(default public) namespace.  The correct form is:

    GRANT SELECT on "report"."revenue" to "user";

This approach could have the unfortunate effect that code that
previously relied on the other behavior to grant privileges on tables
with periods in their names may now break.  PostgreSQL users
typically shouldn't name tables as such, and users can still access the
old behavior and use tablenames with periods in the if they must by
supplying their own quoting.
bugfix: support path separators in module path

As described by http://docs.ansible.com/intro_configuration.html#library the library supports multiple paths to load modules from. 

Currently `setup.py` treats something like `/usr/share/ansible:/my/custom/modules` as a single directory name and results in the installed modules not being on the module path. (instead they are in a directory named `/usr/share/ansible:/my/custom/modules`) 

This commit simply takes the first listed directory as the install directory for the core modules.
apt: fixed pkg=<name>=<version> fails if package is not yet installed.

Reported and patch provided by https://github.com/msolo. Closes GH-5625.