diff --git a/database/mysql/mysql_db.py b/database/mysql/mysql_db.py index 4c32d4065ee..37cccba11dc 100644 --- a/database/mysql/mysql_db.py +++ b/database/mysql/mysql_db.py @@ -226,7 +226,8 @@ def main(): ssl_ca=dict(default=None), connect_timeout=dict(default=30, type='int'), config_file=dict(default="~/.my.cnf"), - ) + ), + supports_check_mode=True ) if not mysqldb_found: @@ -280,32 +281,44 @@ def main(): config_file = None if db_exists(cursor, db): if state == "absent": - try: - changed = db_delete(cursor, db) - except Exception, e: - module.fail_json(msg="error deleting database: " + str(e)) + if module.check_mode: + changed = True + else: + try: + changed = db_delete(cursor, db) + except Exception, e: + module.fail_json(msg="error deleting database: " + str(e)) elif state == "dump": - rc, stdout, stderr = db_dump(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) + if module.check_mode: + module.exit_json(changed=True, db=db) else: - module.exit_json(changed=True, db=db, msg=stdout) + rc, stdout, stderr = db_dump(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) elif state == "import": - 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) + if module.check_mode: + module.exit_json(changed=True, db=db) else: - module.exit_json(changed=True, db=db, msg=stdout) + 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) else: if state == "present": - try: - changed = db_create(cursor, db, encoding, collation) - except Exception, e: - module.fail_json(msg="error creating database: " + str(e)) + if module.check_mode: + changed = True + else: + try: + changed = db_create(cursor, db, encoding, collation) + except Exception, e: + module.fail_json(msg="error creating database: " + str(e)) module.exit_json(changed=changed, db=db)