Fix HealthMonitorToErrorOnRevertTask revert method

So far, whenever we had to revert HealthMonitorToErrorOnRevertTask,
we called mark_health_mon_prov_status_error with the wrong parameter
(health_mon[constants.POOL_ID] == the pool id).

This would set the pool's provisioning status to ERROR.

Later in the revert task we call mark_pool_prov_status_active with the
correct argument (health_mon[constants.POOL_ID] == the pool id), so we
set it back to ACTIVE, and the task continues correctly.

This means we might have missed setting the health monitor's
provisioning status to ERROR, and therefore we might have missed some
errors.

This commit changes the parameter to be the correct one in both API
v1 and v2, and it modifies the tests accordingly.

Story 2010113
Task 45690

Change-Id: I5a749c751d184ec10957a31b569419d57fe8daf6
This commit is contained in:
Omer 2022-06-28 15:25:03 +02:00
parent 7557c8f178
commit 96f2ca7cec
5 changed files with 10 additions and 4 deletions

View File

@ -52,7 +52,7 @@ class HealthMonitorToErrorOnRevertTask(BaseLifecycleTask):
pass
def revert(self, health_mon, listeners, loadbalancer, *args, **kwargs):
self.task_utils.mark_health_mon_prov_status_error(health_mon.pool_id)
self.task_utils.mark_health_mon_prov_status_error(health_mon.id)
self.task_utils.mark_pool_prov_status_active(health_mon.pool_id)
self.task_utils.mark_loadbalancer_prov_status_active(loadbalancer.id)
for listener in listeners:

View File

@ -55,7 +55,7 @@ class HealthMonitorToErrorOnRevertTask(BaseLifecycleTask):
def revert(self, health_mon, listeners, loadbalancer, *args, **kwargs):
self.task_utils.mark_health_mon_prov_status_error(
health_mon[constants.POOL_ID])
health_mon[constants.HEALTHMONITOR_ID])
self.task_utils.mark_pool_prov_status_active(
health_mon[constants.POOL_ID])
self.task_utils.mark_loadbalancer_prov_status_active(

View File

@ -28,7 +28,7 @@ class TestLifecycleTasks(base.TestCase):
self.AMPHORA.id = self.AMPHORA_ID
self.HEALTH_MON = mock.MagicMock()
self.HEALTH_MON_ID = uuidutils.generate_uuid()
self.HEALTH_MON.pool_id = self.HEALTH_MON_ID
self.HEALTH_MON.id = self.HEALTH_MON_ID
self.L7POLICY = mock.MagicMock()
self.L7POLICY_ID = uuidutils.generate_uuid()
self.L7POLICY.id = self.L7POLICY_ID

View File

@ -126,7 +126,7 @@ class TestLifecycleTasks(base.TestCase):
self.LOADBALANCER)
mock_health_mon_prov_status_error.assert_called_once_with(
self.POOL_ID)
self.HEALTH_MON_ID)
mock_loadbalancer_prov_status_active.assert_called_once_with(
self.LOADBALANCER_ID)
mock_listener_prov_status_active.assert_called_once_with(

View File

@ -0,0 +1,6 @@
---
fixes:
- |
Fix a bug that prevented the provisioning_state of a health-monitor to be
set to ERROR when an error occurred while creating, updating or deleting a
health-monitor.