diff --git a/plugins/modules/mysql_query.py b/plugins/modules/mysql_query.py index 0101c20..cacca2d 100644 --- a/plugins/modules/mysql_query.py +++ b/plugins/modules/mysql_query.py @@ -20,8 +20,7 @@ options: query: description: - SQL query to run. Multiple queries can be passed using YAML list syntax. - type: list - elements: str + type: raw required: yes positional_args: description: @@ -123,7 +122,7 @@ DDL_QUERY_KEYWORDS = ('CREATE', 'DROP', 'ALTER', 'RENAME', 'TRUNCATE') def main(): argument_spec = mysql_common_argument_spec() argument_spec.update( - query=dict(type='list', elements='str', required=True), + query=dict(type='raw', required=True), login_db=dict(type='str'), positional_args=dict(type='list'), named_args=dict(type='dict'), @@ -183,6 +182,9 @@ def main(): query_result = [] executed_queries = [] rowcount = [] + if isinstance(query, str): + query = [query] + for q in query: try: cursor.execute(q, arguments) diff --git a/tests/integration/targets/test_mysql_query/defaults/main.yml b/tests/integration/targets/test_mysql_query/defaults/main.yml index 5b92aae..51a3bd7 100644 --- a/tests/integration/targets/test_mysql_query/defaults/main.yml +++ b/tests/integration/targets/test_mysql_query/defaults/main.yml @@ -6,6 +6,7 @@ db_name: data test_db: testdb test_table1: test1 test_table2: test2 +test_table3: test3 test_script_path: /tmp/test.sql user_name_1: 'db_user1' diff --git a/tests/integration/targets/test_mysql_query/tasks/mysql_query_initial.yml b/tests/integration/targets/test_mysql_query/tasks/mysql_query_initial.yml index f9efdc6..f9d2843 100644 --- a/tests/integration/targets/test_mysql_query/tasks/mysql_query_initial.yml +++ b/tests/integration/targets/test_mysql_query/tasks/mysql_query_initial.yml @@ -238,6 +238,20 @@ that: - result.rowcount == [0] + - name: Create {{ test_table3 }} + mysql_query: + <<: *mysql_params + login_db: '{{ test_db }}' + query: 'CREATE TABLE {{ test_table3 }} (id int, story text)' + register: result + + - name: Select from {{ test_table3 }} + mysql_query: + <<: *mysql_params + login_db: '{{ test_db }}' + query: 'SELECT id, story FROM {{ test_table3 }}' + register: result + - name: Drop db {{ test_db }} mysql_query: <<: *mysql_params