2957a8de44
Use mysql_variable to query, set and update variables. Assert using user and password to query, set and update variables. Assert using single quotes, double quotes and no quotes when using variables
202 lines
No EOL
7.3 KiB
YAML
202 lines
No EOL
7.3 KiB
YAML
# test code for the mysql_variables module
|
|
# (c) 2014, Wayne Rosario <wrosario@ansible.com>
|
|
|
|
# This file is part of Ansible
|
|
#
|
|
# Ansible is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Ansible is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
# ============================================================
|
|
# Verify mysql_variable successfully queries a variable
|
|
#
|
|
- set_fact: set_name='version'
|
|
|
|
- name: read mysql variables (expect changed=false)
|
|
mysql_variables: variable={{set_name}}
|
|
register: result
|
|
|
|
- include: assert_var_output.yml changed=false output={{result}} var_name={{set_name}}
|
|
|
|
# ============================================================
|
|
# Verify mysql_variable successfully updates a variable (issue:4568)
|
|
#
|
|
- set_fact:
|
|
set_name: 'delay_key_write'
|
|
set_value: 'ON'
|
|
|
|
- name: set mysql variable
|
|
mysql_variables: variable={{set_name}} value={{set_value}}
|
|
|
|
- name: update mysql variable to same value (expect changed=false)
|
|
mysql_variables: variable={{set_name}} value={{set_value}}
|
|
register: result
|
|
|
|
- include: assert_var.yml changed=false output={{result}} var_name={{set_name}} var_value={{set_value}}
|
|
|
|
# ============================================================
|
|
# Verify mysql_variable successfully updates a variable using single quotes
|
|
#
|
|
- set_fact:
|
|
set_name: 'wait_timeout'
|
|
set_value: '300'
|
|
|
|
- name: set mysql variable to a temp value
|
|
mysql_variables: variable={{set_name}} value='200'
|
|
|
|
- name: update mysql variable value (expect changed=true)
|
|
mysql_variables: variable={{set_name}} value={{set_value}}
|
|
register: result
|
|
|
|
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
|
|
|
# ============================================================
|
|
# Verify mysql_variable successfully updates a variable using double quotes
|
|
#
|
|
- set_fact:
|
|
set_name: "wait_timeout"
|
|
set_value: "400"
|
|
|
|
- name: set mysql variable to a temp value
|
|
mysql_variables: variable={{set_name}} value="200"
|
|
|
|
- name: update mysql variable value (expect changed=true)
|
|
mysql_variables: variable={{set_name}} value={{set_value}}
|
|
register: result
|
|
|
|
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
|
|
|
# ============================================================
|
|
# Verify mysql_variable successfully updates a variable using no quotes
|
|
#
|
|
- set_fact:
|
|
set_name: wait_timeout
|
|
set_value: 500
|
|
|
|
- name: set mysql variable to a temp value
|
|
mysql_variables: variable={{set_name}} value=200
|
|
|
|
- name: update mysql variable value (expect changed=true)
|
|
mysql_variables: variable={{set_name}} value={{set_value}}
|
|
register: result
|
|
|
|
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
|
|
|
# ============================================================
|
|
# Verify mysql_variable successfully updates a variable using an expression (e.g. 1024*4)
|
|
#
|
|
- name: set mysql variable value to an expression
|
|
mysql_variables: variable=max_tmp_tables value="1024*4"
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- include: assert_fail_msg.yml output={{result}} msg='Incorrect argument type to variable'
|
|
|
|
# ============================================================
|
|
# Verify mysql_variable fails when setting an incorrect value (out of range)
|
|
#
|
|
- name: set mysql variable value to a number out of range
|
|
mysql_variables: variable=max_tmp_tables value=-1
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- include: assert_fail_msg.yml output={{result}} msg='Truncated incorrect'
|
|
|
|
# ============================================================
|
|
# Verify mysql_variable fails when setting an incorrect value (incorrect type)
|
|
#
|
|
- name: set mysql variable value to a non-valid value number
|
|
mysql_variables: variable=max_tmp_tables value=TEST
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- include: assert_fail_msg.yml output={{result}} msg='Incorrect argument type to variable'
|
|
|
|
# ============================================================
|
|
# Verify mysql_variable fails when setting an unknown variable
|
|
#
|
|
- name: set a non mysql variable
|
|
mysql_variables: variable=my_sql_variable value=ON
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- include: assert_fail_msg.yml output={{result}} msg='Variable not available'
|
|
|
|
# ============================================================
|
|
# Verify mysql_variable fails when setting a read-only variable
|
|
#
|
|
- name: set value of a read only mysql variable
|
|
mysql_variables: variable=character_set_system value=utf16
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- include: assert_fail_msg.yml output={{result}} msg='read only variable'
|
|
|
|
#=============================================================
|
|
# Verify mysql_variable works with the login_user and login_password parameters
|
|
#
|
|
- name: create mysql user
|
|
mysql_user: name={{user}} password={{password}} state=present priv=*.*:ALL
|
|
|
|
- set_fact:
|
|
set_name: wait_timeout
|
|
set_value: 77
|
|
|
|
- name: query mysql_variable using login_user and password_password
|
|
mysql_variables: variable={{set_name}} login_user={{user}} login_password={{password}}
|
|
register: result
|
|
|
|
- include: assert_var_output.yml changed=false output={{result}} var_name={{set_name}}
|
|
|
|
- name: set mysql variable to temp value using user login and password (expect changed=true)
|
|
mysql_variables: variable={{set_name}} value=20 login_user={{user}} login_password={{password}}
|
|
register: result
|
|
|
|
- name: update mysql variable value using user login and password (expect changed=true)
|
|
mysql_variables: variable={{set_name}} value={{set_value}} login_user={{user}} login_password={{password}}
|
|
register: result
|
|
|
|
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
|
|
|
#============================================================
|
|
# Verify mysql_variable fails with an incorrect login_password parameter
|
|
#
|
|
- set_fact:
|
|
set_name: connect_timeout
|
|
set_value: 10
|
|
|
|
- name: query mysql_variable using incorrect login_password
|
|
mysql_variables: variable={{set_name}} login_user={{user}} login_password=wrongpassword
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- include: assert_fail_msg.yml output={{result}} msg='unable to connect to database'
|
|
|
|
- name: update mysql variable value using incorrect login_password (expect failed=true)
|
|
mysql_variables: variable={{set_name}} value={{set_value}} login_user={{user}} login_password='this is an incorrect password'
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- include: assert_fail_msg.yml output={{result}} msg='unable to connect to database'
|
|
|
|
- name: remove mysql_user {{user}}
|
|
mysql_user: name={{user}} state=absent
|
|
|
|
#============================================================
|
|
# Verify mysql_variable fails with an incorrect login_host parameter
|
|
#
|
|
- name: query mysql_variable using incorrect login_host
|
|
mysql_variables: variable=wait_timeout login_host=12.0.0.9
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- include: assert_fail_msg.yml output={{result}} msg='unable to connect to database' |