Commit graph

29 commits

Author SHA1 Message Date
Bernhard Weitzhofer
770680180b 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
8456cb8e52 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
c485cb3700 Remove some tab/space issues in previous commits. 2013-02-26 20:30:33 -05:00
Rodney Quillo
3bf088c084 Fix tabs/spaces. 2013-02-24 15:10:57 +08:00
Rodney Quillo
621eb5eccc Add postgresql_db and postgresql_use checkmode. 2013-02-20 22:12:25 +08:00
Lorin Hochstein
eac339e98a Add documentation about PUBLIC user 2013-02-18 22:59:51 -05:00
Lorin Hochstein
4a90e2b50a 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
02f531c609 remove quotes in has_table_privilege and has_database_privilege 2013-01-05 19:31:31 +01:00
Félix Sipma
cd7fe9875c use double-quotes in postgresql commands (fix bug with "-") 2013-01-04 12:48:29 +01:00
Daniel Hokka Zakrisson
11b64314df Select all fields from the user, as some of them are version-dependent 2012-12-05 09:51:40 +01:00
Jan-Piet Mens
caf003c813 DOCUMENTATION strings 2012-11-21 18:49:30 +01:00
Michael DeHaan
663a8fef3f chmod -x for all module files in source checkout 2012-11-19 13:47:40 -05:00
Michael DeHaan
c0747b7baa pep8 fixes 2012-10-30 20:42:07 -04:00
Jan-Piet Mens
feab57e270 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
4104478abd 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
37bdefae74 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
754888d896 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
e30e9a74c2 Added DOCUMENTATION to postgresql_user module. 2012-09-29 16:46:30 +02:00
Lorin Hochstein
b3b01bb7a3 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
8360f9f46c added support for custom port definition 2012-09-05 18:18:30 +02:00
Pepe Barbe
6d473df324 Typo 2012-08-22 12:19:55 -05:00
Pepe Barbe
af5d67c496 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
95169b75c4 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
4e833cf506 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
3dd2c0700f Syntax change to make module compatible with Python 2.4 2012-08-17 10:37:02 -05:00
Michael DeHaan
7e9e29011e 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
0a3ebdb6d5 Module consistency and make daisy chaining work with invalid arguments detection. 2012-08-01 00:22:02 -04:00
Lorin Hochstein
dcd214a631 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
def1fa23f8 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