Fix setting of upper_constraints fact
The pip_constraint_update filter overrides pip versions from the second provided list to the first. Update the 'Set upper constraints' task so that upper-constraints correctly take priority over the local requirements packages versions. A test has been included to validate that the role built package constraints file is correctly applying the upper-constraints from the openstack requirements repo. Closes-Bug: 1605846 Change-Id: I53864a34f3ba56a84ed658fa3952aba3c509e0b1
This commit is contained in:
parent
09c32c06a0
commit
373978f3c6
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
fixes:
|
||||
- The ``repo_build`` role now correctly applies OpenStack requirements
|
||||
upper-constraints when building Python wheels. This resolves
|
||||
https://bugs.launchpad.net/openstack-ansible/+bug/1605846
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
- name: Set upper constraints
|
||||
set_fact:
|
||||
upper_constraints: "{{ _upper_constraints | pip_constraint_update(local_requirement_normalized) }}"
|
||||
upper_constraints: "{{ local_requirement_normalized | pip_constraint_update(_upper_constraints) }}"
|
||||
when: slurp_upper_constraints | success
|
||||
tags:
|
||||
- repo-set-constraints
|
||||
|
|
|
@ -52,5 +52,31 @@
|
|||
- name: Ensure that the nova venv is NOT present
|
||||
assert:
|
||||
that: "'nova-{{ repo_build_release_tag }}.tgz' not in venv_folder_content.stdout"
|
||||
- name: Slurp upper constraints
|
||||
slurp:
|
||||
src: "{{ repo_build_git_dir }}/requirements/upper-constraints.txt"
|
||||
register: slurp_upper_constraints
|
||||
- name: Slurp requirements constraints
|
||||
slurp:
|
||||
src: "{{ repo_build_release_path }}/{{ repo_build_release_tag }}/requirements_constraints.txt"
|
||||
register: slurp_requirements_constraints
|
||||
- name: Set fact for requirements constraints content
|
||||
set_fact:
|
||||
requirements_constraints_content: "{{ slurp_requirements_constraints.content | b64decode }}"
|
||||
- name: Set fact for upper constraints dictionary
|
||||
set_fact:
|
||||
upper_constraints_dict: >
|
||||
{%- set constraints = {} %}
|
||||
{%- for package in slurp_upper_constraints.content | b64decode | splitlines %}
|
||||
{%- set name = package | regex_replace('===.*$','') %}
|
||||
{%- set version = package | regex_replace('^.*===','') %}
|
||||
{%- set _ = constraints.update({name:version}) %}
|
||||
{%- endfor %}
|
||||
{{- constraints -}}
|
||||
- name: Ensure that requirements constraints is applying upper constraints
|
||||
assert:
|
||||
that: requirements_constraints_content.find( "{{ item.key }}<={{item.value}}" ) != -1
|
||||
with_dict: upper_constraints_dict
|
||||
when: requirements_constraints_content.find(item.key) != -1
|
||||
vars_files:
|
||||
- test-vars.yml
|
||||
|
|
Loading…
Reference in New Issue