Exclude amphora instances already DELETED when failover loadbalancer

Change-Id: Ifd5503157e6068d2bf8d30474baafc8c9b0e6f88
Story: 2002634
Task: 22276
This commit is contained in:
sapd 2018-06-21 17:40:46 +07:00
parent fe7f5da236
commit c64a4574ad
2 changed files with 8 additions and 3 deletions

View File

@ -804,7 +804,8 @@ class ControllerWorker(base_taskflow.BaseTaskFlowEngine):
lb = self._lb_repo.get(db_apis.get_session(),
id=load_balancer_id)
amps = lb.amphorae
# Exclude amphora already deleted
amps = [a for a in lb.amphorae if a.status != constants.DELETED]
for amp in amps:
# failover amphora in backup role
# Note: this amp may not currently be the backup

View File

@ -1199,7 +1199,10 @@ class TestControllerWorker(base.TestCase):
mock_health_mon_repo_get,
mock_amp_repo_get):
_amphora_mock2 = mock.MagicMock()
_load_balancer_mock.amphorae = [_amphora_mock, _amphora_mock2]
_amphora_mock3 = mock.MagicMock()
_amphora_mock3.status = constants.DELETED
_load_balancer_mock.amphorae = [
_amphora_mock, _amphora_mock2, _amphora_mock3]
cw = controller_worker.ControllerWorker()
cw.failover_loadbalancer('123')
mock_perform.assert_called_with(
@ -1208,7 +1211,8 @@ class TestControllerWorker(base.TestCase):
provisioning_status=constants.ACTIVE)
mock_perform.reset
_load_balancer_mock.amphorae = [_amphora_mock, _amphora_mock2]
_load_balancer_mock.amphorae = [
_amphora_mock, _amphora_mock2, _amphora_mock3]
_amphora_mock2.role = constants.ROLE_BACKUP
cw.failover_loadbalancer('123')
# because mock2 gets failed over earlier now _amphora_mock