Commit graph

42 commits

Author SHA1 Message Date
Laurent Indermuehle
98ce2af28c
Refactor way tests info are passed from sed to file with lookup
The idea is to avoid modifying test targets from the workflow to prevent
ansible-test to think every tests needs to be run.
2023-01-05 19:04:51 +01:00
Laurent Indermuehle
2af8e4f273
Fix server_id in GHA
GHA lack a way to pass option to docker's command. Also server_id is
not read as a environment variable. So I'm forced to use a config file.
2023-01-05 11:55:54 +01:00
Laurent Indermuehle
7049a280cb
Refactor setup_mysql into setup_controller 2023-01-04 17:29:06 +01:00
Laurent Indermuehle
405b809a86
Linting 2023-01-04 17:17:53 +01:00
Laurent Indermuehle
1e03a259fb
Fix replication server_id already in use 2023-01-04 17:16:03 +01:00
Laurent Indermuehle
c3458f4823
Cut docker healthcheck unsupported by GHA 2023-01-04 17:10:37 +01:00
Laurent Indermuehle
b821db97c5
Generalize mysql and mariadb version based on container name
This way we can split db_engine and db_version and simplify tests.
Also this is mandatory to use the matrix.db_engine_version as the
image name for our services containers.
2023-01-04 14:14:13 +01:00
Laurent Indermuehle
4b6617ab50
Swap MariaDB with MySQL 2023-01-04 11:38:09 +01:00
Laurent Indermuehle
676509e88d
Install mysql_client the correct way 2023-01-03 15:17:47 +01:00
Laurent Indermuehle
0cd57adbd2
Add mysql_client to the controller 2023-01-03 15:13:49 +01:00
Laurent Indermuehle
cd9f216319
Further disable tests to speed up 2023-01-03 15:13:30 +01:00
Laurent Indermuehle
8652a9a947
Disable sanity, units and matrix to speed up tests in GHA 2023-01-03 14:33:11 +01:00
Laurent Indermuehle
60c87abca0
Disable healthcheck
I want to first prove that this setup is possible before adding safety
2023-01-03 14:31:16 +01:00
Laurent Indermuehle
589a0decfd
Cut anchors currently unsupported by GHA 2023-01-03 14:07:54 +01:00
Laurent Indermuehle
2149261e92
Attempt GHA communication between container using "docker host network"
https://docs.github.com/en/actions/using-containerized-services/about-service-containers
I re-revert the workflow to use the new custom action. But I'm not sure
it will works because I don't know how the container for ansible-test
is started and if it will have access to the services containers.
2023-01-03 14:05:36 +01:00
Laurent Indermuehle
634d1fb5f0
Fix workflow unknown option container_name 2022-12-09 15:40:21 +01:00
Laurent Indermühle
574fef5e50
Merge branch 'main' into lie_tests_using_containers 2022-12-09 15:33:33 +01:00
Laurent Indermuehle
d06cefa62d
Revert to old workflow to use ansible-test --venv
It seams that that ansible-test-gh-action doesn't handle this option:
https://github.com/ansible-community/ansible-test-gh-action/blob/main/action.yml#L483-L497
2022-12-09 15:22:41 +01:00
Andrew Klychkov
eade7ec1f0
CI: add PR change detection (#473) 2022-12-09 14:50:37 +01:00
Laurent Indermühle
4dac66382a
Add fixed version of Ubuntu (#470)
This is because ubuntu-latest link to ubuntu-22.04 which includes
cgroup-v2. I thinks our tests fails because of that. See
https://github.com/ansible-collections/news-for-maintainers/issues/28
for more information.
2022-12-06 08:41:04 +01:00
Sviatoslav Sydorenko
8107530744
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
2022-10-03 14:27:55 +02:00
Andrew Klychkov
b8e2c02e89
CI: add stable-2.14 to test matrix (#449) 2022-09-22 11:24:01 +02:00
R.Sicart
2cd29207f3
Fix: devel requires python 3.9 in roles CI (#444)
* Fix: devel requires python 3.9

Package 'ansible-core' requires a different Python: 3.8.13 not in '>=3.9'

* Exclude older version of Ansible when testing Python 3.9
2022-09-16 13:38:22 +02:00
Laurent Indermühle
97318559e5
Fix ci python requirements (#416)
* Add matrix for python and ansible-core versions for sanity tests

* Add python 3.9 to integrations tests

* Add python 3.9 to unit tests

* Reformat sort by python version first
2022-08-05 09:25:14 +02:00
Andrew Klychkov
b62a59cf5a
Update mariadb to 10.6.8 in test matrix (#370)
* Update mariadb to 10.6.8 in test matrix

* try 10.8.3

* change tarball path

* Change tarball name

* Add mariadb 10.8

* Fix

* Fix

* Fix
2022-06-24 13:50:19 +02:00
Andrew Klychkov
eff87f952b
Drop support for Ansible 2.9 and ansible-base 2.10 (#343)
* Drop support for Ansible 2.9 and ansible-base 2.10

* Improve README
2022-05-12 10:50:26 +02:00
R.Sicart
e319ac082e
CI: add testing against ansible-core 2.13 (#326)
Relates to https://github.com/ansible-collections/news-for-maintainers/issues/14
2022-04-02 17:53:21 +02:00
Andrew Klychkov
e6e661b87f
Fix roles CI (#316) 2022-03-23 10:00:26 +01:00
Andrew Klychkov
f00f06df76
Fix the collection to work with mysqlclient connector (#293)
* Integration tests: restrict exclusion mysqlclient + MariaDB only when testing the mysql_role module

* Fix

* Fix underlying issue

* Fix units

* Add changelog fragment
2022-03-14 10:03:47 +01:00
R.Sicart
82cedf8510
Fix role integration tests for mariadb (#291)
* 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
2022-03-04 10:52:43 +01:00
Andrew Klychkov
c273ee36a7
Enable and fix integration tests for devel (#290)
* Enable and fix integration tests for devel

* Update repo targets

* Remove useless directive

* default container -> ubuntu1804

* revert last commit

* 10.2 does not support 20.04 focal; increase to 10.3
2022-03-01 17:57:20 +01:00
R.Sicart
1b061131dd
Feature/mariadb integration ci (#246)
* 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.html
https://dev.mysql.com/doc/mysql-replication-excerpt/8.0/en/replication-howto-repuser.html
https://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.html
https://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
2021-12-14 09:30:46 +01:00
Andrew Klychkov
f47d4635f1
integration tests: remove superfluous debug task (#228)
* integration tests: remove superfluous debug task

* Turn off integration tests against devel
2021-10-12 13:05:07 +02:00
Andrew Klychkov
fc984b28aa
CI matrix update (#226)
* CI matrix update

* Fix test_mysql_user

* Fix CI

* Fix CI

* Fix CI

* Fix CI

* Fix CI
2021-10-12 11:24:28 +02:00
Andrew Klychkov
738343d64c
mysql: revert changes made in PR 116 (#153)
* mysql: revert changes made in PR 116

* Add changelog fragment

* Fix CI

* Fix CI

* Fix CI

* Update CI

* Fix CI
2021-04-23 12:57:23 +02:00
Andrew Klychkov
dad555a536
Tests: add ansible 2.11 support (#138)
@Andersson007 thanks for this PR
2021-04-06 11:12:27 +03:00
Andrew Klychkov
ebe503823a
mysql_replication: fix crashes caused by deprecated terminology (#71)
* 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
2020-12-18 11:17:18 +03:00
Jorge Rodriguez (A.K.A. Tiriel)
8c79011dbd
Disable hostname check (#38)
* 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>
2020-10-12 21:19:43 +03:00
Felix Fontein
1538b9d946
Do not run same sanity tests twice (#36)
* Do not run same sanity tests twice.

* Fix test config.
2020-09-28 08:21:04 +03:00
Ben Mildren
ac79b437c8
updated replication integration tests, added testing for mysql 5.7 (#7)
Co-authored-by: Ben Mildren <bmildren@digitalocean.com>
2020-07-14 14:13:16 +01:00
Ben Mildren
c26bc095ad
initial commit (#1)
* 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
2020-07-10 17:16:58 +01:00
John R Barker
9fcbbaad81 Initial commit 2020-07-08 18:51:12 +01:00