openstack-ansible-repo_server/tasks/repo_install_constraints.yml
Dmitriy Rabotyagov a5df0d1a9b Have a symlink to u_c versioned file
With current behavior of u-c file that is stored on repo server and
migration to shared FS instead of lsyncd, we don't have any reliable
path to check for.

Also we have issue, that with updated u-c SHA users catch "unrelated"
error in python_venv_build role.

As a solution, we can create a symlink to the u-c file, that will have
persistant name and be updated with repo_server role run.

That would give us both file to verify and it can be used as u-c URI.

Change-Id: Ie7bdb9137ed69be465f014fa811b750dbec4e428
Related-Bug: #1943978
2022-05-20 06:56:39 +00:00

62 lines
2.5 KiB
YAML

---
# Copyright 2021, BBC
#
# 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.
- name: Ensure deploy host u-c directory exists
file:
state: directory
path: "{{ repo_upper_constraints_path }}"
delegate_to: localhost
# by default the u-c file is retrieved by https
- name: Retrieve upper constraints using https
get_url:
url: "{{ user_requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }}"
dest: "{{ repo_upper_constraints_path }}/{{ 'upper_constraints_' ~ requirements_git_install_branch | default('master') ~ '.txt' }}"
when: requirements_git_repo is search('http')
delegate_to: localhost
- name: Retrieve local filesystem upper constraints in CI
command:
git --git-dir={{ requirements_git_repo.split('file://')[1] }}/.git show {{ requirements_git_install_branch | default('master') }}:upper-constraints.txt
when: requirements_git_repo is search('file://')
register: _uc_contents_git
delegate_to: localhost
tags:
- skip_ansible_lint
- name: Copy local upper constraints content to a file in CI
copy:
content: "{{ _uc_contents_git.stdout }}"
dest: "{{ repo_upper_constraints_path }}/{{ 'upper_constraints_' ~ requirements_git_install_branch | default('master') ~ '.txt' }}"
when: requirements_git_repo is search('file://')
delegate_to: localhost
- name: Copy all constraints files from the deploy host to the first repo server
copy:
src: "{{ repo_upper_constraints_path }}/"
dest: "{{ repo_service_home_folder }}/repo/constraints/"
owner: "{{ repo_service_user_name }}"
group: "{{ repo_service_group_name }}"
mode: 0644
- name: Create a symlink for constraints file
file:
src: "{{ repo_service_home_folder }}/repo/constraints/{{ 'upper_constraints_' ~ requirements_git_install_branch | default('master') ~ '.txt' }}"
dest: "{{ repo_service_home_folder }}/repo/constraints/upper_constraints_cached.txt"
owner: "{{ repo_service_user_name }}"
group: "{{ repo_service_group_name }}"
state: link
mode: 0644