Skip to content

Commit e2cbba9

Browse files
authored
Merge pull request #46 from stackhpc/upstream/2024.1-2025-04-28
Synchronise 2024.1 with upstream
2 parents e1768a4 + 3bc839c commit e2cbba9

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

octavia/controller/worker/v2/tasks/network_tasks.py

+15-3
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,11 @@ def execute(self, loadbalancer, amphora=None):
706706
db_lb, amphora=db_amp)
707707
provider_dict = {}
708708
for amp_id, amp_conf in db_configs.items():
709-
provider_dict[amp_id] = amp_conf.to_dict(recurse=True)
709+
# Do not serialize loadbalancer class. It's unused later and
710+
# could be ignored for storing in results of task in persistence DB
711+
provider_dict[amp_id] = amp_conf.to_dict(
712+
recurse=True, calling_classes=[data_models.LoadBalancer]
713+
)
710714
return provider_dict
711715

712716

@@ -724,7 +728,11 @@ def execute(self, loadbalancer_id, amphora_id=None):
724728
amphora=amphora)
725729
provider_dict = {}
726730
for amp_id, amp_conf in db_configs.items():
727-
provider_dict[amp_id] = amp_conf.to_dict(recurse=True)
731+
# Do not serialize loadbalancer class. It's unused later and
732+
# could be ignored for storing in results of task in persistence DB
733+
provider_dict[amp_id] = amp_conf.to_dict(
734+
recurse=True, calling_classes=[data_models.LoadBalancer]
735+
)
728736
return provider_dict
729737

730738

@@ -740,7 +748,11 @@ def execute(self, loadbalancer_id):
740748
db_configs = self.network_driver.get_network_configs(db_lb)
741749
provider_dict = {}
742750
for amp_id, amp_conf in db_configs.items():
743-
provider_dict[amp_id] = amp_conf.to_dict(recurse=True)
751+
# Do not serialize loadbalancer class. It's unused later and
752+
# could be ignored for storing in results of task in persistence DB
753+
provider_dict[amp_id] = amp_conf.to_dict(
754+
recurse=True, calling_classes=[data_models.LoadBalancer]
755+
)
744756
return provider_dict
745757

746758

octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py

+14
Original file line numberDiff line numberDiff line change
@@ -1380,6 +1380,10 @@ def test_get_amphora_network_configs_by_id(
13801380
AMP_ID = uuidutils.generate_uuid()
13811381
mock_driver = mock.MagicMock()
13821382
mock_get_net_driver.return_value = mock_driver
1383+
amphora_config_mock = mock.MagicMock()
1384+
mock_driver.get_network_configs.return_value = {
1385+
"amphora_uuid1": amphora_config_mock
1386+
}
13831387
mock_amp_get.return_value = 'mock amphora'
13841388
mock_lb_get.return_value = 'mock load balancer'
13851389

@@ -1391,6 +1395,9 @@ def test_get_amphora_network_configs_by_id(
13911395
'mock load balancer', amphora='mock amphora')
13921396
mock_amp_get.assert_called_once_with(mock_get_session(), id=AMP_ID)
13931397
mock_lb_get.assert_called_once_with(mock_get_session(), id=LB_ID)
1398+
amphora_config_mock.to_dict.assert_called_once_with(
1399+
recurse=True, calling_classes=[o_data_models.LoadBalancer]
1400+
)
13941401

13951402
@mock.patch('octavia.db.repositories.LoadBalancerRepository.get')
13961403
@mock.patch('octavia.db.api.get_session', return_value=_session_mock)
@@ -1399,10 +1406,17 @@ def test_get_amphorae_network_configs(self, mock_session, mock_lb_get,
13991406
mock_driver = mock.MagicMock()
14001407
mock_lb_get.return_value = LB
14011408
mock_get_net_driver.return_value = mock_driver
1409+
amphora_config_mock = mock.MagicMock()
1410+
mock_driver.get_network_configs.return_value = {
1411+
"amphora_uuid1": amphora_config_mock
1412+
}
14021413
lb = o_data_models.LoadBalancer()
14031414
net_task = network_tasks.GetAmphoraeNetworkConfigs()
14041415
net_task.execute(self.load_balancer_mock)
14051416
mock_driver.get_network_configs.assert_called_once_with(lb)
1417+
amphora_config_mock.to_dict.assert_called_once_with(
1418+
recurse=True, calling_classes=[o_data_models.LoadBalancer]
1419+
)
14061420

14071421
def test_retrieve_portids_on_amphora_except_lb_network(
14081422
self, mock_get_net_driver):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
fixes:
3+
- |
4+
Ignore serialization loadbalancer class in GetAmphoraNetworkConfigs tasks.
5+
It allows to avoid storing full graph in jobboard details. It fixes cases
6+
with enabled jobboard for huge LBs with ~2000+ resources in graph.

0 commit comments

Comments
 (0)