summaryrefslogtreecommitdiff
path: root/database
diff options
context:
space:
mode:
authorSaurabh Sharma <saurabhpysharma@gmail.com>2016-08-09 01:06:18 +0530
committerToshio Kuratomi <a.badger@gmail.com>2016-08-08 12:36:18 -0700
commitfcee7d08b30d23a40afdf68274387b4e5d508b42 (patch)
tree0913cd024c36a7325d8b85df9b65e7a1499c2119 /database
parent5d7b46e0ddb7f55f1dbc6f69b973f1bcd385102d (diff)
downloadansible-modules-core-fcee7d08b30d23a40afdf68274387b4e5d508b42.tar.gz
error handling for importing non-existent db. Fixes ##2068 (#3617)
* error handling for importing non-existent db * creating db on import state and suitable message on deleting db * handling all possible cases when db exists/not-exists
Diffstat (limited to 'database')
-rw-r--r--database/mysql/mysql_db.py39
1 files changed, 37 insertions, 2 deletions
diff --git a/database/mysql/mysql_db.py b/database/mysql/mysql_db.py
index e6351fc9..f5ff1c95 100644
--- a/database/mysql/mysql_db.py
+++ b/database/mysql/mysql_db.py
@@ -302,13 +302,15 @@ def main():
if db_exists(cursor, db):
if state == "absent":
if module.check_mode:
- changed = True
+ module.exit_json(changed=True, db=db)
else:
try:
changed = db_delete(cursor, db)
except Exception:
e = get_exception()
module.fail_json(msg="error deleting database: " + str(e))
+ module.exit_json(changed=changed, db=db)
+
elif state == "dump":
if module.check_mode:
module.exit_json(changed=True, db=db)
@@ -320,6 +322,7 @@ def main():
module.fail_json(msg="%s" % stderr)
else:
module.exit_json(changed=True, db=db, msg=stdout)
+
elif state == "import":
if module.check_mode:
module.exit_json(changed=True, db=db)
@@ -331,6 +334,12 @@ def main():
module.fail_json(msg="%s" % stderr)
else:
module.exit_json(changed=True, db=db, msg=stdout)
+
+ elif state == "present":
+ if module.check_mode:
+ module.exit_json(changed=False, db=db)
+ module.exit_json(changed=False, db=db)
+
else:
if state == "present":
if module.check_mode:
@@ -341,8 +350,34 @@ def main():
except Exception:
e = get_exception()
module.fail_json(msg="error creating database: " + str(e))
+ module.exit_json(changed=changed, db=db)
- module.exit_json(changed=changed, db=db)
+ elif state == "import":
+ if module.check_mode:
+ module.exit_json(changed=True, db=db)
+ else:
+ try:
+ changed = db_create(cursor, db, encoding, collation)
+ if changed:
+ rc, stdout, stderr = db_import(module, login_host, login_user,
+ login_password, db, target, all_databases,
+ login_port, config_file, socket, ssl_cert, ssl_key, ssl_ca)
+ if rc != 0:
+ module.fail_json(msg="%s" % stderr)
+ else:
+ module.exit_json(changed=True, db=db, msg=stdout)
+ except Exception, e:
+ module.fail_json(msg="error creating database: " + str(e))
+
+ elif state == "absent":
+ if module.check_mode:
+ module.exit_json(changed=False, db=db)
+ module.exit_json(changed=False, db=db)
+
+ elif state == "dump":
+ if module.check_mode:
+ module.exit_json(changed=False, db=db)
+ module.fail_json(msg="Cannot dump database %s - not found" % (db))
# import module snippets
from ansible.module_utils.basic import *