* mysql_role: don't add members to a role when creating the role and "detach_members: true" is set, add integration test
* add changelog fragment
* mysql_role: add author betanummeric
* Update changelogs/fragments/367-mysql_role-fix-deatch-members.yml
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Felix Hamme <felix.hamme@ionos.com>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* add option subtract_privs to mysql_role and mysql_user
see https://github.com/ansible-collections/community.mysql/issues/331
* add integration tests for subtract_privs for mysql_role and mysql_user
* add changelog fragment for PR #333
* mysql_role, mysql_user: when subtract_privileges, don't grant unwanted privileges and don't revoke USAGE implicitly
* fix integration tests
* mysql_role, mysql_user: invalid privileges are ignored when subtract_privs is true -> document that and fix integration tests
* fix mysql_role integration tests
* fix mysql_role, mysql_user integration tests
* formatting
make the PEP8 check happy
* mysql_user and mysql_role: fix granting privileges when only the GRANT OPTION needs to be added
* mysql_user and mysql_role: log some updated privileges; explain integration test blind spot
* mysql_user and mysql_role: don't grant too much privileges
If only the grant option needs to be granted, at least one privilege needs to be granted to get valid syntax. USAGE is better for that than the existing privileges, because unwanted privileges would be re-added after revokation.
* mysql_user and mysql_role: fix type error
* Update changelogs/fragments/333-mysql_user-mysql_role-add-subtract_privileges-argument.yml
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/mysql_role.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/mysql_user.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Felix Hamme <felix.hamme@ionos.com>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Fix: test_mysql_role : Check that the user have no active roles assertion
* Fix: test_mysql_role : Check in DB assertion
* Fix: test_mysql_role : Check in DB, if not granted, the query will fail for mariadb
* Fix: test_mysql_role : Check that the role is active assertion
* test_mysql_role : create checks for mariadb
* Make 'when' conditions uniform
* Fix: test_mysql_role : admin option tests
* test_mysql_role : create checks for mariadb
* Fix: add fixme on test which create role in check mode 'again'
It changes only on mariadb 10.2
(doesn't change on mysql 8 or mariadb 10.5)
* Fix: add fixme on test which create role 'again'
* Simplify test without checking Host part
* Fix 'show grant' checks for mariadb
* Enable mariadb tests for test_mysql_role target
* Add tests to verify role grants for roles
* Add FIXME comments for tests which do not pass on mariadb 10.2
* Fix FIXME tests related to mariadb 10.2
* Exclude mysqlclient==2.0.1 with mariadb from integration tests
* Replace matrix.mysql by matrix.db_engine_version
* Specify db flavor
* Upgrade dbdeployer to 1.56.0
See https://github.com/datacharmer/dbdeployer/issues/120
* Fix: github workflow syntax
* Fix: mysql version file for mariadb engine
* Do not test mysql_variables modes persist and persist_only on mariadb
Those modes do not exist on mariadb. See https://mariadb.com/kb/en/set/
* Exclude integration tests for mariadb_10.5.4 with pymysql==0.7.10
* TLS on mariadb is disabled by default
* Configure mariadb supported versions in matrix
As discussed in https://github.com/ansible-collections/community.mysql/discussions/141#discussioncomment-643657
* Fix: test_mysql_db : assert that databases does not exist
"assertion": "database1 not in mysql_result.stdout"
* Fix: assertion mysql_version in result.version.full
* Fix: test_mysql_user : Check that the module made a change and that the expected plugin type is set
'mysql_native_password' in show_create_user.stdout
* Fix: test_mysql_replication : Create user for replication
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version for the
right syntax to use near 'BY 'replication_pass'' at line 1
https://dev.mysql.com/doc/mysql-replication-excerpt/5.7/en/replication-howto-repuser.htmlhttps://dev.mysql.com/doc/mysql-replication-excerpt/8.0/en/replication-howto-repuser.htmlhttps://mariadb.com/kb/en/setting-up-replication/#example-enabling-replication-for-mariadb
Create user syntax compatible with auth plugin and password on both
mysql and mariadb.
https://dev.mysql.com/doc/refman/8.0/en/create-user.htmlhttps://mariadb.com/kb/en/create-user/
* Fix: test_mysql_replication: replica_status 'dict object' has no attribute 'Source_Host'
* Do not test mysql_replication_channel.yml on mariadb
* Do not test target 'test_mysql_role' with mariadb, too much errors to fix
* Setup mysql_version_parts depending on install type (mysql or mariadb)
* Install mariadb-client when install_type is mariadb
To use the same client tools as the database engine.
And to use a more updated mysqldump version, in order to fix this error:
ERROR 1556 (HY000) at line 776: You can't use locks with log tables
* Fix: mysql auth plugin is set on mariadb >10.2
* Fix: skip assertion on mariadb 10.2
* Do not execute test_user_plugin_auth.yml tests on mariadb, create/update useer sql syntax not compatible
* Fix: test_mysql_user : assert user1 TLS requirements
Remove test for oldd versions
* Fix: typo
* Fix: test_mysql_user : Test idempotency (expect ok) ignore mariadb 10.5
* [ci skip] Add changelog fragment
* Delete changelog fragment