Commit graph

30 commits

Author SHA1 Message Date
Michael DeHaan
cd97a4cb14 Allow modules to be categorized, and also sort them when generating the documentation. 2013-04-28 15:03:45 -04:00
Bernhard Weitzhofer
95f1cf0adf Use psycopg2's string handling to escape password string
This allows the password to contain single quotes and should make it safe to
use randomly generated passwords (provided passwords can be represented in the
connection encoding).
2013-04-08 08:38:35 +02:00
Bernhard Weitzhofer
4efe71a1da postgresql_user: fix docstrings
Change documentation of "state" param to refer to user (role) state instead of
database state.

Change 2 function docstrings to reflect the code
2013-04-01 13:56:37 +02:00
Michael DeHaan
6a7d30d2c2 Remove some tab/space issues in previous commits. 2013-02-26 20:30:33 -05:00
Rodney Quillo
c23fbe4f50 Fix tabs/spaces. 2013-02-24 15:10:57 +08:00
Rodney Quillo
4e8f72a158 Add postgresql_db and postgresql_use checkmode. 2013-02-20 22:12:25 +08:00
Lorin Hochstein
a9dfc40c51 Add documentation about PUBLIC user 2013-02-18 22:59:51 -05:00
Lorin Hochstein
6952d16979 postgresql_user: Add support for PUBLIC
This change enables users to add and remove permissions to all roles,
using the PUBLIC user. This is equivalent to using the PUBLIC keyword
in GRANT and DENY postgres SQL commands.

For example, see: <http://www.postgresql.org/docs/current/interactive/sql-grant.html>

Fixes #1833
2013-02-18 21:33:36 -05:00
Félix Sipma
329b2c63d9 remove quotes in has_table_privilege and has_database_privilege 2013-01-05 19:31:31 +01:00
Félix Sipma
cc4be53dd4 use double-quotes in postgresql commands (fix bug with "-") 2013-01-04 12:48:29 +01:00
Daniel Hokka Zakrisson
686d5440ce Select all fields from the user, as some of them are version-dependent 2012-12-05 09:51:40 +01:00
Jan-Piet Mens
d184f72aa9 DOCUMENTATION strings 2012-11-21 18:49:30 +01:00
Michael DeHaan
6f6559670f chmod -x for all module files in source checkout 2012-11-19 13:47:40 -05:00
Michael DeHaan
8d3f73d562 pep8 fixes 2012-10-30 20:42:07 -04:00
Jan-Piet Mens
d069c57974 Reformat code: examples consistently
- added terse syntax to modules.rst
 - added description of special variables to template module
2012-10-23 15:14:01 +02:00
Michael DeHaan
565688dea2 Added 'script', a module that can push and insantly run a remote script. Replaces the need to copy+command.
This is a bit of a rough draft, some error handling still needs to be added.
2012-10-20 12:12:07 -04:00
Jeremiah Heller
e99c12460b add role_attr_flags parameter to postgresql_user
Pass role_attr_flags a list of comma separated role
attributes when creating or updating a user.
2012-10-15 16:03:10 -07:00
Jan-Piet Mens
eef198144f DOCUMENTATION for fetch,mount,ohai,easy_install
- .rst now supresses default if none is set (looks better in HTML)
  - .rst now handles empty options list
  - Fixed postgresql_user and mysql_user because YAML contained colons
  - docs for facter
2012-09-30 12:29:32 +02:00
Marco Vito Moscaritolo
babb2454c6 Added DOCUMENTATION to postgresql_user module. 2012-09-29 16:46:30 +02:00
Lorin Hochstein
9eb12a2b81 Fix postgresql_user bug
If I create a database from scratch and assign permissions by doing:

      - name: ensure database is created
        action: postgresql_db db=$dbname

      - name: ensure django user has access
        action: postgresql_user db=$dbname user=$dbuser priv=ALL password=$dbpassword

Then it fails with the error:

  File "/tmp/ansible-1347048449.32-29998829936529/postgresql_user", line 565, in <module>
    main()
  File "/tmp/ansible-1347048449.32-29998829936529/postgresql_user", line 273, in main
    changed = grant_privileges(cursor, user, privs) or changed
  File "/tmp/ansible-1347048449.32-29998829936529/postgresql_user", line 174, in grant_privileges
    changed = grant_func(cursor, user, name, privilege)\
  File "/tmp/ansible-1347048449.32-29998829936529/postgresql_user", line 132, in grant_database_privilege
    prev_priv = get_database_privileges(cursor, user, db)
  File "/tmp/ansible-1347048449.32-29998829936529/postgresql_user", line 118, in get_database_privileges
    r = re.search('%s=(C?T?c?)/[a-z]+\,?' % user, datacl)
  File "/usr/lib/python2.7/re.py", line 142, in search
    return _compile(pattern, flags).search(string)
TypeError: expected string or buffer

This fix fixes the problem by not executing the regex if the
db query on pg_database returns None.
2012-09-07 16:24:00 -04:00
Piotr Kweclich
41fde07e98 added support for custom port definition 2012-09-05 18:18:30 +02:00
Pepe Barbe
9e275529d6 Typo 2012-08-22 12:19:55 -05:00
Pepe Barbe
511ab8697c Query for all active privileges instead
Use a different method to query for current 
privileges at the table and database level. 
This method is more robust if newer privileges 
are added in future versions and also supports the 
ALL wildcard.
2012-08-22 10:04:58 -05:00
Pepe Barbe
a7e1ca6a6f Add fail_on_user option
fail_on_user option can be used to ignore silently
if the user cannot be removed because of remaining
privilege dependencies to other objects in the 
database. By default it will fail, so that this new 
behavior won't surprise unsuspecting users.
2012-08-22 10:04:58 -05:00
Pepe Barbe
384839bfe1 Initial commit of change of semantics for module
The postgresql_user module has several drawbacks:
* No granularity for privileges
* PostgreSQL semantics force working on one
  database at time, at least for Tables. Which
  means that a single call can't remove all the 
  privileges for a user, and a user can't be
  removed until all the privileges are removed, 
  forcing a module failure with no way to 
  work around the issue.

Changes:
* Added the ability to specify granular privileges
  for database and tables within the database
* Report if user was removed, and add an option to 
  disable failing if user is not removed.
2012-08-22 10:04:57 -05:00
Pepe Barbe
35e27fe1b2 Syntax change to make module compatible with Python 2.4 2012-08-17 10:37:02 -05:00
Michael DeHaan
baacde6c74 Add encoding lines to python modules such that they can take unicode options if they are fed them, since the
AnsibleModule stuff no longer base64 encodes for simplicity and speed reasons.
2012-08-02 21:29:10 -04:00
Michael DeHaan
fe9a05f492 Module consistency and make daisy chaining work with invalid arguments detection. 2012-08-01 00:22:02 -04:00
Lorin Hochstein
ac02b85aad Use standard argument names in PostgreSQL modules
passwd -> password
loginpass -> login_password
loginuser -> login_user
loginhost -> login_host

Add an example playbook that shows how to use the modules.
2012-07-29 12:52:14 -04:00
Lorin Hochstein
ed9227f406 Add postgresql_db and postgresql_user module.
These modules are based on the mysql_db and mysql_user modules.

Currently, the postgresql_user module can only grant all permissions
on a database, fine-grained access has not been implemented yet.
2012-07-26 17:05:04 -04:00