Changeset - dabe2c541877
[Not reviewed]
0 4 0
Branko Majic (branko) - 3 years ago 2020-11-10 21:27:55
branko@majic.rs
MAR-166: Deploy pipreqcheck files to correct directory based on Python version selected via the wsgi_requirements role.
4 files changed with 18 insertions and 10 deletions:
0 comments (0 inline, 0 general)
docs/releasenotes.rst
Show inline comments
 
@@ -112,6 +112,13 @@ Bug fixes:
 
  * Run apticron at least once during initial installation to avoid
 
    accidental locking later on during the same playbook run.
 

	
 
* ``wsgi_website`` role
 

	
 
  * Deploy the requirement files used for upgrade checks to correct
 
    location when using Python 3. Previously the files would get
 
    deployed to directory dedicated to Python 2 version, which means
 
    the checks would be performed using Python 2 instead of Python 3.
 

	
 
New features/improvements:
 

	
 
* Tests have been updated to work with latest Molecule/Testinfra as
roles/wsgi_website/defaults/main.yml
Show inline comments
 
@@ -24,3 +24,4 @@ admin: "admin-{{ fqdn | replace('.', '_') }}"
 
user: "web-{{ fqdn | replace('.', '_') }}"
 
home: "/var/www/{{ fqdn }}"
 
python_interpreter: "/usr/bin/python{{ python_version }}"
 
pip_check_requirements_upgrades_directory: "/etc/pip_check_requirements_upgrades{% if python_version | int == 3 %}-py3{% endif %}"
roles/wsgi_website/molecule/default/tests/test_default.py
Show inline comments
 
@@ -541,25 +541,25 @@ def test_python_version_in_virtualenv(host, python_path, expected_version):
 
        assert expected_version in python_version.stdout or expected_version in python_version.stderr
 

	
 

	
 
@pytest.mark.parametrize("fqdn, expected_requirements_in, expected_requirements", [
 
    ("parameters-mandatory", ["futures", "gunicorn"], ["futures==3.3.0", "gunicorn==19.10.0"]),
 
    ("parameters-optional.local", ["gunicorn"], ["futures==3.1.1", "gunicorn==20.0.4"]),
 
    ("parameters-paste-req", ["futures", "gunicorn"], ["futures==3.1.1", "gunicorn==19.8.1"]),
 
@pytest.mark.parametrize("fqdn, pip_check_requirements_upgrades_directory, expected_requirements_in, expected_requirements", [
 
    ("parameters-mandatory", "/etc/pip_check_requirements_upgrades",  ["futures", "gunicorn"], ["futures==3.3.0", "gunicorn==19.10.0"]),
 
    ("parameters-optional.local", "/etc/pip_check_requirements_upgrades-py3", ["gunicorn"], ["futures==3.1.1", "gunicorn==20.0.4"]),
 
    ("parameters-paste-req", "/etc/pip_check_requirements_upgrades", ["futures", "gunicorn"], ["futures==3.1.1", "gunicorn==19.8.1"]),
 
])
 
def test_wsgi_requirements(host, fqdn, expected_requirements_in, expected_requirements):
 
def test_wsgi_requirements(host, fqdn, pip_check_requirements_upgrades_directory, expected_requirements_in, expected_requirements):
 
    """
 
    Tests if Python requirements files are set-up correctly (for both
 
    installation and upgrade checks).
 
    """
 

	
 
    with host.sudo():
 
        directory = host.file('/etc/pip_check_requirements_upgrades/%s' % fqdn)
 
        directory = host.file('%s/%s' % (pip_check_requirements_upgrades_directory, fqdn))
 
        assert directory.is_directory
 
        assert directory.user == 'root'
 
        assert directory.group == 'pipreqcheck'
 
        assert directory.mode == 0o750
 

	
 
        config = host.file('/etc/pip_check_requirements_upgrades/%s/wsgi_requirements.in' % fqdn)
 
        config = host.file('%s/%s/wsgi_requirements.in' % (pip_check_requirements_upgrades_directory, fqdn))
 
        assert config.is_file
 
        assert config.user == 'root'
 
        assert config.group == 'pipreqcheck'
 
@@ -568,7 +568,7 @@ def test_wsgi_requirements(host, fqdn, expected_requirements_in, expected_requir
 
        check_requirements_in = config.content_string.strip().split("\n")
 
        assert check_requirements_in == expected_requirements_in
 

	
 
        config = host.file('/etc/pip_check_requirements_upgrades/%s/wsgi_requirements.txt' % fqdn)
 
        config = host.file('%s/%s/wsgi_requirements.txt' % (pip_check_requirements_upgrades_directory, fqdn))
 
        assert config.is_file
 
        assert config.user == 'root'
 
        assert config.group == 'pipreqcheck'
roles/wsgi_website/tasks/main.yml
Show inline comments
 
@@ -167,7 +167,7 @@
 

	
 
- name: Set-up directory for storing requirements file for upgrade checks
 
  file:
 
    path: "/etc/pip_check_requirements_upgrades/{{ fqdn }}"
 
    path: "{{ pip_check_requirements_upgrades_directory }}/{{ fqdn }}"
 
    state: directory
 
    owner: root
 
    group: pipreqcheck
 
@@ -176,7 +176,7 @@
 
- name: Deploy WSGI requirements files for upgrade checks
 
  template:
 
    src: "{{ item }}.j2"
 
    dest: "/etc/pip_check_requirements_upgrades/{{ fqdn }}/{{ item }}"
 
    dest: "{{ pip_check_requirements_upgrades_directory }}/{{ fqdn }}/{{ item }}"
 
    owner: root
 
    group: pipreqcheck
 
    mode: 0640
0 comments (0 inline, 0 general)