# test code for resource_limits parameter - vars: mysql_parameters: &mysql_params login_user: '{{ mysql_user }}' login_password: '{{ mysql_password }}' login_host: 127.0.0.1 login_port: '{{ mysql_primary_port }}' block: - name: Drop mysql user {{ user_name_1 }} if exists mysql_user: <<: *mysql_params name: '{{ user_name_1 }}' state: absent - name: Create mysql user {{ user_name_1 }} with resource limits in check_mode mysql_user: <<: *mysql_params name: '{{ user_name_1 }}' password: '{{ user_password_1 }}' state: present resource_limits: MAX_QUERIES_PER_HOUR: 10 MAX_CONNECTIONS_PER_HOUR: 5 check_mode: yes register: result - assert: that: - result is changed - name: Create mysql user {{ user_name_1 }} with resource limits in actual mode mysql_user: <<: *mysql_params name: '{{ user_name_1 }}' password: '{{ user_password_1 }}' state: present resource_limits: MAX_QUERIES_PER_HOUR: 10 MAX_CONNECTIONS_PER_HOUR: 5 register: result - assert: that: - result is changed - name: Check mysql_query: <<: *mysql_params query: > SELECT User FROM mysql.user WHERE User = '{{ user_name_1 }}' AND Host = 'localhost' AND max_questions = 10 AND max_connections = 5 register: result - assert: that: - result.rowcount[0] == 1 - name: Try to set the same limits again in check mode mysql_user: <<: *mysql_params name: '{{ user_name_1 }}' password: '{{ user_password_1 }}' state: present resource_limits: MAX_QUERIES_PER_HOUR: 10 MAX_CONNECTIONS_PER_HOUR: 5 check_mode: yes register: result - assert: that: - result is not changed - name: Try to set the same limits again in actual mode mysql_user: <<: *mysql_params name: '{{ user_name_1 }}' password: '{{ user_password_1 }}' state: present resource_limits: MAX_QUERIES_PER_HOUR: 10 MAX_CONNECTIONS_PER_HOUR: 5 register: result - assert: that: - result is not changed - name: Change limits mysql_user: <<: *mysql_params name: '{{ user_name_1 }}' password: '{{ user_password_1 }}' state: present resource_limits: MAX_QUERIES_PER_HOUR: 5 MAX_CONNECTIONS_PER_HOUR: 5 register: result - assert: that: - result is changed - name: Check mysql_query: <<: *mysql_params query: > SELECT User FROM mysql.user WHERE User = '{{ user_name_1 }}' AND Host = 'localhost' AND max_questions = 5 AND max_connections = 5 register: result - assert: that: - result.rowcount[0] == 1 when: (ansible_distribution == 'Ubuntu' and ansible_distribution_major_version >= '18') or (ansible_distribution == 'CentOS' and ansible_distribution_major_version >= '8')