mysql_db: add config_overrides_defaults parameter (#513)

* mysql_db: add config_overrides_defaults parameter

* Add CI tests

* Add changelog fragment

* add more tests

* improve tests

* fix CI

* fix feature
This commit is contained in:
Andrew Klychkov 2020-06-18 11:24:23 +03:00 committed by GitHub
parent 25123eafc7
commit 1d1f7ec582
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 114 additions and 7 deletions

View file

@ -0,0 +1,71 @@
- set_fact:
db_to_create=testdb1
config_file="/root/.my1.cnf"
fake_port=9999
fake_host="blahblah.local"
- name: Create custom config file
shell: 'echo "[client]" > {{ config_file }}'
- name: Add fake port to config file
shell: 'echo "port = {{ fake_port }}" >> {{ config_file }}'
- name: Create database using fake port to connect to, must fail
mysql_db:
name: '{{ db_to_create }}'
state: present
check_implicit_admin: yes
config_file: '{{ config_file }}'
config_overrides_defaults: yes
ignore_errors: yes
register: result
- name: Must fail because login_port default has beed overriden by wrong value from config file
assert:
that:
- result is failed
- result.msg is search("unable to connect to database")
- name: Create database using default port
mysql_db:
name: '{{ db_to_create }}'
state: present
check_implicit_admin: yes
config_file: '{{ config_file }}'
config_overrides_defaults: no
login_unix_socket: '{{ mysql_socket }}'
register: result
- name: Must not fail because of the default of login_port is correct
assert:
that:
- result is changed
- name: Reinit custom config file
shell: 'echo "[client]" > {{ config_file }}'
- name: Add fake host to config file
shell: 'echo "host = {{ fake_host }}" >> {{ config_file }}'
- name: Remove database using fake login_host
mysql_db:
name: '{{ db_to_create }}'
state: absent
config_file: '{{ config_file }}'
config_overrides_defaults: yes
register: result
ignore_errors: yes
- name: Must fail because login_host default has beed overriden by wrong value from config file
assert:
that:
- result is failed
- result.msg is search("Can't connect to MySQL server on '{{ fake_host }}'")
# Clean up
- name: Remove test db
mysql_db:
name: '{{ db_to_create }}'
state: absent
check_implicit_admin: yes
login_unix_socket: '{{ mysql_socket }}'

View file

@ -258,3 +258,6 @@
- include: multi_db_create_delete.yml
- include: encoding_dump_import.yml file=latin1.sql format_msg_type=ASCII
- include: config_overrides_defaults.yml
when: ansible_python.version_info[0] >= 3