|
26 | 26 | ansible.builtin.shell: |
27 | 27 | cmd: set -o pipefail && pip freeze | grep kayobe | cut -d @ -f 3 |
28 | 28 | executable: /usr/bin/bash |
29 | | - register: kayobe_git_commit |
30 | | - failed_when: kayobe_git_commit.stdout == "" |
| 29 | + register: kayobe_current_commit |
| 30 | + failed_when: kayobe_current_commit.stdout == "" |
31 | 31 |
|
32 | 32 | - name: Create a temporary directory to clone Kayobe into |
33 | 33 | ansible.builtin.tempfile: |
34 | 34 | state: directory |
35 | 35 | register: kayobe_temp_dir |
36 | 36 |
|
37 | | - - name: Clone Kayobe |
| 37 | + - name: Get expected Kayobe version |
| 38 | + ansible.builtin.shell: |
| 39 | + cmd: set -o pipefail && grep -o kayobe@.*$ {{ requirements_path }} | cut -d @ -f 3 |
| 40 | + executable: /usr/bin/bash |
| 41 | + register: kayobe_expected_version |
| 42 | + |
| 43 | + - name: Clone Kayobe at the expected version |
38 | 44 | ansible.builtin.git: |
39 | 45 | repo: https://github.com/stackhpc/kayobe.git |
40 | 46 | dest: "{{ kayobe_temp_dir.path }}/kayobe-git" |
41 | | - version: stackhpc/{{ openstack_release }} |
| 47 | + version: "{{ kayobe_expected_version.stdout }}" |
42 | 48 |
|
43 | | - - name: Get tag from Kayobe commit |
| 49 | + - name: Get tag from current Kayobe commit |
44 | 50 | ansible.builtin.command: |
45 | | - cmd: git describe --tags {{ kayobe_git_commit.stdout }} |
| 51 | + cmd: git describe --tags {{ kayobe_current_commit.stdout }} |
46 | 52 | chdir: "{{ kayobe_temp_dir.path }}/kayobe-git" |
47 | | - register: kayobe_current_version |
| 53 | + register: kayobe_current_tag |
| 54 | + |
| 55 | + - name: Get commit from Kayobe checkout |
| 56 | + ansible.builtin.command: |
| 57 | + cmd: git rev-parse HEAD |
| 58 | + chdir: "{{ kayobe_temp_dir.path }}/kayobe-git" |
| 59 | + register: kayobe_expected_commit |
48 | 60 |
|
49 | 61 | - name: Clean up temporary directory |
50 | 62 | ansible.builtin.file: |
51 | 63 | state: absent |
52 | 64 | path: "{{ kayobe_temp_dir.path }}" |
53 | 65 |
|
54 | | - - name: Get latest Kayobe version |
55 | | - ansible.builtin.shell: |
56 | | - cmd: set -o pipefail && grep -o kayobe@stackhpc\/.*$ {{ requirements_path }} | cut -d @ -f 2 |
57 | | - executable: /usr/bin/bash |
58 | | - register: kayobe_latest_version |
59 | | - |
60 | | - - name: Check installed Kayobe version is the latest |
| 66 | + - name: Check installed Kayobe version matches |
61 | 67 | ansible.builtin.assert: |
62 | | - that: "kayobe_latest_version.stdout in kayobe_current_version.stdout" |
| 68 | + that: kayobe_current_commit.stdout in kayobe_expected_commit.stdout |
63 | 69 | fail_msg: | |
64 | 70 | Kayobe must use the expected version before continuing. |
65 | 71 |
|
66 | | - Current Kayobe version: {{ kayobe_current_version.stdout }} |
67 | | - Expected Kayobe version: {{ kayobe_latest_version.stdout }} |
| 72 | + Current Kayobe commit: {{ kayobe_current_commit.stdout }} |
| 73 | + Current Kayobe tag: {{ kayobe_current_tag.stdout }} |
| 74 | + Expected Kayobe commit: {{ kayobe_expected_commit.stdout }} |
| 75 | + Expected Kayobe version: {{ kayobe_expected_version.stdout }} |
68 | 76 |
|
69 | 77 | Recreate the Kayobe environment, or install the expected version |
70 | 78 | by running: pip install --force-reinstall -r {{ requirements_path }} |
71 | 79 | success_msg: | |
72 | | - Kayobe running at version: {{ kayobe_current_version.stdout }} |
| 80 | + Kayobe running at version: {{ kayobe_expected_version.stdout }} |
0 commit comments