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.
Files changed (193) hide show
  1. octavia/amphorae/backends/agent/api_server/osutils.py +1 -0
  2. octavia/amphorae/backends/agent/api_server/plug.py +21 -7
  3. octavia/amphorae/backends/agent/api_server/templates/amphora-netns.systemd.j2 +2 -2
  4. octavia/amphorae/backends/agent/api_server/util.py +21 -0
  5. octavia/amphorae/backends/health_daemon/health_daemon.py +9 -3
  6. octavia/amphorae/backends/health_daemon/health_sender.py +2 -0
  7. octavia/amphorae/backends/utils/interface.py +14 -6
  8. octavia/amphorae/backends/utils/interface_file.py +6 -3
  9. octavia/amphorae/backends/utils/keepalivedlvs_query.py +8 -9
  10. octavia/amphorae/drivers/driver_base.py +1 -2
  11. octavia/amphorae/drivers/haproxy/rest_api_driver.py +11 -25
  12. octavia/amphorae/drivers/health/heartbeat_udp.py +34 -24
  13. octavia/amphorae/drivers/keepalived/jinja/jinja_cfg.py +3 -12
  14. octavia/amphorae/drivers/noop_driver/driver.py +3 -5
  15. octavia/api/common/pagination.py +4 -4
  16. octavia/api/drivers/amphora_driver/v2/driver.py +11 -5
  17. octavia/api/drivers/driver_agent/driver_get.py +22 -14
  18. octavia/api/drivers/driver_agent/driver_updater.py +8 -4
  19. octavia/api/drivers/utils.py +4 -2
  20. octavia/api/healthcheck/healthcheck_plugins.py +4 -2
  21. octavia/api/root_controller.py +4 -1
  22. octavia/api/v2/controllers/amphora.py +35 -38
  23. octavia/api/v2/controllers/availability_zone_profiles.py +43 -33
  24. octavia/api/v2/controllers/availability_zones.py +22 -18
  25. octavia/api/v2/controllers/flavor_profiles.py +37 -28
  26. octavia/api/v2/controllers/flavors.py +19 -15
  27. octavia/api/v2/controllers/health_monitor.py +44 -33
  28. octavia/api/v2/controllers/l7policy.py +52 -40
  29. octavia/api/v2/controllers/l7rule.py +68 -55
  30. octavia/api/v2/controllers/listener.py +88 -61
  31. octavia/api/v2/controllers/load_balancer.py +52 -34
  32. octavia/api/v2/controllers/member.py +63 -52
  33. octavia/api/v2/controllers/pool.py +55 -42
  34. octavia/api/v2/controllers/quotas.py +5 -3
  35. octavia/api/v2/types/listener.py +15 -0
  36. octavia/cmd/octavia_worker.py +0 -3
  37. octavia/cmd/status.py +1 -4
  38. octavia/common/clients.py +25 -45
  39. octavia/common/config.py +64 -22
  40. octavia/common/constants.py +3 -2
  41. octavia/common/data_models.py +7 -1
  42. octavia/common/jinja/haproxy/combined_listeners/jinja_cfg.py +12 -1
  43. octavia/common/jinja/haproxy/combined_listeners/templates/macros.j2 +5 -2
  44. octavia/common/jinja/lvs/jinja_cfg.py +4 -2
  45. octavia/common/keystone.py +58 -5
  46. octavia/common/validate.py +35 -0
  47. octavia/compute/drivers/noop_driver/driver.py +6 -0
  48. octavia/controller/healthmanager/health_manager.py +3 -6
  49. octavia/controller/housekeeping/house_keeping.py +36 -37
  50. octavia/controller/worker/amphora_rate_limit.py +5 -4
  51. octavia/controller/worker/task_utils.py +57 -41
  52. octavia/controller/worker/v2/controller_worker.py +160 -103
  53. octavia/controller/worker/v2/flows/listener_flows.py +3 -0
  54. octavia/controller/worker/v2/flows/load_balancer_flows.py +9 -14
  55. octavia/controller/worker/v2/tasks/amphora_driver_tasks.py +152 -91
  56. octavia/controller/worker/v2/tasks/compute_tasks.py +4 -2
  57. octavia/controller/worker/v2/tasks/database_tasks.py +542 -400
  58. octavia/controller/worker/v2/tasks/network_tasks.py +119 -79
  59. octavia/db/api.py +26 -23
  60. octavia/db/base_models.py +2 -2
  61. octavia/db/healthcheck.py +2 -1
  62. octavia/db/migration/alembic_migrations/versions/632152d2d32e_add_http_strict_transport_security_.py +42 -0
  63. octavia/db/models.py +12 -2
  64. octavia/db/prepare.py +2 -0
  65. octavia/db/repositories.py +462 -482
  66. octavia/hacking/checks.py +1 -1
  67. octavia/network/base.py +0 -14
  68. octavia/network/drivers/neutron/allowed_address_pairs.py +92 -135
  69. octavia/network/drivers/neutron/base.py +65 -77
  70. octavia/network/drivers/neutron/utils.py +69 -85
  71. octavia/network/drivers/noop_driver/driver.py +0 -7
  72. octavia/statistics/drivers/update_db.py +10 -10
  73. octavia/tests/common/constants.py +91 -84
  74. octavia/tests/common/sample_data_models.py +13 -1
  75. octavia/tests/fixtures.py +32 -0
  76. octavia/tests/functional/amphorae/backend/agent/api_server/test_server.py +9 -10
  77. octavia/tests/functional/api/drivers/driver_agent/test_driver_agent.py +260 -15
  78. octavia/tests/functional/api/test_root_controller.py +3 -28
  79. octavia/tests/functional/api/v2/base.py +5 -3
  80. octavia/tests/functional/api/v2/test_amphora.py +18 -5
  81. octavia/tests/functional/api/v2/test_availability_zone_profiles.py +1 -0
  82. octavia/tests/functional/api/v2/test_listener.py +51 -19
  83. octavia/tests/functional/api/v2/test_load_balancer.py +10 -1
  84. octavia/tests/functional/db/base.py +31 -16
  85. octavia/tests/functional/db/test_models.py +27 -28
  86. octavia/tests/functional/db/test_repositories.py +407 -50
  87. octavia/tests/unit/amphorae/backends/agent/api_server/test_amphora_info.py +2 -0
  88. octavia/tests/unit/amphorae/backends/agent/api_server/test_osutils.py +1 -1
  89. octavia/tests/unit/amphorae/backends/agent/api_server/test_plug.py +54 -6
  90. octavia/tests/unit/amphorae/backends/agent/api_server/test_util.py +35 -0
  91. octavia/tests/unit/amphorae/backends/health_daemon/test_health_daemon.py +8 -0
  92. octavia/tests/unit/amphorae/backends/health_daemon/test_health_sender.py +18 -0
  93. octavia/tests/unit/amphorae/backends/utils/test_interface.py +81 -0
  94. octavia/tests/unit/amphorae/backends/utils/test_interface_file.py +2 -0
  95. octavia/tests/unit/amphorae/backends/utils/test_keepalivedlvs_query.py +129 -5
  96. octavia/tests/unit/amphorae/drivers/haproxy/test_rest_api_driver_1_0.py +42 -20
  97. octavia/tests/unit/amphorae/drivers/health/test_heartbeat_udp.py +18 -20
  98. octavia/tests/unit/amphorae/drivers/keepalived/jinja/test_jinja_cfg.py +4 -4
  99. octavia/tests/unit/amphorae/drivers/noop_driver/test_driver.py +4 -1
  100. octavia/tests/unit/api/drivers/driver_agent/test_driver_get.py +3 -3
  101. octavia/tests/unit/api/drivers/driver_agent/test_driver_updater.py +11 -13
  102. octavia/tests/unit/base.py +6 -0
  103. octavia/tests/unit/cmd/test_interface.py +2 -2
  104. octavia/tests/unit/cmd/test_status.py +2 -2
  105. octavia/tests/unit/common/jinja/haproxy/combined_listeners/test_jinja_cfg.py +152 -1
  106. octavia/tests/unit/common/sample_configs/sample_configs_combined.py +10 -3
  107. octavia/tests/unit/common/test_clients.py +0 -39
  108. octavia/tests/unit/common/test_keystone.py +54 -0
  109. octavia/tests/unit/common/test_validate.py +67 -0
  110. octavia/tests/unit/controller/healthmanager/test_health_manager.py +8 -22
  111. octavia/tests/unit/controller/housekeeping/test_house_keeping.py +3 -64
  112. octavia/tests/unit/controller/worker/test_amphora_rate_limit.py +1 -1
  113. octavia/tests/unit/controller/worker/test_task_utils.py +44 -24
  114. octavia/tests/unit/controller/worker/v2/flows/test_load_balancer_flows.py +0 -1
  115. octavia/tests/unit/controller/worker/v2/tasks/test_amphora_driver_tasks.py +49 -26
  116. octavia/tests/unit/controller/worker/v2/tasks/test_database_tasks.py +399 -196
  117. octavia/tests/unit/controller/worker/v2/tasks/test_database_tasks_quota.py +37 -64
  118. octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py +3 -14
  119. octavia/tests/unit/controller/worker/v2/test_controller_worker.py +2 -2
  120. octavia/tests/unit/network/drivers/neutron/test_allowed_address_pairs.py +456 -561
  121. octavia/tests/unit/network/drivers/neutron/test_base.py +181 -194
  122. octavia/tests/unit/network/drivers/neutron/test_utils.py +14 -30
  123. octavia/tests/unit/statistics/drivers/test_update_db.py +7 -5
  124. {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/README.rst +1 -1
  125. {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/AUTHORS +4 -0
  126. {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/METADATA +4 -4
  127. {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/RECORD +141 -189
  128. {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/entry_points.txt +1 -2
  129. octavia-13.0.0.0rc1.dist-info/pbr.json +1 -0
  130. octavia/api/drivers/amphora_driver/v1/__init__.py +0 -11
  131. octavia/api/drivers/amphora_driver/v1/driver.py +0 -547
  132. octavia/controller/queue/v1/__init__.py +0 -11
  133. octavia/controller/queue/v1/consumer.py +0 -64
  134. octavia/controller/queue/v1/endpoints.py +0 -160
  135. octavia/controller/worker/v1/__init__.py +0 -11
  136. octavia/controller/worker/v1/controller_worker.py +0 -1157
  137. octavia/controller/worker/v1/flows/__init__.py +0 -11
  138. octavia/controller/worker/v1/flows/amphora_flows.py +0 -610
  139. octavia/controller/worker/v1/flows/health_monitor_flows.py +0 -105
  140. octavia/controller/worker/v1/flows/l7policy_flows.py +0 -94
  141. octavia/controller/worker/v1/flows/l7rule_flows.py +0 -100
  142. octavia/controller/worker/v1/flows/listener_flows.py +0 -128
  143. octavia/controller/worker/v1/flows/load_balancer_flows.py +0 -692
  144. octavia/controller/worker/v1/flows/member_flows.py +0 -230
  145. octavia/controller/worker/v1/flows/pool_flows.py +0 -127
  146. octavia/controller/worker/v1/tasks/__init__.py +0 -11
  147. octavia/controller/worker/v1/tasks/amphora_driver_tasks.py +0 -453
  148. octavia/controller/worker/v1/tasks/cert_task.py +0 -51
  149. octavia/controller/worker/v1/tasks/compute_tasks.py +0 -335
  150. octavia/controller/worker/v1/tasks/database_tasks.py +0 -2756
  151. octavia/controller/worker/v1/tasks/lifecycle_tasks.py +0 -173
  152. octavia/controller/worker/v1/tasks/model_tasks.py +0 -41
  153. octavia/controller/worker/v1/tasks/network_tasks.py +0 -970
  154. octavia/controller/worker/v1/tasks/retry_tasks.py +0 -74
  155. octavia/tests/unit/api/drivers/amphora_driver/v1/__init__.py +0 -11
  156. octavia/tests/unit/api/drivers/amphora_driver/v1/test_driver.py +0 -824
  157. octavia/tests/unit/controller/queue/v1/__init__.py +0 -11
  158. octavia/tests/unit/controller/queue/v1/test_consumer.py +0 -61
  159. octavia/tests/unit/controller/queue/v1/test_endpoints.py +0 -189
  160. octavia/tests/unit/controller/worker/v1/__init__.py +0 -11
  161. octavia/tests/unit/controller/worker/v1/flows/__init__.py +0 -11
  162. octavia/tests/unit/controller/worker/v1/flows/test_amphora_flows.py +0 -474
  163. octavia/tests/unit/controller/worker/v1/flows/test_health_monitor_flows.py +0 -72
  164. octavia/tests/unit/controller/worker/v1/flows/test_l7policy_flows.py +0 -67
  165. octavia/tests/unit/controller/worker/v1/flows/test_l7rule_flows.py +0 -67
  166. octavia/tests/unit/controller/worker/v1/flows/test_listener_flows.py +0 -91
  167. octavia/tests/unit/controller/worker/v1/flows/test_load_balancer_flows.py +0 -431
  168. octavia/tests/unit/controller/worker/v1/flows/test_member_flows.py +0 -106
  169. octavia/tests/unit/controller/worker/v1/flows/test_pool_flows.py +0 -77
  170. octavia/tests/unit/controller/worker/v1/tasks/__init__.py +0 -11
  171. octavia/tests/unit/controller/worker/v1/tasks/test_amphora_driver_tasks.py +0 -792
  172. octavia/tests/unit/controller/worker/v1/tasks/test_cert_task.py +0 -46
  173. octavia/tests/unit/controller/worker/v1/tasks/test_compute_tasks.py +0 -634
  174. octavia/tests/unit/controller/worker/v1/tasks/test_database_tasks.py +0 -2615
  175. octavia/tests/unit/controller/worker/v1/tasks/test_database_tasks_quota.py +0 -415
  176. octavia/tests/unit/controller/worker/v1/tasks/test_lifecycle_tasks.py +0 -401
  177. octavia/tests/unit/controller/worker/v1/tasks/test_model_tasks.py +0 -44
  178. octavia/tests/unit/controller/worker/v1/tasks/test_network_tasks.py +0 -1788
  179. octavia/tests/unit/controller/worker/v1/tasks/test_retry_tasks.py +0 -47
  180. octavia/tests/unit/controller/worker/v1/test_controller_worker.py +0 -2096
  181. octavia-12.0.0.0rc2.dist-info/pbr.json +0 -1
  182. {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/LICENSE +0 -0
  183. {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/README.rst +0 -0
  184. {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/diskimage-create.sh +0 -0
  185. {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/image-tests.sh +0 -0
  186. {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/requirements.txt +0 -0
  187. {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/test-requirements.txt +0 -0
  188. {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/tox.ini +0 -0
  189. {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/version.txt +0 -0
  190. {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/scripts/octavia-wsgi +0 -0
  191. {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/LICENSE +0 -0
  192. {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/WHEEL +0 -0
  193. {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -2657,6 +2657,10 @@ class TestLoadBalancer(base.BaseAPITest):
2657
2657
  prov='bad_driver', user_msg='broken')
2658
2658
  self.delete(self.LB_PATH.format(lb_id=api_lb.get('id')), status=501)
2659
2659
 
2660
+ response = self.get(self.LB_PATH.format(
2661
+ lb_id=api_lb.get('id'))).json.get(self.root_tag)
2662
+ self.assertEqual(constants.ACTIVE, response['provisioning_status'])
2663
+
2660
2664
  @mock.patch('octavia.api.drivers.utils.call_provider')
2661
2665
  def test_create_with_provider_unsupport_option(self, mock_provider):
2662
2666
  mock_provider.side_effect = exceptions.ProviderUnsupportedOptionError(
@@ -2879,7 +2883,10 @@ class TestLoadBalancerGraph(base.BaseAPITest):
2879
2883
  'allowed_cidrs': None,
2880
2884
  'tls_ciphers': None,
2881
2885
  'tls_versions': None,
2882
- 'alpn_protocols': None
2886
+ 'alpn_protocols': None,
2887
+ 'hsts_include_subdomains': False,
2888
+ 'hsts_max_age': None,
2889
+ 'hsts_preload': False,
2883
2890
  }
2884
2891
  if create_sni_containers:
2885
2892
  create_listener['sni_container_refs'] = create_sni_containers
@@ -4045,6 +4052,7 @@ class TestLoadBalancerGraph(base.BaseAPITest):
4045
4052
  bytes_out=random.randint(1, 9),
4046
4053
  total_connections=random.randint(1, 9),
4047
4054
  request_errors=random.randint(1, 9))
4055
+ self.session.commit()
4048
4056
 
4049
4057
  response = self._getStats(lb['id'])
4050
4058
  self.assertEqual(ls['bytes_in'], response['bytes_in'])
@@ -4072,6 +4080,7 @@ class TestLoadBalancerGraph(base.BaseAPITest):
4072
4080
  bytes_out=random.randint(1, 9),
4073
4081
  total_connections=random.randint(1, 9),
4074
4082
  request_errors=random.randint(1, 9))
4083
+ self.session.commit()
4075
4084
 
4076
4085
  auth_strategy = self.conf.conf.api_settings.get('auth_strategy')
4077
4086
  self.conf.config(group='api_settings', auth_strategy=constants.TESTING)
@@ -25,11 +25,17 @@ from octavia.db import api as db_api
25
25
  from octavia.db import base_models
26
26
  from octavia.db import models
27
27
 
28
+ from octavia.tests import fixtures as oc_fixtures
29
+
28
30
 
29
31
  class OctaviaDBTestBase(test_base.BaseTestCase):
30
32
 
31
33
  def setUp(self, connection_string='sqlite://'):
32
34
  super().setUp()
35
+
36
+ self.connection_string = connection_string
37
+ self.warning_fixture = self.useFixture(oc_fixtures.WarningsFixture())
38
+
33
39
  # NOTE(blogan): doing this for now because using the engine and
34
40
  # session set up in the fixture for test_base.DbTestCase does not work
35
41
  # with the API functional tests. Need to investigate more if this
@@ -37,21 +43,17 @@ class OctaviaDBTestBase(test_base.BaseTestCase):
37
43
  conf = self.useFixture(oslo_fixture.Config(config.cfg.CONF))
38
44
  conf.config(group="database", connection=connection_string)
39
45
 
40
- # We need to get our own Facade so that the file backed sqlite tests
41
- # don't use the _FACADE singleton. Some tests will use in-memory
42
- # sqlite, some will use a file backed sqlite.
43
- if 'sqlite:///' in connection_string:
44
- facade = db_session.EngineFacade.from_config(cfg.CONF,
45
- sqlite_fk=True)
46
- engine = facade.get_engine()
47
- self.session = facade.get_session(expire_on_commit=True,
48
- autocommit=True)
49
- else:
50
- engine = db_api.get_engine()
51
- self.session = db_api.get_session()
46
+ # Disable pool_timeout when using sqlite with a file
47
+ # pool_timeout is not support by sqlalchemy 2 with SQLite/NullPool
48
+ if connection_string.startswith('sqlite:///'):
49
+ conf.config(group="database", pool_timeout=None)
50
+
51
+ engine, self.session = self._get_db_engine_session()
52
52
 
53
53
  base_models.BASE.metadata.create_all(engine)
54
- self._seed_lookup_tables(self.session)
54
+
55
+ with self.session.begin():
56
+ self._seed_lookup_tables(self.session)
55
57
 
56
58
  def clear_tables():
57
59
  """Unregister all data models."""
@@ -62,6 +64,20 @@ class OctaviaDBTestBase(test_base.BaseTestCase):
62
64
 
63
65
  self.addCleanup(clear_tables)
64
66
 
67
+ def _get_db_engine_session(self):
68
+ # We need to get our own Facade so that the file backed sqlite tests
69
+ # don't use the _FACADE singleton. Some tests will use in-memory
70
+ # sqlite, some will use a file backed sqlite.
71
+ if 'sqlite:///' in self.connection_string:
72
+ facade = db_session.EngineFacade.from_config(cfg.CONF,
73
+ sqlite_fk=True)
74
+ engine = facade.get_engine()
75
+ session = facade.get_session(expire_on_commit=True)
76
+ else:
77
+ engine = db_api.get_engine()
78
+ session = db_api.get_session()
79
+ return engine, session
80
+
65
81
  def _seed_lookup_tables(self, session):
66
82
  self._seed_lookup_table(
67
83
  session, constants.SUPPORTED_PROVISIONING_STATUSES,
@@ -123,6 +139,5 @@ class OctaviaDBTestBase(test_base.BaseTestCase):
123
139
 
124
140
  def _seed_lookup_table(self, session, name_list, model_cls):
125
141
  for name in name_list:
126
- with session.begin():
127
- model = model_cls(name=name)
128
- session.add(model)
142
+ model = model_cls(name=name)
143
+ session.add(model)
@@ -32,9 +32,9 @@ class ModelTestMixin(object):
32
32
  FAKE_AZ = 'zone1'
33
33
 
34
34
  def _insert(self, session, model_cls, model_kwargs):
35
- with session.begin():
36
- model = model_cls(**model_kwargs)
37
- session.add(model)
35
+ model = model_cls(**model_kwargs)
36
+ session.add(model)
37
+ session.commit()
38
38
  return model
39
39
 
40
40
  def create_flavor_profile(self, session, **overrides):
@@ -230,9 +230,8 @@ class PoolModelTest(base.OctaviaDBTestBase, ModelTestMixin):
230
230
  def test_delete(self):
231
231
  pool = self.create_pool(self.session)
232
232
  id = pool.id
233
- with self.session.begin():
234
- self.session.delete(pool)
235
- self.session.flush()
233
+ self.session.delete(pool)
234
+ self.session.commit()
236
235
  new_pool = self.session.query(
237
236
  models.Pool).filter_by(id=id).first()
238
237
  self.assertIsNone(new_pool)
@@ -302,6 +301,7 @@ class MemberModelTest(base.OctaviaDBTestBase, ModelTestMixin):
302
301
 
303
302
  member_id = member.id
304
303
  member.enabled = False
304
+ self.session.commit()
305
305
 
306
306
  new_member = self.session.query(
307
307
  models.Member).filter_by(id=member_id).first()
@@ -311,9 +311,11 @@ class MemberModelTest(base.OctaviaDBTestBase, ModelTestMixin):
311
311
  def test_delete(self):
312
312
  member = self.create_member(self.session, self.pool.id)
313
313
  member_id = member.id
314
- with self.session.begin():
315
- self.session.delete(member)
316
- self.session.flush()
314
+ self.session.commit()
315
+
316
+ self.session.delete(member)
317
+ self.session.commit()
318
+
317
319
  new_member = self.session.query(
318
320
  models.Member).filter_by(id=member_id).first()
319
321
  self.assertIsNone(new_member)
@@ -424,9 +426,8 @@ class ListenerModelTest(base.OctaviaDBTestBase, ModelTestMixin):
424
426
  def test_delete(self):
425
427
  listener = self.create_listener(self.session)
426
428
  listener_id = listener.id
427
- with self.session.begin():
428
- self.session.delete(listener)
429
- self.session.flush()
429
+ self.session.delete(listener)
430
+ self.session.commit()
430
431
  new_listener = self.session.query(
431
432
  models.Listener).filter_by(id=listener_id).first()
432
433
  self.assertIsNone(new_listener)
@@ -578,9 +579,8 @@ class LoadBalancerModelTest(base.OctaviaDBTestBase, ModelTestMixin):
578
579
  def test_delete(self):
579
580
  load_balancer = self.create_load_balancer(self.session)
580
581
  lb_id = load_balancer.id
581
- with self.session.begin():
582
- self.session.delete(load_balancer)
583
- self.session.flush()
582
+ self.session.delete(load_balancer)
583
+ self.session.commit()
584
584
  new_load_balancer = self.session.query(
585
585
  models.LoadBalancer).filter_by(id=lb_id).first()
586
586
  self.assertIsNone(new_load_balancer)
@@ -745,7 +745,7 @@ class AmphoraHealthModelTest(base.OctaviaDBTestBase, ModelTestMixin):
745
745
  new_amphora_health = self.session.query(
746
746
  models.AmphoraHealth).filter_by(
747
747
  amphora_id=amphora_health.amphora_id).first()
748
- self.assertEqual(newdate, new_amphora_health.last_update.date())
748
+ self.assertEqual(newdate, new_amphora_health.last_update)
749
749
 
750
750
  def test_delete(self):
751
751
  amphora_health = self.create_amphora_health(
@@ -787,9 +787,8 @@ class L7PolicyModelTest(base.OctaviaDBTestBase, ModelTestMixin):
787
787
  def test_delete(self):
788
788
  l7policy = self.create_l7policy(self.session, self.listener.id)
789
789
  l7policy_id = l7policy.id
790
- with self.session.begin():
791
- self.session.delete(l7policy)
792
- self.session.flush()
790
+ self.session.delete(l7policy)
791
+ self.session.commit()
793
792
  new_l7policy = self.session.query(
794
793
  models.L7Policy).filter_by(id=l7policy_id).first()
795
794
  self.assertIsNone(new_l7policy)
@@ -908,9 +907,8 @@ class L7RuleModelTest(base.OctaviaDBTestBase, ModelTestMixin):
908
907
  def test_delete(self):
909
908
  l7rule = self.create_l7rule(self.session, self.l7policy.id)
910
909
  l7rule_id = l7rule.id
911
- with self.session.begin():
912
- self.session.delete(l7rule)
913
- self.session.flush()
910
+ self.session.delete(l7rule)
911
+ self.session.commit()
914
912
  new_l7rule = self.session.query(
915
913
  models.L7Rule).filter_by(id=l7rule_id).first()
916
914
  self.assertIsNone(new_l7rule)
@@ -1825,10 +1823,11 @@ class FlavorModelTest(base.OctaviaDBTestBase, ModelTestMixin):
1825
1823
  flavor = self.create_flavor(self.session, self.profile.id)
1826
1824
  self.assertIsNotNone(flavor.id)
1827
1825
  id = flavor.id
1826
+ self.session.commit()
1827
+
1828
+ self.session.delete(flavor)
1829
+ self.session.commit()
1828
1830
 
1829
- with self.session.begin():
1830
- self.session.delete(flavor)
1831
- self.session.flush()
1832
1831
  new_flavor = self.session.query(
1833
1832
  models.Flavor).filter_by(id=id).first()
1834
1833
  self.assertIsNone(new_flavor)
@@ -1847,10 +1846,10 @@ class FlavorProfileModelTest(base.OctaviaDBTestBase, ModelTestMixin):
1847
1846
  fp = self.create_flavor_profile(self.session)
1848
1847
  self.assertIsNotNone(fp.id)
1849
1848
  id = fp.id
1849
+ self.session.commit()
1850
1850
 
1851
- with self.session.begin():
1852
- self.session.delete(fp)
1853
- self.session.flush()
1851
+ self.session.delete(fp)
1852
+ self.session.commit()
1854
1853
  new_fp = self.session.query(
1855
1854
  models.FlavorProfile).filter_by(id=id).first()
1856
1855
  self.assertIsNone(new_fp)