Skip to content

Commit 624a414

Browse files
Merge pull request #1330 from cschwede/fix-ospcix-1305
Fix Swift migration PV check
2 parents 578d8b6 + 132ea64 commit 624a414

2 files changed

Lines changed: 33 additions & 59 deletions

File tree

tests/roles/swift_migration/tasks/main.yaml

Lines changed: 8 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@
3333
- name: wait until ring configmap includes new pv devices
3434
ansible.builtin.shell: |
3535
{{ oc_header }}
36-
timeout 900s bash -c 'until oc debug --keep-labels=true job/swift-ring-rebalance -- /bin/sh -c "swift-ring-tool get && swift-ring-builder object.builder search --device pv" ; do sleep 60; done'
36+
oc debug --keep-labels=true job/swift-ring-rebalance -- /bin/sh -c "swift-ring-tool get && swift-ring-builder object.builder search --device pv"
37+
register: result
38+
until: result.rc == 0 and 'No matching devices found' not in result.stdout
39+
retries: 15
40+
delay: 60
3741

3842
- name: set standalone node weight to 0 in swift rings
3943
ansible.builtin.shell: |
@@ -43,66 +47,11 @@
4347
while read -r node; do
4448
swift-ring-tool drain ${node}
4549
done <<< "{{ swift_node_list_result.stdout }}"
46-
swift-ring-tool forced_rebalance
4750
swift-ring-tool push'
4851
49-
- name: push rings to standalone and restart swift services
50-
ansible.builtin.shell: |
51-
{{ shell_header }}
52-
{{ oc_header }}
53-
CONTROLLER1_SSH="{{ controller1_ssh }}"
54-
oc extract --confirm cm/swift-ring-files
55-
$CONTROLLER1_SSH "tar -C /var/lib/config-data/puppet-generated/swift/etc/swift/ -xzf -" < swiftrings.tar.gz
56-
$CONTROLLER1_SSH "systemctl restart tripleo_swift_*"
57-
58-
- name: wait until all replicas are 100% available after first rebalance
59-
ansible.builtin.shell: |
60-
{{ oc_header }}
61-
timeout 900s bash -c 'until oc debug --keep-labels=true job/swift-ring-rebalance -- /bin/sh -c "swift-ring-tool get && swift-dispersion-report" | grep -q "100.00% of object copies found" ; do sleep 60; done'
62-
63-
- name: rebalance rings second time
64-
ansible.builtin.shell: |
65-
{{ oc_header }}
66-
oc debug --keep-labels=true job/swift-ring-rebalance -- /bin/sh -c '
67-
swift-ring-tool get
68-
swift-ring-tool forced_rebalance
69-
swift-ring-tool push'
70-
71-
- name: push rings to standalone and restart swift services
72-
ansible.builtin.shell: |
73-
{{ shell_header }}
74-
{{ oc_header }}
75-
CONTROLLER1_SSH="{{ controller1_ssh }}"
76-
oc extract --confirm cm/swift-ring-files
77-
$CONTROLLER1_SSH "tar -C /var/lib/config-data/puppet-generated/swift/etc/swift/ -xzf -" < swiftrings.tar.gz
78-
$CONTROLLER1_SSH "systemctl restart tripleo_swift_*"
79-
80-
- name: wait until all replicas are 100% available after second rebalance
81-
ansible.builtin.shell: |
82-
{{ oc_header }}
83-
timeout 900s bash -c 'until oc debug --keep-labels=true job/swift-ring-rebalance -- /bin/sh -c "swift-ring-tool get && swift-dispersion-report" | grep -q "100.00% of object copies found" ; do sleep 60; done'
84-
85-
- name: rebalance rings third time
86-
ansible.builtin.shell: |
87-
{{ oc_header }}
88-
oc debug --keep-labels=true job/swift-ring-rebalance -- /bin/sh -c '
89-
swift-ring-tool get
90-
swift-ring-tool forced_rebalance
91-
swift-ring-tool push'
92-
93-
- name: push rings to standalone and restart swift services
94-
ansible.builtin.shell: |
95-
{{ shell_header }}
96-
{{ oc_header }}
97-
CONTROLLER1_SSH="{{ controller1_ssh }}"
98-
oc extract --confirm cm/swift-ring-files
99-
$CONTROLLER1_SSH "tar -C /var/lib/config-data/puppet-generated/swift/etc/swift/ -xzf -" < swiftrings.tar.gz
100-
$CONTROLLER1_SSH "systemctl restart tripleo_swift_*"
101-
102-
- name: wait until all replicas are 100% available after third rebalance
103-
ansible.builtin.shell: |
104-
{{ oc_header }}
105-
timeout 900s bash -c 'until oc debug --keep-labels=true job/swift-ring-rebalance -- /bin/sh -c "swift-ring-tool get && swift-dispersion-report" | grep -q "100.00% of object copies found" ; do sleep 60; done'
52+
- name: "rebalance rings and wait until replication finished - iteration {{ item }}"
53+
ansible.builtin.include_tasks: rebalance_and_wait.yaml
54+
loop: [1, 2, 3]
10655

10756
- name: wait until /srv/node on standalone is drained
10857
ansible.builtin.shell: |
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
- name: rebalance rings
2+
ansible.builtin.shell: |
3+
{{ oc_header }}
4+
oc debug --keep-labels=true job/swift-ring-rebalance -- /bin/sh -c '
5+
swift-ring-tool get
6+
swift-ring-tool forced_rebalance
7+
swift-ring-tool push'
8+
9+
- name: push rings to standalone and restart swift services
10+
ansible.builtin.shell: |
11+
{{ shell_header }}
12+
{{ oc_header }}
13+
CONTROLLER1_SSH="{{ controller1_ssh }}"
14+
oc extract --confirm cm/swift-ring-files
15+
$CONTROLLER1_SSH "tar -C /var/lib/config-data/puppet-generated/swift/etc/swift/ -xzf -" < swiftrings.tar.gz
16+
$CONTROLLER1_SSH "systemctl restart tripleo_swift_*"
17+
18+
- name: wait until all replicas are 100% available after rebalance
19+
ansible.builtin.shell: |
20+
{{ oc_header }}
21+
oc debug --keep-labels=true job/swift-ring-rebalance -- /bin/sh -c "swift-ring-tool get && swift-dispersion-report"
22+
register: result
23+
until: result.rc == 0 and '100.00% of object copies found' in result.stdout
24+
retries: 15
25+
delay: 60

0 commit comments

Comments
 (0)