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
This commit is contained in:
Saurabh Sharma 2016-08-09 01:06:18 +05:30 committed by Toshio Kuratomi
parent 5d7b46e0dd
commit fcee7d08b3

View file

@ -302,13 +302,15 @@ def main():
if db_exists(cursor, db): if db_exists(cursor, db):
if state == "absent": if state == "absent":
if module.check_mode: if module.check_mode:
changed = True module.exit_json(changed=True, db=db)
else: else:
try: try:
changed = db_delete(cursor, db) changed = db_delete(cursor, db)
except Exception: except Exception:
e = get_exception() e = get_exception()
module.fail_json(msg="error deleting database: " + str(e)) module.fail_json(msg="error deleting database: " + str(e))
module.exit_json(changed=changed, db=db)
elif state == "dump": elif state == "dump":
if module.check_mode: if module.check_mode:
module.exit_json(changed=True, db=db) module.exit_json(changed=True, db=db)
@ -320,6 +322,7 @@ def main():
module.fail_json(msg="%s" % stderr) module.fail_json(msg="%s" % stderr)
else: else:
module.exit_json(changed=True, db=db, msg=stdout) module.exit_json(changed=True, db=db, msg=stdout)
elif state == "import": elif state == "import":
if module.check_mode: if module.check_mode:
module.exit_json(changed=True, db=db) module.exit_json(changed=True, db=db)
@ -331,6 +334,12 @@ def main():
module.fail_json(msg="%s" % stderr) module.fail_json(msg="%s" % stderr)
else: else:
module.exit_json(changed=True, db=db, msg=stdout) 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: else:
if state == "present": if state == "present":
if module.check_mode: if module.check_mode:
@ -341,9 +350,35 @@ def main():
except Exception: except Exception:
e = get_exception() e = get_exception()
module.fail_json(msg="error creating database: " + str(e)) 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 # import module snippets
from ansible.module_utils.basic import * from ansible.module_utils.basic import *
from ansible.module_utils.database import * from ansible.module_utils.database import *