Changeset - 161187c252c0
[Not reviewed]
0 5 1
Branko Majic (branko) - 2 months ago 2024-02-10 21:17:31
branko@majic.rs
MAR-191: Drop support for Debian 10 Buster from the php_website role:

- Move some of the distribution release-specific information used in
tests into a fixture of its own. Make the code a bit cleaner/more
consistent.
6 files changed with 37 insertions and 24 deletions:
0 comments (0 inline, 0 general)
docs/rolereference.rst
Show inline comments
 
@@ -1686,7 +1686,6 @@ Distribution compatibility
 

	
 
Role is compatible with the following distributions:
 

	
 
- Debian 10 (Buster)
 
- Debian 11 (Bullseye)
 

	
 

	
roles/php_website/defaults/main.yml
Show inline comments
 
@@ -13,15 +13,12 @@ environment_indicator: null
 

	
 
# Internal parameters.
 
php_fpm_service_name_per_release:
 
  buster: "php7.3-fpm"
 
  bullseye: "php7.4-fpm"
 

	
 
php_fpm_binary_per_release:
 
  buster: "php-fpm7.3"
 
  bullseye: "php-fpm7.4"
 

	
 
php_fpm_pool_directory_per_release:
 
  buster: "/etc/php/7.3/fpm/pool.d"
 
  bullseye: "/etc/php/7.4/fpm/pool.d"
 

	
 
admin: "admin-{{ fqdn | replace('.', '_') }}"
roles/php_website/meta/main.yml
Show inline comments
 
@@ -14,5 +14,4 @@ galaxy_info:
 
  platforms:
 
    - name: Debian
 
      versions:
 
        - 10
 
        - 11
roles/php_website/molecule/default/molecule.yml
Show inline comments
 
@@ -14,16 +14,6 @@ lint:
 

	
 
platforms:
 

	
 
  - name: php-website-buster
 
    groups:
 
      - parameters-mandatory
 
      - parameters-optional
 
    box: debian/contrib-buster64
 
    memory: 512
 
    cpus: 1
 
    provider_raw_config_args:
 
      - "customize ['modifyvm', :id, '--paravirtprovider', 'minimal']"
 

	
 
  - name: php-website-bullseye
 
    groups:
 
      - parameters-mandatory
roles/php_website/molecule/default/tests/conftest.py
Show inline comments
 
new file 100644
 
from collections import namedtuple
 

	
 
import pytest
 

	
 

	
 
@pytest.fixture
 
def php_info(host):
 
    """
 
    Helper fixture used to define what the expected PHP-FPM details
 
    are (paths, package names etc) based on Debian release.
 

	
 
    Currently supports:
 

	
 
    - Debian 11 (Bullseye)
 

	
 
    Resulting information can be accessed through returned named tuple
 
    with the following properties:
 

	
 
    - fpm_package (name of the PHP-FPM package)
 
    - fpm_service (name of the PHP-FPM system service)
 
    - fpm_pool_dir (pato to directory with PHP-FPM pool definitions)
 
    - base_config_dir (base configuration directory for PHP)
 
    """
 

	
 
    PHPInfo = namedtuple('PHPInfo', 'fpm_package fpm_service fpm_pool_dir base_config_dir')
 

	
 
    ansible_facts = host.ansible("setup")["ansible_facts"]
 
    ansible_distribution_release = ansible_facts['ansible_distribution_release']
 

	
 
    if ansible_distribution_release == 'bullseye':
 
        info = PHPInfo(fpm_package='php-fpm', fpm_service='php7.4-fpm', fpm_pool_dir='/etc/php/7.4/fpm/pool.d', base_config_dir='/etc/php/7.4')
 
    else:
 
        raise Exception('The php_info pytest fixture does not support Debian release: %s' % ansible_distribution_release)
 

	
 
    return info
roles/php_website/molecule/default/tests/test_parameters_mandatory.py
Show inline comments
 
@@ -132,19 +132,12 @@ def test_mail_forwarding(host):
 
        assert re.search(pattern, mail_log.content_string) is not None
 

	
 

	
 
def test_php_fpm_configuration_file(host):
 
def test_php_fpm_configuration_file(host, php_info):
 
    """
 
    Tests if PHP FPM configuration file has been correctly deployed.
 
    """
 

	
 
    distribution_release = host.ansible("setup")["ansible_facts"]["ansible_distribution_release"]
 

	
 
    if distribution_release == "buster":
 
        config_file_path = '/etc/php/7.3/fpm/pool.d/parameters-mandatory.conf'
 
    elif distribution_release == "bullseye":
 
        config_file_path = '/etc/php/7.4/fpm/pool.d/parameters-mandatory.conf'
 
    else:
 
        raise Exception("Tried running test on unsupported distribution: %s" % distribution_release)
 
    config_file_path = os.path.join(php_info.fpm_pool_dir, 'parameters-mandatory.conf')
 

	
 
    with host.sudo():
 

	
0 comments (0 inline, 0 general)