mirror of
https://github.com/ansible-collections/community.mysql.git
synced 2025-08-03 20:54:25 -07:00
Refactor test_mysql_user to work with other host than localhost
This commit is contained in:
parent
978676a6dc
commit
9da866a7bf
27 changed files with 675 additions and 758 deletions
|
@ -1,3 +1,4 @@
|
|||
---
|
||||
####################################################################
|
||||
# WARNING: These are designed specifically for Ansible tests #
|
||||
# and should not be used as examples of how to write Ansible roles #
|
||||
|
@ -29,7 +30,7 @@
|
|||
mysql_parameters: &mysql_params
|
||||
login_user: '{{ mysql_user }}'
|
||||
login_password: '{{ mysql_password }}'
|
||||
login_host: '{{ gateway_addr }}'
|
||||
login_host: '{{ mysql_host }}'
|
||||
login_port: '{{ mysql_primary_port }}'
|
||||
|
||||
block:
|
||||
|
@ -38,74 +39,14 @@
|
|||
|
||||
- include: issue-28.yml
|
||||
|
||||
- include: create_user.yml user_name={{ user_name_1 }} user_password={{ user_password_1 }}
|
||||
- include: test_resource_limits.yml
|
||||
|
||||
- include: resource_limits.yml
|
||||
|
||||
- include: assert_user.yml user_name={{ user_name_1 }}
|
||||
|
||||
- include: remove_user.yml user_name={{ user_name_1 }} user_password={{ user_password_1 }}
|
||||
|
||||
- include: assert_no_user.yml user_name={{ user_name_1 }}
|
||||
|
||||
# ============================================================
|
||||
# Create mysql user that already exist on mysql database
|
||||
#
|
||||
- include: create_user.yml user_name={{ user_name_1 }} user_password={{ user_password_1 }}
|
||||
|
||||
- name: create mysql user that already exist (expect changed=false)
|
||||
mysql_user:
|
||||
<<: *mysql_params
|
||||
name: "{{ user_name_1 }}"
|
||||
password: "{{ user_password_1 }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- name: assert output message mysql user was not created
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
|
||||
# ============================================================
|
||||
# remove mysql user and verify user is removed from mysql database
|
||||
#
|
||||
- name: remove mysql user state=absent (expect changed=true)
|
||||
mysql_user:
|
||||
<<: *mysql_params
|
||||
name: "{{ user_name_1 }}"
|
||||
password: "{{ user_password_1 }}"
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- name: assert output message mysql user was removed
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- include: assert_no_user.yml user_name={{ user_name_1 }}
|
||||
|
||||
# ============================================================
|
||||
# remove mysql user that does not exist on mysql database
|
||||
#
|
||||
- name: remove mysql user that does not exist state=absent (expect changed=false)
|
||||
mysql_user:
|
||||
<<: *mysql_params
|
||||
name: "{{ user_name_1 }}"
|
||||
password: "{{ user_password_1 }}"
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- name: assert output message mysql user that does not exist
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
|
||||
- include: assert_no_user.yml user_name={{user_name_1}}
|
||||
- include: test_idempotency.yml
|
||||
|
||||
# ============================================================
|
||||
# Create user with no privileges and verify default privileges are assign
|
||||
#
|
||||
- name: create user with select privilege state=present (expect changed=true)
|
||||
- name: create user with DEFAULT privilege state=present (expect changed=true)
|
||||
mysql_user:
|
||||
<<: *mysql_params
|
||||
name: "{{ user_name_1 }}"
|
||||
|
@ -113,16 +54,16 @@
|
|||
state: present
|
||||
register: result
|
||||
|
||||
- include: assert_user.yml user_name={{ user_name_1 }} priv=USAGE
|
||||
- include: utils_assert_user.yml user_name={{ user_name_1 }} user_host=localhost priv=USAGE
|
||||
|
||||
- include: remove_user.yml user_name={{ user_name_1 }} user_password={{ user_password_1 }}
|
||||
- include: utils_remove_user.yml user_name={{ user_name_1 }}
|
||||
|
||||
- include: assert_no_user.yml user_name={{ user_name_1 }}
|
||||
- include: utils_assert_no_user.yml user_name={{ user_name_1 }}
|
||||
|
||||
# ============================================================
|
||||
# Create user with select privileges and verify select privileges are assign
|
||||
#
|
||||
- name: create user with select privilege state=present (expect changed=true)
|
||||
- name: Create user with SELECT privilege state=present (expect changed=true)
|
||||
mysql_user:
|
||||
<<: *mysql_params
|
||||
name: "{{ user_name_2 }}"
|
||||
|
@ -131,16 +72,16 @@
|
|||
priv: '*.*:SELECT'
|
||||
register: result
|
||||
|
||||
- include: assert_user.yml user_name={{user_name_2}} priv=SELECT
|
||||
- include: utils_assert_user.yml user_name={{ user_name_2 }} user_host=localhost priv=SELECT
|
||||
|
||||
- include: remove_user.yml user_name={{ user_name_2 }} user_password={{ user_password_2 }}
|
||||
- include: utils_remove_user.yml user_name={{ user_name_2 }}
|
||||
|
||||
- include: assert_no_user.yml user_name={{ user_name_2 }}
|
||||
- include: utils_assert_no_user.yml user_name={{ user_name_2 }}
|
||||
|
||||
# ============================================================
|
||||
# Assert user has access to multiple databases
|
||||
#
|
||||
- name: give users access to multiple databases
|
||||
- name: Give users access to multiple databases
|
||||
mysql_user:
|
||||
<<: *mysql_params
|
||||
name: '{{ item[0] }}'
|
||||
|
@ -148,34 +89,34 @@
|
|||
append_privs: yes
|
||||
password: '{{ user_password_1 }}'
|
||||
with_nested:
|
||||
- [ '{{ user_name_1 }}', '{{ user_name_2 }}']
|
||||
- ['{{ user_name_1 }}', '{{ user_name_2 }}']
|
||||
- "{{db_names}}"
|
||||
|
||||
- name: show grants access for user1 on multiple database
|
||||
- name: Show grants access for user1 on multiple database
|
||||
command: "{{ mysql_command }} -e \"SHOW GRANTS FOR '{{ user_name_1 }}'@'localhost'\""
|
||||
register: result
|
||||
|
||||
- name: assert grant access for user1 on multiple database
|
||||
- name: Assert grant access for user1 on multiple database
|
||||
assert:
|
||||
that:
|
||||
- "'{{ item }}' in result.stdout"
|
||||
with_items: "{{db_names}}"
|
||||
with_items: "{{ db_names }}"
|
||||
|
||||
- name: show grants access for user2 on multiple database
|
||||
- name: Show grants access for user2 on multiple database
|
||||
command: "{{ mysql_command }} -e \"SHOW GRANTS FOR '{{ user_name_2 }}'@'localhost'\""
|
||||
register: result
|
||||
|
||||
- name: assert grant access for user2 on multiple database
|
||||
- name: Assert grant access for user2 on multiple database
|
||||
assert:
|
||||
that:
|
||||
- "'{{ item }}' in result.stdout"
|
||||
with_items: "{{db_names}}"
|
||||
|
||||
- include: remove_user.yml user_name={{user_name_1}} user_password={{ user_password_1 }}
|
||||
- include: utils_remove_user.yml user_name={{ user_name_1 }}
|
||||
|
||||
- include: remove_user.yml user_name={{user_name_2}} user_password={{ user_password_1 }}
|
||||
- include: utils_remove_user.yml user_name={{ user_name_2 }}
|
||||
|
||||
- name: give user access to database via wildcard
|
||||
- name: Give user SELECT access to database via wildcard
|
||||
mysql_user:
|
||||
<<: *mysql_params
|
||||
name: '{{ user_name_1 }}'
|
||||
|
@ -183,7 +124,7 @@
|
|||
append_privs: yes
|
||||
password: '{{ user_password_1 }}'
|
||||
|
||||
- name: show grants access for user1 on multiple database
|
||||
- name: show grants access for user1 on database via wildcard
|
||||
command: "{{ mysql_command }} -e \"SHOW GRANTS FOR '{{ user_name_1 }}'@'localhost'\""
|
||||
register: result
|
||||
|
||||
|
@ -198,8 +139,8 @@
|
|||
<<: *mysql_params
|
||||
name: '{{ user_name_1 }}'
|
||||
priv:
|
||||
- unsuitable
|
||||
- type
|
||||
- unsuitable
|
||||
- type
|
||||
append_privs: yes
|
||||
host_all: yes
|
||||
password: '{{ user_password_1 }}'
|
||||
|
@ -212,7 +153,7 @@
|
|||
- result is failed
|
||||
- result.msg is search('priv parameter must be str or dict')
|
||||
|
||||
- name: change user access to database via wildcard
|
||||
- name: Change SELECT to INSERT for user access to database via wildcard
|
||||
mysql_user:
|
||||
<<: *mysql_params
|
||||
name: '{{ user_name_1 }}'
|
||||
|
@ -221,7 +162,7 @@
|
|||
host_all: yes
|
||||
password: '{{ user_password_1 }}'
|
||||
|
||||
- name: show grants access for user1 on multiple database
|
||||
- name: show grants access for user1 on database via wildcard
|
||||
command: "{{ mysql_command }} -e \"SHOW GRANTS FOR '{{ user_name_1 }}'@'localhost'\""
|
||||
register: result
|
||||
|
||||
|
@ -231,7 +172,7 @@
|
|||
- "'%db' in result.stdout"
|
||||
- "'INSERT' in result.stdout"
|
||||
|
||||
- include: remove_user.yml user_name={{user_name_1}} user_password={{ user_password_1 }}
|
||||
- include: utils_remove_user.yml user_name={{user_name_1}}
|
||||
|
||||
# ============================================================
|
||||
# Test plaintext and encrypted password scenarios.
|
||||
|
@ -283,7 +224,7 @@
|
|||
- issue_465
|
||||
|
||||
# Tests for the TLS requires dictionary
|
||||
- include: tls_requirements.yml
|
||||
- include: test_tls_requirements.yml
|
||||
|
||||
- import_tasks: issue-29511.yaml
|
||||
tags:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue