diff options
author | hyperized <gerben@hyperized.net> | 2016-04-12 11:33:58 +0200 |
---|---|---|
committer | René Moser <mail@renemoser.net> | 2016-04-12 11:33:58 +0200 |
commit | eb1cb94380281d114f84c571551fa164c2c18a09 (patch) | |
tree | 8d4f2a73f045d26748556d36a25ea855385bc403 /database/mysql/mysql_db.py | |
parent | 738e62e4499a5aadae640742ca2ec6327848bcff (diff) | |
download | ansible-modules-core-eb1cb94380281d114f84c571551fa164c2c18a09.tar.gz |
Add single_transaction and quick options to MySQL DB module (#3402)
Diffstat (limited to 'database/mysql/mysql_db.py')
-rw-r--r-- | database/mysql/mysql_db.py | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/database/mysql/mysql_db.py b/database/mysql/mysql_db.py index 96fc65a8..ebdd1e00 100644 --- a/database/mysql/mysql_db.py +++ b/database/mysql/mysql_db.py @@ -56,6 +56,18 @@ options: - Location, on the remote host, of the dump file to read from or write to. Uncompressed SQL files (C(.sql)) as well as bzip2 (C(.bz2)), gzip (C(.gz)) and xz (Added in 2.0) compressed files are supported. required: false + single_transaction: + description: + - Execute the dump in a single transaction + required: false + default: false + version_added: "2.1" + quick: + description: + - Option used for dumping large tables + required: false + default: false + version_added: "2.1" author: "Ansible Core Team" requirements: - mysql (command line binary) @@ -105,7 +117,7 @@ def db_delete(cursor, db): cursor.execute(query) return True -def db_dump(module, host, user, password, db_name, target, all_databases, port, config_file, socket=None, ssl_cert=None, ssl_key=None, ssl_ca=None): +def db_dump(module, host, user, password, db_name, target, all_databases, port, config_file, socket=None, ssl_cert=None, ssl_key=None, ssl_ca=None, single_transaction=None, quick=None): cmd = module.get_bin_path('mysqldump', True) # If defined, mysqldump demands --defaults-extra-file be the first option if config_file: @@ -129,6 +141,10 @@ def db_dump(module, host, user, password, db_name, target, all_databases, port, cmd += " --all-databases" else: cmd += " %s" % pipes.quote(db_name) + if single_transaction: + cmd += " --single-transaction=true" + if quick: + cmd += " --quick" path = None if os.path.splitext(target)[-1] == '.gz': @@ -231,6 +247,8 @@ def main(): ssl_ca=dict(default=None, type='path'), connect_timeout=dict(default=30, type='int'), config_file=dict(default="~/.my.cnf", type='path'), + single_transaction=dict(default=False, type='bool'), + quick=dict(default=False, type='bool'), ), supports_check_mode=True ) @@ -255,6 +273,8 @@ def main(): login_password = module.params["login_password"] login_user = module.params["login_user"] login_host = module.params["login_host"] + single_transaction = module.params["single_transaction"] + quick = module.params["quick"] if state in ['dump','import']: if target is None: |