* mysql_info - Add connector_name and connector_version to returned value (#497)
* Add methods to retrieve connector name and version
* Document that mysqlclient is also named MySQLdb
* Document version_added
* Add connector name and version in the returned block
* Cut condition to display any name that is return
In case of MySQLdb is renamed in mysqlclient. In that case, the
integration tests will catch this the day we update the connector
version.
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
(cherry picked from commit a5f3296d73)
* Cut fragment not relevant to the collection usage
* Update version_added for stable-2
---------
Co-authored-by: Laurent Indermühle <laurent.indermuehle@pm.me>
* Fix mariadb test setup
* Update mysql src URL
* Add changelog fragment
* Update 491_fix_download_url.yaml
Sanity test failed because minor_changes in not an element of a list.
* Fix casing
Co-authored-by: Laurent Indermühle <laurent.indermuehle@pm.me>
(cherry picked from commit 00fa058a18)
Co-authored-by: Jorge Rodriguez (A.K.A. Tiriel) <jorge.rodriguez@futurice.com>
* Sync GHA workflow w/ the collection template (#452)
* Sync GHA workflow w/ the collection template
* Drop the trailing pre-cmd semicolon
* Recover missing `-e` flag of `sed`
* Use relative paths for version configs
* Unquote `env.connector_version_file`
* Use string formatting to fix the substitution problem
(cherry picked from commit 8107530744)
* Backport mysql_version_parts variable assignation
(cherry picked from commit 79046a88cb)
* Add changelog fragment
* Backport flags and variables to differentiate MariaDB from MySQL setup
* Backport issue-28 check for tls support
* Backport tls_requirements simplified and deduplified tests
Co-authored-by: Sviatoslav Sydorenko <wk.cvs.github@sydorenko.org.ua>
* Is changed (#427)
* Refactor tests to use "is" and "is not" changed
* Refactor tests to use is succeeded or is failed
* Reformat indentation
* Add filter "bool" to prevent issues
(cherry picked from commit 0a68bb270f)
* Fix error message verification
I don't know why this works on main, but in stable-1, the error message
is "invalid privileges string: Invalid privileges specified:
frozenset({'INVALID'})"
* Add filter for test that won't work with mariadb
* Add test databases cleanup
* Backport small diff from main
* Add changes from stable-1 integrations tests (PR 418)
* Refactor to use connectors' info declared in setup_mysql
* Fix 2nd replication stop marked changed by mysqlclient
(cherry picked from commit 61586ae4cc)
* mysql_query: fix false change reports when IF NOT EXISTS clause is used
* Fix
* Fix doc, add fragment
* Improve doc
(cherry picked from commit 647461010d)
Co-authored-by: Andrew Klychkov <aklychko@redhat.com>
* Allow the "%" character in database name (#227)
The naming rules for MySQL/MariaDB identifiers, when quoted, allow the
`%` character.
However, currently, the use of the `%` character in database names
results in mismatch or missing databases.
- Rewrite query to identify the databases in the catalog using
`information_schema` instead of `SHOW DATABASES LIKE`
- Escape the `%` character in `CREATE DATABASE` query.
Signed-off-by: Nicolas Payart <npayart@gmail.com>
(cherry picked from commit 6b12435b2b)
* mysql_db: Fix assert in tests suite (#239)
Signed-off-by: Nicolas Payart <npayart@gmail.com>
(cherry picked from commit 5522e45284)
* mysql_db: Improve tests (#240)
- Define variables "db_names" and "db_formats" in defaults
- Use of the "vars" option in includes instead of default parameters
that might be overridden by a previous task
- Use of the "loop" option in includes instead of duplicating include
tasks
- Use a nested loop on db_names and db_formats in state_dump_import test
Signed-off-by: Nicolas Payart <npayart@gmail.com>
(cherry picked from commit e4de13aabe)
* MAINTAINERS file: Add new maintainer (#248)
(cherry picked from commit d411a8e216)
Co-authored-by: Nicolas PAYART <koleo@users.noreply.github.com>
* mysql_info: fix TypeError failure when there are databases that do not contain tables (#205)
* mysql_info: fix TypeError failure when there are databases that do not contain tables
* Add changelog fragment
(cherry picked from commit a1f419d541)
* Fix sanity errors (#206)
(cherry picked from commit 8a17e43eae)
* mysql_query: correctly reflect changed status in replace statements.
* Fix the wrong indent.
(cherry picked from commit 9055bb4c8c)
Co-authored-by: Tong He <68936428+unnecessary-username@users.noreply.github.com>
* mysql_replication: add deprecation warning about future replacement of Is_Slave and Is_Master return values, add alternatives
* Add changelog fragment
(cherry picked from commit 853db5a2a4)
* add mysql_full_version and suffix return variable
add changelog fragment
* rephrase changelog fragment
* Update plugins/modules/mysql_info.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Add changes as per PR review
* Add tests for new suffix output parameter
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Jorge-Rodriguez <jorge.rodriguez@futurice.com>
* mysql_user: add proper handling of INSERT, UPDATE, REFERENCES on columns
* Add changelog fragment
* fix sanity
* fix CI
* fix sanity
* fix CI
* make the assertion fairer
* Improve
* mysql_user: fix the module is not idempotent when there is SELECT on columns granted
* add changelog fragment
* fix
* Add unit tests for has_select_on_col function
* Add unit tests for sort_column_order function
* Add unit tests for handle_select_on_col function
* Update a comment
* mysql_replication: deprecation of slave related options, adding alternatives
* Add changelog fragment
* Integration tests getslave -> getreplica
* Change the rest of offending choices/comments
* Add announcement about replacing SLAVE to REPLICA in messages
* Deprecate offending values
* mysql_user: fixed encrypted option for MySQL 8.0 and test coverage
The purpose of this change was originally to expand test coverage to
unblock #76, but an issue was detected with the encrypted parameter on
MySQL 8.0 in the process of writing the tests. Additionally,
user_password_update_test.yml had been disabled at some point, so I
opted to replace it with two new files that will focus on the password
and plugin auth paths.
* Updated tests to cover a couple of missing branches
* Skip tests that rely on sha256_password if pymysql < 0.9
* Cover the case where pymysql isn't installed for plugin tests
* Added better plugin auth checking to tests and other minor changes
* Fixed version detection to explicitly handle MariaDB
* Removed unneeded import from previous change
* Remove whitespace that was introduced by change that was removed
* Added unit tests for missing coverage
* mysql_replication: fix crashes caused by deprecated terminology
* Fix unrelated sanity errors
* Tests: mysql 8.0.21 -> 8.022
* Adjust integration tests
* Add version check to the tests
* Add debug statement
* Adjust mysql version
* Fix tests
* Add unit tests
* Add changelog fragment
* Improve code and coverage
* Get rid of extra blank line
* Improve coverage
* Change suggested
* mysql_user: Fixed change detection with append_privs (#69)
Prior to this change, mysql_user with append_privs would attempt to make
a change even if the current privileges were a superset of the new
privileges (shouldn't require any action).
* Fixed unrelated mysql_replication doc causing failures in CI
* Added fragments and check_mode tests
* Expanded priv append tests to cover additional case
* Add changelog fragment
* Add check_hostname option
* Propagate check_hostname option across the collection
* Update documentation fragment
* Propagate test to all other plugins
* Remove stray line
* Give test user privileges to run test operations
* Extend integration tests job matrix
* Add caution note to documentation fragment.
* Update matrix job name
* Rearrange job matrix
* Fix sanity issues
* Fix issue with mysqldb silently failing to update out of range variables
* Fix variable overwrite
* Ignore `check_hostname` when using MySQLdb
* Update plugins/doc_fragments/mysql.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/doc_fragments/mysql.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update changelogs/fragments/35-disable-hostname-check.yml
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Add test to verify TLS requirements are removed
* Fix cursor parsing
* small fixes
* Refactor TLS tests into their own file
* Fix TLS requirements parsing
* Add TLS connection parameters
* Add check mode tests
* Fix check mode indentation
* Run MySQL commands with the mysql_command variable
* Fix typo
* Restore code lost during cherry pick
* Fix conditionals to accomodate for MySQL v8
* Fix equal operators
* Remove Black formatting in an attempt to make codecov happy
* Remove deprecation notice
* Fix closing bracket
* Remove code duplication
* initial commit
* removed remaining references to community.general
* enabled integration pipeline
* switched from preconfigured replication topology to simple multinode install
* updated version from 1.0.0 to 0.1.0