project-config/playbooks/publish/wheel-mirror.yaml
Ian Wienand b34c442fcb wheel-mirror: serialise copies to AFS
This is a follow-on to I3761dd9d2ab752e66bcccdd2434405f11535b95f where
I misunderstood what "linear" was doing.  What was really intended was
to stop both the python2 and python3 builds copying to AFS at the same
time.  "linear" just means the *tasks* start at the same time across
hosts; not that they run serially.  To do that you want the (aptly
named) "serial" specifier on the playbook.

Add this so we do the copies sequentially

Change-Id: I4f8a2f2c6c8164e7ea207f8e4b286e06df0b13dd
2018-10-18 08:18:29 +11:00

32 lines
1.0 KiB
YAML

- hosts: all
# We don't want the python2 & python3 hosts copying to AFS at the
# same time. In some cases for generic wheels they can have
# produced a file with the same name and thus we open a window to
# corruption on AFS with multiple simultaneous writers to the same
# file.
serial: 1
pre_tasks:
- name: Generate AFS slug - CentOS
set_fact:
afs_slug: "{{ ansible_distribution|lower }}-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}"
when: ansible_distribution == "CentOS"
- name: Generate AFS slug - Ubuntu
set_fact:
afs_slug: "{{ ansible_distribution|lower }}-{{ ansible_distribution_version }}-{{ ansible_architecture }}"
when: ansible_distribution == "Ubuntu"
- name: Set fact for AFS dir
set_fact:
afs_dir: "/afs/.openstack.org/mirror/wheel/{{ afs_slug }}/"
- name: Set fact for wheel dir
set_fact:
wheel_dir: /opt/wheel/workspace
roles:
- create-afs-token
- copy-wheels
- destroy-afs-token