
The current pinning method for pip/setuptools/wheel works for the initial setup of a host or python venv. However, when a python package which has one of these in its requirements is installed onto the host or into the venv and the '--upgrade' option is given to pip, the package will be upgraded to the latest version available within the given constraints. As OpenStack's requirements management process does not cater for the pip, setuptools or wheel packages we need to ensure that all python install tasks prior to the repo being built use our global pins as a constraint in addition to the OpenStack uppser constraints. As pip's --constraints option can only take a file as an argument we have to copy the global pins file to the target which will use it. This file can be removed from the host once the repo is built. Related-Bug: #1658773 Closes-Bug: #1658948 Change-Id: Iccbb2e4a126a1cc7a4c94ab41b7ce8ef54d89990
46 lines
1.7 KiB
YAML
46 lines
1.7 KiB
YAML
---
|
|
# Copyright 2016, Rackspace US, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# This set of tasks checks whether the repo is up yet. If it is it
|
|
# will use the compiled upper constraints available there. If it
|
|
# is not yet up, then it will use the upstream upper constraints
|
|
# for the SHA currently pinned.
|
|
|
|
- name: Test internal repo URL for the current upper constraints file
|
|
uri:
|
|
url: "{{ pip_install_upper_constraints }}"
|
|
method: "HEAD"
|
|
register: upper_constraints_check
|
|
failed_when: false
|
|
|
|
- name: Remove global requirement pins file from host
|
|
file:
|
|
path: "/opt/global-requirement-pins.txt"
|
|
state: absent
|
|
when: (upper_constraints_check.status | default(503)) == 200
|
|
|
|
- name: Copy global requirement pins file to host
|
|
copy:
|
|
src: "../global-requirement-pins.txt"
|
|
dest: "/opt/global-requirement-pins.txt"
|
|
when: (upper_constraints_check.status | default(503)) != 200
|
|
|
|
- name: Set pip install upper constraints
|
|
set_fact:
|
|
pip_install_upper_constraints: >-
|
|
/opt/global-requirement-pins.txt
|
|
--constraint http://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?id={{ requirements_git_install_branch | regex_replace(' #.*$','') }}
|
|
when: (upper_constraints_check.status | default(503)) != 200
|