From 4ab3f389685a43b338bc0dbeea7394cb1ebb55f4 Mon Sep 17 00:00:00 2001 From: romeroalx Date: Tue, 8 Oct 2024 11:46:04 +0200 Subject: [PATCH] archlinux: skip ssl cert validation for mysql tests --- .../tests/backend-mysql/test_backend_mysql.py | 8 +++++--- tasks/database-mysql.yml | 20 ++++++++----------- vars/Archlinux.yml | 3 +++ 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/molecule/resources/tests/backend-mysql/test_backend_mysql.py b/molecule/resources/tests/backend-mysql/test_backend_mysql.py index 2dcb9ee..6210a3f 100644 --- a/molecule/resources/tests/backend-mysql/test_backend_mysql.py +++ b/molecule/resources/tests/backend-mysql/test_backend_mysql.py @@ -31,9 +31,11 @@ def test_config(host): def test_database_tables(host): dbname = host.check_output('hostname -s').replace('.', '_') - cmd = host.run("mysql --user=\"pdns\" --password=\"pdns\" --host=\"mysql\" " + - "--batch --skip-column-names " + - "--execute=\"SELECT DISTINCT table_name FROM information_schema.columns WHERE table_schema = '%s'\"" % dbname) + mysql_cmd = 'mariadb --skip-ssl-verify-server-cert' if host.system_info.distribution.lower() in archlinux_os else 'mysql' + + cmd = host.run( + f'{mysql_cmd} --user="pdns" --password="pdns" --host="mysql" --batch --skip-column-names --execute="SELECT DISTINCT table_name FROM information_schema.columns WHERE table_schema = \'{dbname}\'"' + ) for table in [ 'domains', 'records', 'supermasters', 'comments', 'domainmetadata', 'cryptokeys', 'tsigkeys' ]: diff --git a/tasks/database-mysql.yml b/tasks/database-mysql.yml index 087a2de..c536c25 100644 --- a/tasks/database-mysql.yml +++ b/tasks/database-mysql.yml @@ -35,10 +35,10 @@ - skip_missing: yes - name: Check if the MySQL databases are empty - command: > - mysql --user="{{ item['value']['user'] }}" --password="{{ item['value']['password'] }}" - --host="{{ item['value']['host'] }}" --port "{{ item['value']['port'] | default('3306') }}" --batch --skip-column-names - --execute="SELECT COUNT(DISTINCT table_name) FROM information_schema.columns WHERE table_schema = '{{ item['value']['dbname'] }}'" + shell: |- + {{ pdns_backends_mysql_cmd | default('mysql') }} --user="{{ item['value']['user'] }}" --password="{{ item['value']['password'] }}" \ + --host="{{ item['value']['host'] }}" --port "{{ item['value']['port'] | default('3306') }}" --batch --skip-column-names \ + --execute="SELECT COUNT(DISTINCT table_name) FROM information_schema.columns WHERE table_schema = '{{ item['value']['dbname'] }}'" when: item.key.split(':')[0] == 'gmysql' with_dict: "{{ pdns_backends }}" register: _pdns_check_mysql_db @@ -64,15 +64,11 @@ set_fact: pdns_mysql_schema_file_to_use: "{% if pdns_mysql_schema_file | length == 0 %}{{ pdns_mysql_schema_file_detected.stdout }}{% else %}{{ pdns_mysql_schema_file }}{% endif %}" + - name: Import the PowerDNS MySQL schema - mysql_db: - login_user: "{{ item['item']['value']['user'] }}" - login_password: "{{ item['item']['value']['password'] }}" - login_host: "{{ item['item']['value']['host'] }}" - login_port: "{{ item['item']['port'] | default('3306') }}" - name: "{{ item.item['value']['dbname'] }}" - state: import - target: "{{ pdns_mysql_schema_file_to_use }}" + shell: |- + {{ pdns_backends_mysql_cmd | default('mysql') }} --user="{{ item['item']['value']['user'] }}" --password="{{ item['item']['value']['password'] }}" --host="{{ item['item']['value']['host'] }}" \ + --port="{{ item['item']['port'] | default('3306') }}" "{{ item.item['value']['dbname'] }}" < "{{ pdns_mysql_schema_file_to_use }}" no_log: True when: "item['item']['key'].split(':')[0] == 'gmysql' and item['stdout'] == '0'" with_items: "{{ _pdns_check_mysql_db['results'] }}" diff --git a/vars/Archlinux.yml b/vars/Archlinux.yml index 8b887ab..bbbb28e 100644 --- a/vars/Archlinux.yml +++ b/vars/Archlinux.yml @@ -9,6 +9,9 @@ default_pdns_backends_packages: {} # The directory where the PowerDNS configuration is located default_pdns_config_dir: '/etc/powerdns' +# Change the default mysql client to mariabd "--skip-ssl-verify-server-cert" +pdns_backends_mysql_cmd: 'mariadb --skip-ssl-verify-server-cert' + # Packages to install for MySQL support pdns_mysql_packages: - python-pymysql