From 4e8f72a158c0976a15caa1b6cfdc1eb5572dc9f4 Mon Sep 17 00:00:00 2001
From: Rodney Quillo <imcocoy@gmail.com>
Date: Wed, 20 Feb 2013 22:12:25 +0800
Subject: [PATCH 1/2] Add postgresql_db and postgresql_use checkmode.

---
 postgresql_db   | 13 ++++++++++++-
 postgresql_user | 21 ++++++++++++++++++++-
 2 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/postgresql_db b/postgresql_db
index 2c658c24ed4..73ec8160fb7 100644
--- a/postgresql_db
+++ b/postgresql_db
@@ -59,6 +59,11 @@ options:
       - Encoding of the database
     required: false
     default: null
+  encoding:
+    description:
+      - Encoding of the database
+    required: false
+    default: null
   state:
     description:
       - The database state
@@ -143,7 +148,8 @@ def main():
             template=dict(default=""),
             encoding=dict(default=""),
             state=dict(default="present", choices=["absent", "present"]),
-        )
+        ),
+	supports_check_mode = True
     )
 
     if not postgresqldb_found:
@@ -182,10 +188,15 @@ def main():
         module.fail_json(msg="unable to connect to database: %s" % e)
 
     try:
+        if module.check_mode:
+            module.exit_json(changed=True,db=db)
+
         if state == "absent":
             changed = db_delete(cursor, db)
+
         elif state == "present":
             changed = db_create(cursor, db, owner, template, encoding)
+
     except Exception, e:
         module.fail_json(msg="Database query failed: %s" % e)
 
diff --git a/postgresql_user b/postgresql_user
index b381bea52cd..16d4fe9ce74 100644
--- a/postgresql_user
+++ b/postgresql_user
@@ -375,8 +375,10 @@ def main():
             port=dict(default='5432'),
             fail_on_user=dict(default='yes'),
             role_attr_flags=dict(default='')
-        )
+        ),
+	supports_check_mode = True
     )
+
     user = module.params["user"]
     password = module.params["password"]
     state = module.params["state"]
@@ -412,17 +414,34 @@ def main():
     kw = dict(user=user)
     changed = False
     user_removed = False
+        
     if state == "present":
+
         if user_exists(cursor, user):
+            if  module.check_mode:  
+    	        kw['changed'] = True 
+                module.exit_json(**kw)
+
             changed = user_alter(cursor, user, password, role_attr_flags)
         else:
             if password is None:
                 msg = "password parameter required when adding a user"
                 module.fail_json(msg=msg)
+
+            if  module.check_mode:  
+    	        kw['changed'] = True 
+                module.exit_json(**kw)
+
             changed = user_add(cursor, user, password, role_attr_flags)
         changed = grant_privileges(cursor, user, privs) or changed
     else:
+
         if user_exists(cursor, user):
+            if  module.check_mode:  
+    	        kw['changed'] = True 
+                kw['user_removed'] = True 
+                module.exit_json(**kw)
+
             changed = revoke_privileges(cursor, user, privs)
             user_removed = user_delete(cursor, user)
             changed = changed or user_removed

From c23fbe4f503cb7d0acd2944f6dcc1a8bc24d8244 Mon Sep 17 00:00:00 2001
From: Rodney Quillo <imcocoy@gmail.com>
Date: Sun, 24 Feb 2013 15:10:57 +0800
Subject: [PATCH 2/2] Fix tabs/spaces.

---
 postgresql_user | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/postgresql_user b/postgresql_user
index 16d4fe9ce74..2191a37f540 100644
--- a/postgresql_user
+++ b/postgresql_user
@@ -419,7 +419,7 @@ def main():
 
         if user_exists(cursor, user):
             if  module.check_mode:  
-    	        kw['changed'] = True 
+		kw['changed'] = True 
                 module.exit_json(**kw)
 
             changed = user_alter(cursor, user, password, role_attr_flags)
@@ -429,7 +429,7 @@ def main():
                 module.fail_json(msg=msg)
 
             if  module.check_mode:  
-    	        kw['changed'] = True 
+		kw['changed'] = True 
                 module.exit_json(**kw)
 
             changed = user_add(cursor, user, password, role_attr_flags)
@@ -438,7 +438,7 @@ def main():
 
         if user_exists(cursor, user):
             if  module.check_mode:  
-    	        kw['changed'] = True 
+		kw['changed'] = True 
                 kw['user_removed'] = True 
                 module.exit_json(**kw)