octavia 12.0.0.0rc2__py3-none-any.whl → 13.0.0.0rc1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- octavia/amphorae/backends/agent/api_server/osutils.py +1 -0
- octavia/amphorae/backends/agent/api_server/plug.py +21 -7
- octavia/amphorae/backends/agent/api_server/templates/amphora-netns.systemd.j2 +2 -2
- octavia/amphorae/backends/agent/api_server/util.py +21 -0
- octavia/amphorae/backends/health_daemon/health_daemon.py +9 -3
- octavia/amphorae/backends/health_daemon/health_sender.py +2 -0
- octavia/amphorae/backends/utils/interface.py +14 -6
- octavia/amphorae/backends/utils/interface_file.py +6 -3
- octavia/amphorae/backends/utils/keepalivedlvs_query.py +8 -9
- octavia/amphorae/drivers/driver_base.py +1 -2
- octavia/amphorae/drivers/haproxy/rest_api_driver.py +11 -25
- octavia/amphorae/drivers/health/heartbeat_udp.py +34 -24
- octavia/amphorae/drivers/keepalived/jinja/jinja_cfg.py +3 -12
- octavia/amphorae/drivers/noop_driver/driver.py +3 -5
- octavia/api/common/pagination.py +4 -4
- octavia/api/drivers/amphora_driver/v2/driver.py +11 -5
- octavia/api/drivers/driver_agent/driver_get.py +22 -14
- octavia/api/drivers/driver_agent/driver_updater.py +8 -4
- octavia/api/drivers/utils.py +4 -2
- octavia/api/healthcheck/healthcheck_plugins.py +4 -2
- octavia/api/root_controller.py +4 -1
- octavia/api/v2/controllers/amphora.py +35 -38
- octavia/api/v2/controllers/availability_zone_profiles.py +43 -33
- octavia/api/v2/controllers/availability_zones.py +22 -18
- octavia/api/v2/controllers/flavor_profiles.py +37 -28
- octavia/api/v2/controllers/flavors.py +19 -15
- octavia/api/v2/controllers/health_monitor.py +44 -33
- octavia/api/v2/controllers/l7policy.py +52 -40
- octavia/api/v2/controllers/l7rule.py +68 -55
- octavia/api/v2/controllers/listener.py +88 -61
- octavia/api/v2/controllers/load_balancer.py +52 -34
- octavia/api/v2/controllers/member.py +63 -52
- octavia/api/v2/controllers/pool.py +55 -42
- octavia/api/v2/controllers/quotas.py +5 -3
- octavia/api/v2/types/listener.py +15 -0
- octavia/cmd/octavia_worker.py +0 -3
- octavia/cmd/status.py +1 -4
- octavia/common/clients.py +25 -45
- octavia/common/config.py +64 -22
- octavia/common/constants.py +3 -2
- octavia/common/data_models.py +7 -1
- octavia/common/jinja/haproxy/combined_listeners/jinja_cfg.py +12 -1
- octavia/common/jinja/haproxy/combined_listeners/templates/macros.j2 +5 -2
- octavia/common/jinja/lvs/jinja_cfg.py +4 -2
- octavia/common/keystone.py +58 -5
- octavia/common/validate.py +35 -0
- octavia/compute/drivers/noop_driver/driver.py +6 -0
- octavia/controller/healthmanager/health_manager.py +3 -6
- octavia/controller/housekeeping/house_keeping.py +36 -37
- octavia/controller/worker/amphora_rate_limit.py +5 -4
- octavia/controller/worker/task_utils.py +57 -41
- octavia/controller/worker/v2/controller_worker.py +160 -103
- octavia/controller/worker/v2/flows/listener_flows.py +3 -0
- octavia/controller/worker/v2/flows/load_balancer_flows.py +9 -14
- octavia/controller/worker/v2/tasks/amphora_driver_tasks.py +152 -91
- octavia/controller/worker/v2/tasks/compute_tasks.py +4 -2
- octavia/controller/worker/v2/tasks/database_tasks.py +542 -400
- octavia/controller/worker/v2/tasks/network_tasks.py +119 -79
- octavia/db/api.py +26 -23
- octavia/db/base_models.py +2 -2
- octavia/db/healthcheck.py +2 -1
- octavia/db/migration/alembic_migrations/versions/632152d2d32e_add_http_strict_transport_security_.py +42 -0
- octavia/db/models.py +12 -2
- octavia/db/prepare.py +2 -0
- octavia/db/repositories.py +462 -482
- octavia/hacking/checks.py +1 -1
- octavia/network/base.py +0 -14
- octavia/network/drivers/neutron/allowed_address_pairs.py +92 -135
- octavia/network/drivers/neutron/base.py +65 -77
- octavia/network/drivers/neutron/utils.py +69 -85
- octavia/network/drivers/noop_driver/driver.py +0 -7
- octavia/statistics/drivers/update_db.py +10 -10
- octavia/tests/common/constants.py +91 -84
- octavia/tests/common/sample_data_models.py +13 -1
- octavia/tests/fixtures.py +32 -0
- octavia/tests/functional/amphorae/backend/agent/api_server/test_server.py +9 -10
- octavia/tests/functional/api/drivers/driver_agent/test_driver_agent.py +260 -15
- octavia/tests/functional/api/test_root_controller.py +3 -28
- octavia/tests/functional/api/v2/base.py +5 -3
- octavia/tests/functional/api/v2/test_amphora.py +18 -5
- octavia/tests/functional/api/v2/test_availability_zone_profiles.py +1 -0
- octavia/tests/functional/api/v2/test_listener.py +51 -19
- octavia/tests/functional/api/v2/test_load_balancer.py +10 -1
- octavia/tests/functional/db/base.py +31 -16
- octavia/tests/functional/db/test_models.py +27 -28
- octavia/tests/functional/db/test_repositories.py +407 -50
- octavia/tests/unit/amphorae/backends/agent/api_server/test_amphora_info.py +2 -0
- octavia/tests/unit/amphorae/backends/agent/api_server/test_osutils.py +1 -1
- octavia/tests/unit/amphorae/backends/agent/api_server/test_plug.py +54 -6
- octavia/tests/unit/amphorae/backends/agent/api_server/test_util.py +35 -0
- octavia/tests/unit/amphorae/backends/health_daemon/test_health_daemon.py +8 -0
- octavia/tests/unit/amphorae/backends/health_daemon/test_health_sender.py +18 -0
- octavia/tests/unit/amphorae/backends/utils/test_interface.py +81 -0
- octavia/tests/unit/amphorae/backends/utils/test_interface_file.py +2 -0
- octavia/tests/unit/amphorae/backends/utils/test_keepalivedlvs_query.py +129 -5
- octavia/tests/unit/amphorae/drivers/haproxy/test_rest_api_driver_1_0.py +42 -20
- octavia/tests/unit/amphorae/drivers/health/test_heartbeat_udp.py +18 -20
- octavia/tests/unit/amphorae/drivers/keepalived/jinja/test_jinja_cfg.py +4 -4
- octavia/tests/unit/amphorae/drivers/noop_driver/test_driver.py +4 -1
- octavia/tests/unit/api/drivers/driver_agent/test_driver_get.py +3 -3
- octavia/tests/unit/api/drivers/driver_agent/test_driver_updater.py +11 -13
- octavia/tests/unit/base.py +6 -0
- octavia/tests/unit/cmd/test_interface.py +2 -2
- octavia/tests/unit/cmd/test_status.py +2 -2
- octavia/tests/unit/common/jinja/haproxy/combined_listeners/test_jinja_cfg.py +152 -1
- octavia/tests/unit/common/sample_configs/sample_configs_combined.py +10 -3
- octavia/tests/unit/common/test_clients.py +0 -39
- octavia/tests/unit/common/test_keystone.py +54 -0
- octavia/tests/unit/common/test_validate.py +67 -0
- octavia/tests/unit/controller/healthmanager/test_health_manager.py +8 -22
- octavia/tests/unit/controller/housekeeping/test_house_keeping.py +3 -64
- octavia/tests/unit/controller/worker/test_amphora_rate_limit.py +1 -1
- octavia/tests/unit/controller/worker/test_task_utils.py +44 -24
- octavia/tests/unit/controller/worker/v2/flows/test_load_balancer_flows.py +0 -1
- octavia/tests/unit/controller/worker/v2/tasks/test_amphora_driver_tasks.py +49 -26
- octavia/tests/unit/controller/worker/v2/tasks/test_database_tasks.py +399 -196
- octavia/tests/unit/controller/worker/v2/tasks/test_database_tasks_quota.py +37 -64
- octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py +3 -14
- octavia/tests/unit/controller/worker/v2/test_controller_worker.py +2 -2
- octavia/tests/unit/network/drivers/neutron/test_allowed_address_pairs.py +456 -561
- octavia/tests/unit/network/drivers/neutron/test_base.py +181 -194
- octavia/tests/unit/network/drivers/neutron/test_utils.py +14 -30
- octavia/tests/unit/statistics/drivers/test_update_db.py +7 -5
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/README.rst +1 -1
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/AUTHORS +4 -0
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/METADATA +4 -4
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/RECORD +141 -189
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/entry_points.txt +1 -2
- octavia-13.0.0.0rc1.dist-info/pbr.json +1 -0
- octavia/api/drivers/amphora_driver/v1/__init__.py +0 -11
- octavia/api/drivers/amphora_driver/v1/driver.py +0 -547
- octavia/controller/queue/v1/__init__.py +0 -11
- octavia/controller/queue/v1/consumer.py +0 -64
- octavia/controller/queue/v1/endpoints.py +0 -160
- octavia/controller/worker/v1/__init__.py +0 -11
- octavia/controller/worker/v1/controller_worker.py +0 -1157
- octavia/controller/worker/v1/flows/__init__.py +0 -11
- octavia/controller/worker/v1/flows/amphora_flows.py +0 -610
- octavia/controller/worker/v1/flows/health_monitor_flows.py +0 -105
- octavia/controller/worker/v1/flows/l7policy_flows.py +0 -94
- octavia/controller/worker/v1/flows/l7rule_flows.py +0 -100
- octavia/controller/worker/v1/flows/listener_flows.py +0 -128
- octavia/controller/worker/v1/flows/load_balancer_flows.py +0 -692
- octavia/controller/worker/v1/flows/member_flows.py +0 -230
- octavia/controller/worker/v1/flows/pool_flows.py +0 -127
- octavia/controller/worker/v1/tasks/__init__.py +0 -11
- octavia/controller/worker/v1/tasks/amphora_driver_tasks.py +0 -453
- octavia/controller/worker/v1/tasks/cert_task.py +0 -51
- octavia/controller/worker/v1/tasks/compute_tasks.py +0 -335
- octavia/controller/worker/v1/tasks/database_tasks.py +0 -2756
- octavia/controller/worker/v1/tasks/lifecycle_tasks.py +0 -173
- octavia/controller/worker/v1/tasks/model_tasks.py +0 -41
- octavia/controller/worker/v1/tasks/network_tasks.py +0 -970
- octavia/controller/worker/v1/tasks/retry_tasks.py +0 -74
- octavia/tests/unit/api/drivers/amphora_driver/v1/__init__.py +0 -11
- octavia/tests/unit/api/drivers/amphora_driver/v1/test_driver.py +0 -824
- octavia/tests/unit/controller/queue/v1/__init__.py +0 -11
- octavia/tests/unit/controller/queue/v1/test_consumer.py +0 -61
- octavia/tests/unit/controller/queue/v1/test_endpoints.py +0 -189
- octavia/tests/unit/controller/worker/v1/__init__.py +0 -11
- octavia/tests/unit/controller/worker/v1/flows/__init__.py +0 -11
- octavia/tests/unit/controller/worker/v1/flows/test_amphora_flows.py +0 -474
- octavia/tests/unit/controller/worker/v1/flows/test_health_monitor_flows.py +0 -72
- octavia/tests/unit/controller/worker/v1/flows/test_l7policy_flows.py +0 -67
- octavia/tests/unit/controller/worker/v1/flows/test_l7rule_flows.py +0 -67
- octavia/tests/unit/controller/worker/v1/flows/test_listener_flows.py +0 -91
- octavia/tests/unit/controller/worker/v1/flows/test_load_balancer_flows.py +0 -431
- octavia/tests/unit/controller/worker/v1/flows/test_member_flows.py +0 -106
- octavia/tests/unit/controller/worker/v1/flows/test_pool_flows.py +0 -77
- octavia/tests/unit/controller/worker/v1/tasks/__init__.py +0 -11
- octavia/tests/unit/controller/worker/v1/tasks/test_amphora_driver_tasks.py +0 -792
- octavia/tests/unit/controller/worker/v1/tasks/test_cert_task.py +0 -46
- octavia/tests/unit/controller/worker/v1/tasks/test_compute_tasks.py +0 -634
- octavia/tests/unit/controller/worker/v1/tasks/test_database_tasks.py +0 -2615
- octavia/tests/unit/controller/worker/v1/tasks/test_database_tasks_quota.py +0 -415
- octavia/tests/unit/controller/worker/v1/tasks/test_lifecycle_tasks.py +0 -401
- octavia/tests/unit/controller/worker/v1/tasks/test_model_tasks.py +0 -44
- octavia/tests/unit/controller/worker/v1/tasks/test_network_tasks.py +0 -1788
- octavia/tests/unit/controller/worker/v1/tasks/test_retry_tasks.py +0 -47
- octavia/tests/unit/controller/worker/v1/test_controller_worker.py +0 -2096
- octavia-12.0.0.0rc2.dist-info/pbr.json +0 -1
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/LICENSE +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/README.rst +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/diskimage-create.sh +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/image-tests.sh +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/requirements.txt +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/test-requirements.txt +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/tox.ini +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/version.txt +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/scripts/octavia-wsgi +0 -0
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/LICENSE +0 -0
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/WHEEL +0 -0
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -123,10 +123,8 @@ class TestDatabaseTasksQuota(base.TestCase):
|
|
123
123
|
with mock.patch('octavia.db.api.'
|
124
124
|
'get_session') as mock_get_session_local:
|
125
125
|
mock_session = mock.MagicMock()
|
126
|
-
mock_lock_session = mock.MagicMock()
|
127
126
|
|
128
|
-
mock_get_session_local.
|
129
|
-
mock_lock_session]
|
127
|
+
mock_get_session_local.return_value = mock_session
|
130
128
|
|
131
129
|
if data_model == data_models.Pool:
|
132
130
|
task.revert(test_object, self.zero_pool_child_count, None)
|
@@ -136,19 +134,17 @@ class TestDatabaseTasksQuota(base.TestCase):
|
|
136
134
|
task.revert(test_object, None)
|
137
135
|
|
138
136
|
mock_check_quota_met.assert_called_once_with(
|
139
|
-
mock_session,
|
137
|
+
mock_session, mock_session, data_model,
|
140
138
|
project_id)
|
141
139
|
|
142
|
-
|
140
|
+
mock_session.commit.assert_called_once_with()
|
143
141
|
|
144
142
|
# revert with rollback
|
145
143
|
with mock.patch('octavia.db.api.'
|
146
144
|
'get_session') as mock_get_session_local:
|
147
145
|
mock_session = mock.MagicMock()
|
148
|
-
mock_lock_session = mock.MagicMock()
|
149
146
|
|
150
|
-
mock_get_session_local.
|
151
|
-
mock_lock_session]
|
147
|
+
mock_get_session_local.return_value = mock_session
|
152
148
|
|
153
149
|
mock_check_quota_met.side_effect = (
|
154
150
|
exceptions.OctaviaException('fail'))
|
@@ -160,7 +156,7 @@ class TestDatabaseTasksQuota(base.TestCase):
|
|
160
156
|
else:
|
161
157
|
task.revert(test_object, None)
|
162
158
|
|
163
|
-
|
159
|
+
mock_session.rollback.assert_called_once_with()
|
164
160
|
|
165
161
|
# revert with db exception
|
166
162
|
mock_check_quota_met.reset_mock()
|
@@ -238,27 +234,22 @@ class TestDatabaseTasksQuota(base.TestCase):
|
|
238
234
|
mock_session.reset_mock()
|
239
235
|
with mock.patch('octavia.db.api.'
|
240
236
|
'get_session') as mock_get_session_local:
|
241
|
-
|
242
|
-
mock_get_session_local.side_effect = [mock_session,
|
243
|
-
mock_lock_session,
|
244
|
-
mock_lock_session,
|
245
|
-
mock_lock_session,
|
246
|
-
mock_lock_session]
|
237
|
+
mock_get_session_local.return_value = mock_session
|
247
238
|
|
248
239
|
task.revert(project_id, pool_child_count, None)
|
249
240
|
|
250
|
-
calls = [mock.call(mock_session,
|
241
|
+
calls = [mock.call(mock_session, mock_session,
|
251
242
|
data_models.Pool, project_id),
|
252
|
-
mock.call(mock_session,
|
243
|
+
mock.call(mock_session, mock_session,
|
253
244
|
data_models.HealthMonitor, project_id),
|
254
|
-
mock.call(mock_session,
|
245
|
+
mock.call(mock_session, mock_session,
|
255
246
|
data_models.Member, project_id),
|
256
|
-
mock.call(mock_session,
|
247
|
+
mock.call(mock_session, mock_session,
|
257
248
|
data_models.Member, project_id)]
|
258
249
|
|
259
250
|
mock_check_quota_met.assert_has_calls(calls)
|
260
251
|
|
261
|
-
self.assertEqual(4,
|
252
|
+
self.assertEqual(4, mock_session.commit.call_count)
|
262
253
|
|
263
254
|
# revert with health monitor quota exception
|
264
255
|
mock_session.reset_mock()
|
@@ -266,28 +257,23 @@ class TestDatabaseTasksQuota(base.TestCase):
|
|
266
257
|
None]
|
267
258
|
with mock.patch('octavia.db.api.'
|
268
259
|
'get_session') as mock_get_session_local:
|
269
|
-
|
270
|
-
mock_get_session_local.side_effect = [mock_session,
|
271
|
-
mock_lock_session,
|
272
|
-
mock_lock_session,
|
273
|
-
mock_lock_session,
|
274
|
-
mock_lock_session]
|
260
|
+
mock_get_session_local.return_value = mock_session
|
275
261
|
|
276
262
|
task.revert(project_id, pool_child_count, None)
|
277
263
|
|
278
|
-
calls = [mock.call(mock_session,
|
264
|
+
calls = [mock.call(mock_session, mock_session,
|
279
265
|
data_models.Pool, project_id),
|
280
|
-
mock.call(mock_session,
|
266
|
+
mock.call(mock_session, mock_session,
|
281
267
|
data_models.HealthMonitor, project_id),
|
282
|
-
mock.call(mock_session,
|
268
|
+
mock.call(mock_session, mock_session,
|
283
269
|
data_models.Member, project_id),
|
284
|
-
mock.call(mock_session,
|
270
|
+
mock.call(mock_session, mock_session,
|
285
271
|
data_models.Member, project_id)]
|
286
272
|
|
287
273
|
mock_check_quota_met.assert_has_calls(calls)
|
288
274
|
|
289
|
-
self.assertEqual(3,
|
290
|
-
self.assertEqual(1,
|
275
|
+
self.assertEqual(3, mock_session.commit.call_count)
|
276
|
+
self.assertEqual(1, mock_session.rollback.call_count)
|
291
277
|
|
292
278
|
# revert with member quota exception
|
293
279
|
mock_session.reset_mock()
|
@@ -295,30 +281,25 @@ class TestDatabaseTasksQuota(base.TestCase):
|
|
295
281
|
Exception('fail')]
|
296
282
|
with mock.patch('octavia.db.api.'
|
297
283
|
'get_session') as mock_get_session_local:
|
298
|
-
|
299
|
-
mock_get_session_local.side_effect = [mock_session,
|
300
|
-
mock_lock_session,
|
301
|
-
mock_lock_session,
|
302
|
-
mock_lock_session,
|
303
|
-
mock_lock_session]
|
284
|
+
mock_get_session_local.return_value = mock_session
|
304
285
|
|
305
286
|
task.revert(project_id, pool_child_count, None)
|
306
287
|
|
307
|
-
calls = [mock.call(mock_session,
|
288
|
+
calls = [mock.call(mock_session, mock_session,
|
308
289
|
data_models.Pool, project_id),
|
309
|
-
mock.call(mock_session,
|
290
|
+
mock.call(mock_session, mock_session,
|
310
291
|
data_models.HealthMonitor, project_id),
|
311
|
-
mock.call(mock_session,
|
292
|
+
mock.call(mock_session, mock_session,
|
312
293
|
data_models.Member, project_id),
|
313
|
-
mock.call(mock_session,
|
294
|
+
mock.call(mock_session, mock_session,
|
314
295
|
data_models.Member, project_id)]
|
315
296
|
|
316
297
|
mock_check_quota_met.assert_has_calls(calls)
|
317
298
|
|
318
|
-
self.assertEqual(3,
|
319
|
-
self.assertEqual(1,
|
299
|
+
self.assertEqual(3, mock_session.commit.call_count)
|
300
|
+
self.assertEqual(1, mock_session.rollback.call_count)
|
320
301
|
|
321
|
-
@mock.patch('octavia.db.api.
|
302
|
+
@mock.patch('octavia.db.api.session')
|
322
303
|
@mock.patch('octavia.db.repositories.PoolRepository.get_children_count')
|
323
304
|
def test_count_pool_children_for_quota(self, repo_mock, session_mock):
|
324
305
|
project_id = uuidutils.generate_uuid()
|
@@ -385,24 +366,20 @@ class TestDatabaseTasksQuota(base.TestCase):
|
|
385
366
|
mock_session.reset_mock()
|
386
367
|
with mock.patch('octavia.db.api.'
|
387
368
|
'get_session') as mock_get_session_local:
|
388
|
-
|
389
|
-
mock_get_session_local.side_effect = [mock_session,
|
390
|
-
mock_lock_session,
|
391
|
-
mock_lock_session,
|
392
|
-
mock_lock_session]
|
369
|
+
mock_get_session_local.return_value = mock_session
|
393
370
|
|
394
371
|
task.revert(test_object, None)
|
395
372
|
|
396
|
-
calls = [mock.call(mock_session,
|
373
|
+
calls = [mock.call(mock_session, mock_session,
|
397
374
|
data_models.L7Policy, project_id),
|
398
|
-
mock.call(mock_session,
|
375
|
+
mock.call(mock_session, mock_session,
|
399
376
|
data_models.L7Rule, project_id),
|
400
|
-
mock.call(mock_session,
|
377
|
+
mock.call(mock_session, mock_session,
|
401
378
|
data_models.L7Rule, project_id)]
|
402
379
|
|
403
380
|
mock_check_quota_met.assert_has_calls(calls)
|
404
381
|
|
405
|
-
self.assertEqual(3,
|
382
|
+
self.assertEqual(3, mock_session.commit.call_count)
|
406
383
|
|
407
384
|
# revert with l7rule quota exception
|
408
385
|
mock_session.reset_mock()
|
@@ -410,25 +387,21 @@ class TestDatabaseTasksQuota(base.TestCase):
|
|
410
387
|
Exception('fail')]
|
411
388
|
with mock.patch('octavia.db.api.'
|
412
389
|
'get_session') as mock_get_session_local:
|
413
|
-
|
414
|
-
mock_get_session_local.side_effect = [mock_session,
|
415
|
-
mock_lock_session,
|
416
|
-
mock_lock_session,
|
417
|
-
mock_lock_session]
|
390
|
+
mock_get_session_local.return_value = mock_session
|
418
391
|
|
419
392
|
task.revert(test_object, None)
|
420
393
|
|
421
|
-
calls = [mock.call(mock_session,
|
394
|
+
calls = [mock.call(mock_session, mock_session,
|
422
395
|
data_models.L7Policy, project_id),
|
423
|
-
mock.call(mock_session,
|
396
|
+
mock.call(mock_session, mock_session,
|
424
397
|
data_models.L7Rule, project_id),
|
425
|
-
mock.call(mock_session,
|
398
|
+
mock.call(mock_session, mock_session,
|
426
399
|
data_models.L7Rule, project_id)]
|
427
400
|
|
428
401
|
mock_check_quota_met.assert_has_calls(calls)
|
429
402
|
|
430
|
-
self.assertEqual(2,
|
431
|
-
self.assertEqual(1,
|
403
|
+
self.assertEqual(2, mock_session.commit.call_count)
|
404
|
+
self.assertEqual(1, mock_session.rollback.call_count)
|
432
405
|
|
433
406
|
def test_decrement_l7rule_quota(self):
|
434
407
|
project_id = uuidutils.generate_uuid()
|
@@ -185,7 +185,6 @@ class TestNetworkTasks(base.TestCase):
|
|
185
185
|
mock_lb_repo_get.return_value = lb_mock
|
186
186
|
mock_driver.get_port.return_value = vrrp_port
|
187
187
|
mock_driver.get_subnet.return_value = member_subnet
|
188
|
-
mock_driver.get_network.return_value = mgmt_net
|
189
188
|
mock_driver.get_plugged_networks.return_value = [
|
190
189
|
mgmt_interface,
|
191
190
|
vrrp_interface,
|
@@ -231,9 +230,6 @@ class TestNetworkTasks(base.TestCase):
|
|
231
230
|
|
232
231
|
mgmt_subnet = data_models.Subnet(
|
233
232
|
id=self.mgmt_subnet_id, network_id=self.mgmt_net_id)
|
234
|
-
mgmt_net = data_models.Network(
|
235
|
-
id=self.mgmt_net_id,
|
236
|
-
subnets=[mgmt_subnet.id])
|
237
233
|
mgmt_ip_address = mock.MagicMock()
|
238
234
|
mgmt_interface = data_models.Interface(
|
239
235
|
network_id=self.mgmt_net_id,
|
@@ -304,7 +300,6 @@ class TestNetworkTasks(base.TestCase):
|
|
304
300
|
fixed_ips=vrrp_port.fixed_ips)]
|
305
301
|
mock_driver.get_port.return_value = vrrp_port
|
306
302
|
mock_driver.get_subnet.return_value = vrrp_subnet
|
307
|
-
mock_driver.get_network.return_value = mgmt_net
|
308
303
|
|
309
304
|
calc_delta = network_tasks.CalculateDelta()
|
310
305
|
|
@@ -407,10 +402,6 @@ class TestNetworkTasks(base.TestCase):
|
|
407
402
|
mgmt2_subnet = data_models.Subnet(
|
408
403
|
id=mgmt2_subnet_id,
|
409
404
|
network_id=mgmt2_net_id)
|
410
|
-
mgmt2_net = data_models.Network(
|
411
|
-
id=mgmt2_net_id,
|
412
|
-
subnets=[mgmt2_subnet.id]
|
413
|
-
)
|
414
405
|
mgmt2_interface = data_models.Interface(
|
415
406
|
network_id=mgmt2_net_id,
|
416
407
|
fixed_ips=[
|
@@ -419,7 +410,6 @@ class TestNetworkTasks(base.TestCase):
|
|
419
410
|
subnet_id=mgmt2_subnet_id,
|
420
411
|
)
|
421
412
|
])
|
422
|
-
mock_driver.get_network.return_value = mgmt2_net
|
423
413
|
az = {
|
424
414
|
constants.MANAGEMENT_NETWORK: mgmt2_net_id,
|
425
415
|
}
|
@@ -439,7 +429,6 @@ class TestNetworkTasks(base.TestCase):
|
|
439
429
|
# Test with one amp and one pool and one member, wrong network plugged
|
440
430
|
# Delta should be one network/subnet to add and one to remove
|
441
431
|
mock_driver.reset_mock()
|
442
|
-
mock_driver.get_network.return_value = mgmt_net
|
443
432
|
member_mock = mock.MagicMock()
|
444
433
|
member_mock.subnet_id = member_private_subnet.id
|
445
434
|
pool_mock.members = [member_mock]
|
@@ -1411,7 +1400,7 @@ class TestNetworkTasks(base.TestCase):
|
|
1411
1400
|
net_task.execute(listener)
|
1412
1401
|
mock_driver.update_vip.assert_called_once_with(lb, for_delete=True)
|
1413
1402
|
|
1414
|
-
@mock.patch('octavia.db.api.get_session'
|
1403
|
+
@mock.patch('octavia.db.api.get_session')
|
1415
1404
|
@mock.patch('octavia.db.repositories.AmphoraRepository.get')
|
1416
1405
|
@mock.patch('octavia.db.repositories.LoadBalancerRepository.get')
|
1417
1406
|
def test_get_amphora_network_configs_by_id(
|
@@ -1430,8 +1419,8 @@ class TestNetworkTasks(base.TestCase):
|
|
1430
1419
|
|
1431
1420
|
mock_driver.get_network_configs.assert_called_once_with(
|
1432
1421
|
'mock load balancer', amphora='mock amphora')
|
1433
|
-
mock_amp_get.assert_called_once_with(
|
1434
|
-
mock_lb_get.assert_called_once_with(
|
1422
|
+
mock_amp_get.assert_called_once_with(mock_get_session(), id=AMP_ID)
|
1423
|
+
mock_lb_get.assert_called_once_with(mock_get_session(), id=LB_ID)
|
1435
1424
|
|
1436
1425
|
@mock.patch('octavia.db.repositories.LoadBalancerRepository.get')
|
1437
1426
|
@mock.patch('octavia.db.api.get_session', return_value=_session_mock)
|
@@ -1820,7 +1820,7 @@ class TestControllerWorker(base.TestCase):
|
|
1820
1820
|
flow_utils.get_failover_amphora_flow,
|
1821
1821
|
mock_amphora.to_dict(), 1, store=expected_stored_params)
|
1822
1822
|
|
1823
|
-
@mock.patch('octavia.controller.worker.
|
1823
|
+
@mock.patch('octavia.controller.worker.v2.flows.amphora_flows.'
|
1824
1824
|
'AmphoraFlows.get_failover_amphora_flow')
|
1825
1825
|
def test_failover_amp_missing_amp(self,
|
1826
1826
|
mock_get_amp_failover,
|
@@ -1893,7 +1893,7 @@ class TestControllerWorker(base.TestCase):
|
|
1893
1893
|
cw.failover_amphora,
|
1894
1894
|
AMP_ID, reraise=True)
|
1895
1895
|
|
1896
|
-
@mock.patch('octavia.controller.worker.
|
1896
|
+
@mock.patch('octavia.controller.worker.v2.flows.amphora_flows.'
|
1897
1897
|
'AmphoraFlows.get_failover_amphora_flow')
|
1898
1898
|
def test_failover_amp_no_lb(self,
|
1899
1899
|
mock_get_failover_amp_flow,
|