diff options
author | Saurabh Sharma <saurabhpysharma@gmail.com> | 2016-08-09 01:06:18 +0530 |
---|---|---|
committer | Toshio Kuratomi <a.badger@gmail.com> | 2016-08-08 12:36:18 -0700 |
commit | fcee7d08b30d23a40afdf68274387b4e5d508b42 (patch) | |
tree | 0913cd024c36a7325d8b85df9b65e7a1499c2119 /database | |
parent | 5d7b46e0ddb7f55f1dbc6f69b973f1bcd385102d (diff) | |
download | ansible-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.py | 39 |
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 * |