Skip to content

Commit c162c64

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Fix LB disable/enable functionality"
2 parents e9707b8 + ced8c0d commit c162c64

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

ovn_octavia_provider/helper.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1904,14 +1904,14 @@ def lb_update(self, loadbalancer):
19041904
if str(ovn_lb.external_ids['enabled']) != str(lb_enabled):
19051905
commands = []
19061906
enable_info = {'enabled': str(lb_enabled)}
1907-
ovn_lb.external_ids['enabled'] = str(lb_enabled)
1907+
ovn_lb_external_ids = ovn_lb.external_ids
1908+
ovn_lb_external_ids.update(enable_info)
19081909
commands.append(
19091910
self.ovn_nbdb_api.db_set('Load_Balancer', ovn_lb.uuid,
19101911
('external_ids', enable_info))
19111912
)
19121913
commands.extend(
1913-
self._refresh_lb_vips(ovn_lb,
1914-
ovn_lb.external_ids))
1914+
self._refresh_lb_vips(ovn_lb, ovn_lb_external_ids))
19151915
self._execute_commands(commands)
19161916
if lb_enabled:
19171917
operating_status = constants.ONLINE

ovn_octavia_provider/tests/unit/test_helper.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1531,29 +1531,27 @@ def test_lb_update_disabled(self, refresh_vips):
15311531
@mock.patch.object(ovn_helper.OvnProviderHelper, '_refresh_lb_vips')
15321532
def test_lb_update_enabled(self, refresh_vips):
15331533
# Change the mock, its enabled by default.
1534-
self.ovn_lb.external_ids.update({'enabled': False})
1535-
self.lb['admin_state_up'] = True
1534+
self.lb[constants.ADMIN_STATE_UP] = False
15361535
status = self.helper.lb_update(self.lb)
15371536
self.assertEqual(status['loadbalancers'][0]['provisioning_status'],
15381537
constants.ACTIVE)
15391538
self.assertEqual(status['loadbalancers'][0]['operating_status'],
1540-
constants.ONLINE)
1539+
constants.OFFLINE)
15411540
refresh_vips.assert_called_once_with(
15421541
self.ovn_lb, self.ovn_lb.external_ids)
15431542
self.helper.ovn_nbdb_api.db_set.assert_called_once_with(
15441543
'Load_Balancer', self.ovn_lb.uuid,
1545-
('external_ids', {'enabled': 'True'}))
1544+
('external_ids', {'enabled': 'False'}))
15461545
# update to re-enable
1547-
self.ovn_lb.external_ids.update({'enabled': True})
1548-
self.lb['admin_state_up'] = True
1546+
self.lb[constants.ADMIN_STATE_UP] = True
15491547
status = self.helper.lb_update(self.lb)
15501548
self.assertEqual(status['loadbalancers'][0]['provisioning_status'],
15511549
constants.ACTIVE)
15521550
self.assertEqual(status['loadbalancers'][0]['operating_status'],
15531551
constants.ONLINE)
1554-
refresh_vips.assert_called_once_with(
1552+
refresh_vips.assert_called_with(
15551553
self.ovn_lb, self.ovn_lb.external_ids)
1556-
self.helper.ovn_nbdb_api.db_set.assert_called_once_with(
1554+
self.helper.ovn_nbdb_api.db_set.assert_called_with(
15571555
'Load_Balancer', self.ovn_lb.uuid,
15581556
('external_ids', {'enabled': 'True'}))
15591557

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
fixes:
3+
- |
4+
Enabling and disabling Load Balancers with the OVN provider now works
5+
properly, assigning or removing VIP definitions in the OVN Northbound
6+
database according to the issued command.

0 commit comments

Comments
 (0)