Skip to content

Commit cfd9770

Browse files
seunghun1eeAlex-Welsh
authored andcommitted
Fix RabbitMQ version check always getting skipped
Refactoring kolla_container_facts.py [1] caused breaking change because of result output structure was changed. Therefore the condition for the version check block always become false (``container_facts[service.container_name]`` is always undefined). Fixing this issue by matching the new kolla_container_facts result structure. Additionally, added assertions in tests for ``kolla_container_facts`` to ensure the container fact result is not in old structure. [1] https://review.opendev.org/c/openstack/kolla-ansible/+/911505 Closes-Bug: #2102662 Change-Id: I91a5f9c4b0e3c40ef21c25fb4866b07e25fbc017 Signed-off-by: Seunghun Lee <[email protected]> (cherry picked from commit 00f8cb4)
1 parent 80d61dc commit cfd9770

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

ansible/roles/rabbitmq/tasks/version-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
Otherwise, see these docs for how to pin the version of RabbitMQ:
7474
https://docs.openstack.org/kolla-ansible/latest/reference/message-queues/rabbitmq.html#rabbitmq-versions
7575
76-
when: container_facts[service.container_name] is defined
76+
when: container_facts.containers[service.container_name] is defined
7777

7878
delegate_to: "{{ groups[role_rabbitmq_groups] | first }}"
7979
run_once: true
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
fixes:
3+
- |
4+
Fixes RabbitMQ version check which would always be skipped.
5+
`LP#2102662 <https://bugs.launchpad.net/kolla-ansible/+bug/2102662>`__

tests/test_kolla_container_facts.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ def test_get_containers_single(self):
148148
self.assertFalse(self.dfw.result['changed'])
149149
self.assertEqual(self.dfw.client.containers.list.call_count, 1)
150150
self.assertIn('my_container', self.dfw.result['containers'])
151+
self.assertNotIn('my_container', self.dfw.result)
151152
self.assertDictEqual(
152153
self.fake_data['containers'][0],
153154
self.dfw.result['containers']['my_container'])
@@ -162,6 +163,7 @@ def test_get_container_multi(self):
162163

163164
self.assertFalse(self.dfw.result['changed'])
164165
self.assertIn('my_container', self.dfw.result['containers'])
166+
self.assertNotIn('my_container', self.dfw.result)
165167
self.assertNotIn('exited_container', self.dfw.result['containers'])
166168

167169
def test_get_container_all(self):
@@ -173,6 +175,7 @@ def test_get_container_all(self):
173175

174176
self.assertFalse(self.dfw.result['changed'])
175177
self.assertIn('my_container', self.dfw.result['containers'])
178+
self.assertNotIn('my_container', self.dfw.result)
176179
self.assertNotIn('exited_container', self.dfw.result['containers'])
177180

178181
def test_get_containers_env(self):
@@ -190,6 +193,7 @@ def test_get_containers_env(self):
190193
self.assertFalse(self.dfw.result['changed'])
191194
self.dfw.client.containers.get.assert_called_once_with('my_container')
192195
self.assertIn('my_container', self.dfw.result['envs'])
196+
self.assertNotIn('my_container', self.dfw.result)
193197
self.assertEquals(self.dfw.result['envs']['my_container'], fake_env)
194198

195199
def test_get_containers_env_negative(self):
@@ -222,6 +226,7 @@ def test_get_containers_state(self):
222226
self.assertFalse(self.dfw.result['changed'])
223227
self.dfw.client.containers.get.assert_called_once_with('my_container')
224228
self.assertIn('my_container', self.dfw.result['states'])
229+
self.assertNotIn('my_container', self.dfw.result)
225230

226231
def test_get_containers_state_negative(self):
227232
self.dfw = get_DockerFactsWorker({'name': ['fake_container'],
@@ -248,6 +253,7 @@ def test_get_volumes_single(self):
248253
self.assertFalse(self.dfw.result['changed'])
249254
self.dfw.client.volumes.list.assert_called_once_with()
250255
self.assertIn('my_volume', self.dfw.result['volumes'])
256+
self.assertNotIn('my_volume', self.dfw.result)
251257
self.assertNotIn('another_volume', self.dfw.result['volumes'])
252258
self.assertEqual(len(self.dfw.result['volumes']), 1)
253259
self.assertDictEqual(
@@ -268,6 +274,8 @@ def test_get_volumes_multiple(self):
268274
self.dfw.client.volumes.list.assert_called_once_with()
269275
self.assertIn('my_volume', self.dfw.result['volumes'])
270276
self.assertIn('another_volume', self.dfw.result['volumes'])
277+
self.assertNotIn('my_volume', self.dfw.result)
278+
self.assertNotIn('another_volume', self.dfw.result)
271279
self.assertEqual(len(self.dfw.result['volumes']), 2)
272280
self.assertDictEqual(
273281
self.dfw.result['volumes']['my_volume'],
@@ -289,6 +297,8 @@ def test_get_volumes_all(self):
289297
self.dfw.client.volumes.list.assert_called_once_with()
290298
self.assertIn('my_volume', self.dfw.result['volumes'])
291299
self.assertIn('another_volume', self.dfw.result['volumes'])
300+
self.assertNotIn('my_volume', self.dfw.result)
301+
self.assertNotIn('another_volume', self.dfw.result)
292302
self.assertDictEqual(
293303
self.dfw.result['volumes']['my_volume'],
294304
self.fake_data['volumes'][0])

0 commit comments

Comments
 (0)