mirror of
https://github.com/ansible-collections/community.mysql.git
synced 2025-07-22 04:40:23 -07:00
Add MAX_STATEMENT_TIME resource limit (#523)
* Add MAX_STATEMENT_TIME to resource_limits * Move version check for resource_limits to implementations
This commit is contained in:
parent
21e42b5777
commit
526e674e6f
6 changed files with 177 additions and 29 deletions
|
@ -129,4 +129,151 @@
|
|||
that:
|
||||
- result.rowcount[0] == 1
|
||||
|
||||
- name: Resource limits | Drop mysql user {{ user_name_1 }} if exists
|
||||
community.mysql.mysql_user:
|
||||
<<: *mysql_params
|
||||
name: '{{ user_name_1 }}'
|
||||
host_all: true
|
||||
state: absent
|
||||
|
||||
- name: Resource limits | Create mysql user {{ user_name_1 }} with MAX_STATEMENT_TIME in check_mode
|
||||
community.mysql.mysql_user:
|
||||
<<: *mysql_params
|
||||
name: '{{ user_name_1 }}'
|
||||
password: '{{ user_password_1 }}'
|
||||
state: present
|
||||
resource_limits:
|
||||
MAX_QUERIES_PER_HOUR: 10
|
||||
MAX_STATEMENT_TIME: 1
|
||||
check_mode: true
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
- name: Resource limits | Assert that create user with MAX_STATEMENT_TIME is changed for mariadb
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- result is changed
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Assert that create user with MAX_STATEMENT_TIME is failed for mysql
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- result is failed
|
||||
when: db_engine == 'mysql'
|
||||
|
||||
- name: Resource limits | Create mysql user {{ user_name_1 }} with MAX_STATEMENT_TIME in actual mode
|
||||
community.mysql.mysql_user:
|
||||
<<: *mysql_params
|
||||
name: '{{ user_name_1 }}'
|
||||
password: '{{ user_password_1 }}'
|
||||
state: present
|
||||
resource_limits:
|
||||
MAX_QUERIES_PER_HOUR: 10
|
||||
MAX_STATEMENT_TIME: 1
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
- name: Resource limits | Assert that create user with MAX_STATEMENT_TIME is changed for MariaDB
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- result is changed
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Assert that create user with MAX_STATEMENT_TIME is failed for MySQL
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- result is failed
|
||||
when: db_engine == 'mysql'
|
||||
|
||||
- name: Resource limits | Retrieve user with MAX_STATEMENT_TIME
|
||||
community.mysql.mysql_query:
|
||||
<<: *mysql_params
|
||||
query: >
|
||||
SELECT User FROM mysql.user
|
||||
WHERE User = '{{ user_name_1 }}'
|
||||
AND Host = 'localhost'
|
||||
AND max_questions = 10
|
||||
AND max_statement_time = 1
|
||||
register: result
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Assert that rowcount is 1 with MAX_STATEMENT_TIME
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- result.rowcount[0] == 1
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Try to set the same limits with MAX_STATEMENT_TIME again in check mode
|
||||
community.mysql.mysql_user:
|
||||
<<: *mysql_params
|
||||
name: '{{ user_name_1 }}'
|
||||
password: '{{ user_password_1 }}'
|
||||
state: present
|
||||
resource_limits:
|
||||
MAX_QUERIES_PER_HOUR: 10
|
||||
MAX_STATEMENT_TIME: 1
|
||||
check_mode: true
|
||||
register: result
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Assert that set same limits with MAX_STATEMENT_TIME again is not changed
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- result is not changed
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Try to set the same limits with MAX_STATEMENT_TIME again in actual mode
|
||||
community.mysql.mysql_user:
|
||||
<<: *mysql_params
|
||||
name: '{{ user_name_1 }}'
|
||||
password: '{{ user_password_1 }}'
|
||||
state: present
|
||||
resource_limits:
|
||||
MAX_QUERIES_PER_HOUR: 10
|
||||
MAX_STATEMENT_TIME: 1
|
||||
register: result
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Assert that set same limits with MAX_STATEMENT_TIME again in actual mode is not changed
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- result is not changed
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Change limits with MAX_STATEMENT_TIME
|
||||
community.mysql.mysql_user:
|
||||
<<: *mysql_params
|
||||
name: '{{ user_name_1 }}'
|
||||
password: '{{ user_password_1 }}'
|
||||
state: present
|
||||
resource_limits:
|
||||
MAX_QUERIES_PER_HOUR: 5
|
||||
MAX_STATEMENT_TIME: 2
|
||||
register: result
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Assert limits with MAX_STATEMENT_TIME changed
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- result is changed
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Get user limits with MAX_STATEMENT_TIME
|
||||
community.mysql.mysql_query:
|
||||
<<: *mysql_params
|
||||
query: >
|
||||
SELECT User FROM mysql.user
|
||||
WHERE User = '{{ user_name_1 }}'
|
||||
AND Host = 'localhost'
|
||||
AND max_questions = 5
|
||||
AND max_statement_time = 2
|
||||
register: result
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
- name: Resource limits | Assert limit with MAX_STATEMENT_TIME row count
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- result.rowcount[0] == 1
|
||||
when: db_engine == 'mariadb'
|
||||
|
||||
when: (ansible_distribution == 'Ubuntu' and ansible_distribution_major_version >= '18') or (ansible_distribution == 'CentOS' and ansible_distribution_major_version >= '8')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue