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
@@ -1,2615 +0,0 @@
1
- # Copyright 2015 Hewlett-Packard Development Company, L.P.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"); you may
4
- # not use this file except in compliance with the License. You may obtain
5
- # a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
- # License for the specific language governing permissions and limitations
13
- # under the License.
14
- #
15
- import random
16
- from unittest import mock
17
-
18
- from cryptography import fernet
19
- from oslo_db import exception as odb_exceptions
20
- from oslo_utils import uuidutils
21
- from sqlalchemy.orm import exc
22
- from taskflow.types import failure
23
-
24
- from octavia.common import constants
25
- from octavia.common import data_models
26
- from octavia.common import utils
27
- from octavia.controller.worker.v1.tasks import database_tasks
28
- from octavia.db import repositories as repo
29
- import octavia.tests.unit.base as base
30
-
31
-
32
- AMP_ID = uuidutils.generate_uuid()
33
- COMPUTE_ID = uuidutils.generate_uuid()
34
- LB_ID = uuidutils.generate_uuid()
35
- SERVER_GROUP_ID = uuidutils.generate_uuid()
36
- LB_NET_IP = '192.0.2.2'
37
- LISTENER_ID = uuidutils.generate_uuid()
38
- POOL_ID = uuidutils.generate_uuid()
39
- HM_ID = uuidutils.generate_uuid()
40
- MEMBER_ID = uuidutils.generate_uuid()
41
- PORT_ID = uuidutils.generate_uuid()
42
- SUBNET_ID = uuidutils.generate_uuid()
43
- VRRP_PORT_ID = uuidutils.generate_uuid()
44
- HA_PORT_ID = uuidutils.generate_uuid()
45
- L7POLICY_ID = uuidutils.generate_uuid()
46
- L7RULE_ID = uuidutils.generate_uuid()
47
- VIP_IP = '192.0.5.2'
48
- VRRP_IP = '192.0.5.3'
49
- HA_IP = '192.0.5.4'
50
- AMP_ROLE = 'FAKE_ROLE'
51
- VRRP_ID = 1
52
- VRRP_PRIORITY = random.randrange(100)
53
- CACHED_ZONE = 'zone1'
54
- IMAGE_ID = uuidutils.generate_uuid()
55
- COMPUTE_FLAVOR = uuidutils.generate_uuid()
56
-
57
- _amphora_mock = mock.MagicMock()
58
- _amphora_mock.id = AMP_ID
59
- _amphora_mock.compute_id = COMPUTE_ID
60
- _amphora_mock.lb_network_ip = LB_NET_IP
61
- _amphora_mock.vrrp_ip = VRRP_IP
62
- _amphora_mock.ha_ip = HA_IP
63
- _amphora_mock.ha_port_id = HA_PORT_ID
64
- _amphora_mock.vrrp_port_id = VRRP_PORT_ID
65
- _amphora_mock.role = AMP_ROLE
66
- _amphora_mock.vrrp_id = VRRP_ID
67
- _amphora_mock.vrrp_priority = VRRP_PRIORITY
68
- _amphorae = [_amphora_mock]
69
- _loadbalancer_mock = mock.MagicMock()
70
- _loadbalancer_mock.id = LB_ID
71
- _loadbalancer_mock.amphorae = [_amphora_mock]
72
- _pool_mock = mock.MagicMock()
73
- _pool_mock.id = POOL_ID
74
- _l7policy_mock = mock.MagicMock()
75
- _l7policy_mock.id = L7POLICY_ID
76
- _l7rule_mock = mock.MagicMock()
77
- _l7rule_mock.id = L7RULE_ID
78
- _listener_mock = mock.MagicMock()
79
- _listener_mock.id = LISTENER_ID
80
- _tf_failure_mock = mock.Mock(spec=failure.Failure)
81
- _vip_mock = mock.MagicMock()
82
- _vip_mock.port_id = PORT_ID
83
- _vip_mock.subnet_id = SUBNET_ID
84
- _vip_mock.ip_address = VIP_IP
85
- _vrrp_group_mock = mock.MagicMock()
86
- _cert_mock = mock.MagicMock()
87
- _compute_mock = mock.MagicMock()
88
- _compute_mock.lb_network_ip = LB_NET_IP
89
- _compute_mock.cached_zone = CACHED_ZONE
90
- _compute_mock.image_id = IMAGE_ID
91
- _compute_mock.compute_flavor = COMPUTE_FLAVOR
92
-
93
-
94
- @mock.patch('octavia.db.repositories.AmphoraRepository.delete')
95
- @mock.patch('octavia.db.repositories.AmphoraRepository.update')
96
- @mock.patch('octavia.db.repositories.ListenerRepository.update')
97
- @mock.patch('octavia.db.repositories.LoadBalancerRepository.update')
98
- @mock.patch('octavia.db.api.get_session', return_value='TEST')
99
- @mock.patch('octavia.controller.worker.v1.tasks.database_tasks.LOG')
100
- @mock.patch('oslo_utils.uuidutils.generate_uuid', return_value=AMP_ID)
101
- class TestDatabaseTasks(base.TestCase):
102
-
103
- def setUp(self):
104
-
105
- self.health_mon_mock = mock.MagicMock()
106
- self.health_mon_mock.id = HM_ID
107
- self.health_mon_mock.pool_id = POOL_ID
108
-
109
- self.listener_mock = mock.MagicMock()
110
- self.listener_mock.id = LISTENER_ID
111
-
112
- self.loadbalancer_mock = mock.MagicMock()
113
- self.loadbalancer_mock.id = LB_ID
114
-
115
- self.member_mock = mock.MagicMock()
116
- self.member_mock.id = MEMBER_ID
117
-
118
- self.pool_mock = mock.MagicMock()
119
- self.pool_mock.id = POOL_ID
120
- self.pool_mock.health_monitor = self.health_mon_mock
121
-
122
- self.l7policy_mock = mock.MagicMock()
123
- self.l7policy_mock.id = L7POLICY_ID
124
-
125
- self.l7rule_mock = mock.MagicMock()
126
- self.l7rule_mock.id = L7RULE_ID
127
- self.l7rule_mock.l7policy = self.l7policy_mock
128
-
129
- super().setUp()
130
-
131
- @mock.patch('octavia.db.repositories.AmphoraRepository.create',
132
- return_value=_amphora_mock)
133
- def test_create_amphora_in_db(self,
134
- mock_create,
135
- mock_generate_uuid,
136
- mock_LOG,
137
- mock_get_session,
138
- mock_loadbalancer_repo_update,
139
- mock_listener_repo_update,
140
- mock_amphora_repo_update,
141
- mock_amphora_repo_delete):
142
-
143
- create_amp_in_db = database_tasks.CreateAmphoraInDB()
144
- amp_id = create_amp_in_db.execute()
145
-
146
- repo.AmphoraRepository.create.assert_called_once_with(
147
- 'TEST',
148
- id=AMP_ID,
149
- load_balancer_id=None,
150
- status=constants.PENDING_CREATE,
151
- cert_busy=False)
152
-
153
- self.assertEqual(_amphora_mock.id, amp_id)
154
-
155
- # Test the revert
156
- create_amp_in_db.revert(_tf_failure_mock)
157
- self.assertFalse(mock_amphora_repo_delete.called)
158
-
159
- mock_amphora_repo_delete.reset_mock()
160
- create_amp_in_db.revert(result='AMP')
161
- self.assertTrue(mock_amphora_repo_delete.called)
162
- mock_amphora_repo_delete.assert_called_once_with(
163
- 'TEST',
164
- id='AMP')
165
-
166
- # Test revert with exception
167
- mock_amphora_repo_delete.reset_mock()
168
- mock_amphora_repo_delete.side_effect = Exception('fail')
169
- create_amp_in_db.revert(result='AMP')
170
- self.assertTrue(mock_amphora_repo_delete.called)
171
- mock_amphora_repo_delete.assert_called_once_with(
172
- 'TEST',
173
- id='AMP')
174
-
175
- @mock.patch('octavia.db.repositories.ListenerRepository.delete')
176
- def test_delete_listener_in_db(self,
177
- mock_listener_repo_delete,
178
- mock_generate_uuid,
179
- mock_LOG,
180
- mock_get_session,
181
- mock_loadbalancer_repo_update,
182
- mock_listener_repo_update,
183
- mock_amphora_repo_update,
184
- mock_amphora_repo_delete):
185
-
186
- delete_listener = database_tasks.DeleteListenerInDB()
187
- delete_listener.execute(_listener_mock)
188
-
189
- repo.ListenerRepository.delete.assert_called_once_with(
190
- 'TEST',
191
- id=LISTENER_ID)
192
-
193
- @mock.patch('octavia.db.repositories.HealthMonitorRepository.update')
194
- @mock.patch('octavia.db.repositories.HealthMonitorRepository.delete')
195
- def test_delete_health_monitor_in_db(self,
196
- mock_health_mon_repo_delete,
197
- mock_health_mon_repo_update,
198
- mock_generate_uuid,
199
- mock_LOG,
200
- mock_get_session,
201
- mock_loadbalancer_repo_update,
202
- mock_listener_repo_update,
203
- mock_amphora_repo_update,
204
- mock_amphora_repo_delete):
205
-
206
- delete_health_mon = database_tasks.DeleteHealthMonitorInDB()
207
- delete_health_mon.execute(self.health_mon_mock)
208
-
209
- repo.HealthMonitorRepository.delete.assert_called_once_with(
210
- 'TEST', id=HM_ID)
211
-
212
- # Test the revert
213
- mock_health_mon_repo_delete.reset_mock()
214
- delete_health_mon.revert(self.health_mon_mock)
215
-
216
- repo.HealthMonitorRepository.update.assert_called_once_with(
217
- 'TEST', id=HM_ID, provisioning_status=constants.ERROR)
218
-
219
- # Test Not Found Exception
220
- mock_health_mon_repo_delete.reset_mock()
221
- mock_health_mon_repo_delete.side_effect = [exc.NoResultFound()]
222
- delete_health_mon.execute(self.health_mon_mock)
223
-
224
- repo.HealthMonitorRepository.delete.assert_called_once_with(
225
- 'TEST', id=HM_ID)
226
-
227
- @mock.patch('octavia.db.repositories.HealthMonitorRepository.update')
228
- @mock.patch('octavia.db.repositories.HealthMonitorRepository.delete')
229
- def test_delete_health_monitor_in_db_by_pool(self,
230
- mock_health_mon_repo_delete,
231
- mock_health_mon_repo_update,
232
- mock_generate_uuid,
233
- mock_LOG,
234
- mock_get_session,
235
- mock_loadbalancer_repo_update,
236
- mock_listener_repo_update,
237
- mock_amphora_repo_update,
238
- mock_amphora_repo_delete):
239
-
240
- delete_health_mon = database_tasks.DeleteHealthMonitorInDBByPool()
241
- delete_health_mon.execute(self.pool_mock)
242
-
243
- repo.HealthMonitorRepository.delete.assert_called_once_with(
244
- 'TEST',
245
- id=HM_ID)
246
-
247
- # Test the revert
248
- mock_health_mon_repo_delete.reset_mock()
249
- delete_health_mon.revert(self.pool_mock)
250
-
251
- repo.HealthMonitorRepository.update.assert_called_once_with(
252
- 'TEST', id=HM_ID, provisioning_status=constants.ERROR)
253
-
254
- # TODO(johnsom) fix once provisioning status added
255
- # repo.HealthMonitorRepository.update.assert_called_once_with(
256
- # 'TEST',
257
- # POOL_ID,
258
- # provisioning_status=constants.ERROR)
259
-
260
- @mock.patch('octavia.db.repositories.MemberRepository.delete')
261
- def test_delete_member_in_db(self,
262
- mock_member_repo_delete,
263
- mock_generate_uuid,
264
- mock_LOG,
265
- mock_get_session,
266
- mock_loadbalancer_repo_update,
267
- mock_listener_repo_update,
268
- mock_amphora_repo_update,
269
- mock_amphora_repo_delete):
270
-
271
- delete_member = database_tasks.DeleteMemberInDB()
272
- delete_member.execute(self.member_mock)
273
-
274
- repo.MemberRepository.delete.assert_called_once_with(
275
- 'TEST',
276
- id=MEMBER_ID)
277
-
278
- # Test the revert
279
-
280
- mock_member_repo_delete.reset_mock()
281
- delete_member.revert(self.member_mock)
282
-
283
- # TODO(johnsom) Fix
284
- # repo.MemberRepository.delete.assert_called_once_with(
285
- # 'TEST',
286
- # MEMBER_ID)
287
-
288
- @mock.patch('octavia.db.repositories.PoolRepository.delete')
289
- def test_delete_pool_in_db(self,
290
- mock_pool_repo_delete,
291
- mock_generate_uuid,
292
- mock_LOG,
293
- mock_get_session,
294
- mock_loadbalancer_repo_update,
295
- mock_listener_repo_update,
296
- mock_amphora_repo_update,
297
- mock_amphora_repo_delete):
298
-
299
- delete_pool = database_tasks.DeletePoolInDB()
300
- delete_pool.execute(_pool_mock)
301
-
302
- repo.PoolRepository.delete.assert_called_once_with(
303
- 'TEST',
304
- id=POOL_ID)
305
-
306
- # Test the revert
307
-
308
- mock_pool_repo_delete.reset_mock()
309
- delete_pool.revert(_pool_mock)
310
-
311
- # TODO(johnsom) Fix
312
- # repo.PoolRepository.update.assert_called_once_with(
313
- # 'TEST',
314
- # POOL_ID,
315
- # operating_status=constants.ERROR)
316
-
317
- @mock.patch('octavia.db.repositories.L7PolicyRepository.delete')
318
- def test_delete_l7policy_in_db(self,
319
- mock_l7policy_repo_delete,
320
- mock_generate_uuid,
321
- mock_LOG,
322
- mock_get_session,
323
- mock_loadbalancer_repo_update,
324
- mock_listener_repo_update,
325
- mock_amphora_repo_update,
326
- mock_amphora_repo_delete):
327
-
328
- delete_l7policy = database_tasks.DeleteL7PolicyInDB()
329
- delete_l7policy.execute(_l7policy_mock)
330
-
331
- repo.L7PolicyRepository.delete.assert_called_once_with(
332
- 'TEST',
333
- id=L7POLICY_ID)
334
-
335
- # Test the revert
336
-
337
- mock_l7policy_repo_delete.reset_mock()
338
- delete_l7policy.revert(_l7policy_mock)
339
-
340
- # TODO(sbalukoff) Fix
341
- # repo.ListenerRepository.update.assert_called_once_with(
342
- # 'TEST',
343
- # LISTENER_ID,
344
- # operating_status=constants.ERROR)
345
-
346
- @mock.patch('octavia.db.repositories.L7RuleRepository.delete')
347
- def test_delete_l7rule_in_db(self,
348
- mock_l7rule_repo_delete,
349
- mock_generate_uuid,
350
- mock_LOG,
351
- mock_get_session,
352
- mock_loadbalancer_repo_update,
353
- mock_listener_repo_update,
354
- mock_amphora_repo_update,
355
- mock_amphora_repo_delete):
356
-
357
- delete_l7rule = database_tasks.DeleteL7RuleInDB()
358
- delete_l7rule.execute(_l7rule_mock)
359
-
360
- repo.L7RuleRepository.delete.assert_called_once_with(
361
- 'TEST',
362
- id=L7RULE_ID)
363
-
364
- # Test the revert
365
-
366
- mock_l7rule_repo_delete.reset_mock()
367
- delete_l7rule.revert(_l7rule_mock)
368
-
369
- # TODO(sbalukoff) Fix
370
- # repo.ListenerRepository.update.assert_called_once_with(
371
- # 'TEST',
372
- # LISTENER_ID,
373
- # operating_status=constants.ERROR)
374
-
375
- @mock.patch('octavia.db.repositories.AmphoraRepository.get',
376
- return_value=_amphora_mock)
377
- def test_reload_amphora(self,
378
- mock_amp_get,
379
- mock_generate_uuid,
380
- mock_LOG,
381
- mock_get_session,
382
- mock_loadbalancer_repo_update,
383
- mock_listener_repo_update,
384
- mock_amphora_repo_update,
385
- mock_amphora_repo_delete):
386
-
387
- reload_amp = database_tasks.ReloadAmphora()
388
- amp = reload_amp.execute(AMP_ID)
389
-
390
- repo.AmphoraRepository.get.assert_called_once_with(
391
- 'TEST',
392
- id=AMP_ID)
393
-
394
- self.assertEqual(_amphora_mock, amp)
395
-
396
- @mock.patch('octavia.db.repositories.LoadBalancerRepository.get',
397
- return_value=_loadbalancer_mock)
398
- def test_reload_load_balancer(self,
399
- mock_lb_get,
400
- mock_generate_uuid,
401
- mock_LOG,
402
- mock_get_session,
403
- mock_loadbalancer_repo_update,
404
- mock_listener_repo_update,
405
- mock_amphora_repo_update,
406
- mock_amphora_repo_delete):
407
-
408
- reload_lb = database_tasks.ReloadLoadBalancer()
409
- lb = reload_lb.execute(LB_ID)
410
-
411
- repo.LoadBalancerRepository.get.assert_called_once_with(
412
- 'TEST',
413
- id=LB_ID)
414
-
415
- self.assertEqual(_loadbalancer_mock, lb)
416
-
417
- @mock.patch('octavia.db.repositories.LoadBalancerRepository.get',
418
- return_value=_loadbalancer_mock)
419
- @mock.patch('octavia.db.repositories.VipRepository.update')
420
- def test_update_vip_after_allocation(self,
421
- mock_vip_update,
422
- mock_loadbalancer_get,
423
- mock_generate_uuid,
424
- mock_LOG,
425
- mock_get_session,
426
- mock_loadbalancer_repo_update,
427
- mock_listener_repo_update,
428
- mock_amphora_repo_update,
429
- mock_amphora_repo_delete):
430
-
431
- update_vip = database_tasks.UpdateVIPAfterAllocation()
432
- loadbalancer = update_vip.execute(LB_ID, _vip_mock)
433
-
434
- self.assertEqual(_loadbalancer_mock, loadbalancer)
435
- mock_vip_update.assert_called_once_with('TEST',
436
- LB_ID,
437
- port_id=PORT_ID,
438
- subnet_id=SUBNET_ID,
439
- ip_address=VIP_IP)
440
- mock_loadbalancer_get.assert_called_once_with('TEST',
441
- id=LB_ID)
442
-
443
- def test_update_amphora_vip_data(self,
444
- mock_generate_uuid,
445
- mock_LOG,
446
- mock_get_session,
447
- mock_loadbalancer_repo_update,
448
- mock_listener_repo_update,
449
- mock_amphora_repo_update,
450
- mock_amphora_repo_delete):
451
-
452
- update_amp_vip_data = database_tasks.UpdateAmphoraeVIPData()
453
- update_amp_vip_data.execute(_amphorae)
454
-
455
- mock_amphora_repo_update.assert_called_once_with(
456
- 'TEST',
457
- AMP_ID,
458
- vrrp_ip=VRRP_IP,
459
- ha_ip=HA_IP,
460
- vrrp_port_id=VRRP_PORT_ID,
461
- ha_port_id=HA_PORT_ID,
462
- vrrp_id=1)
463
-
464
- def test_update_amphora_vip_data2(self,
465
- mock_generate_uuid,
466
- mock_LOG,
467
- mock_get_session,
468
- mock_loadbalancer_repo_update,
469
- mock_listener_repo_update,
470
- mock_amphora_repo_update,
471
- mock_amphora_repo_delete):
472
- update_amp_vip_data2 = database_tasks.UpdateAmphoraVIPData()
473
- update_amp_vip_data2.execute(_amphorae[0])
474
-
475
- mock_amphora_repo_update.assert_called_once_with(
476
- 'TEST',
477
- AMP_ID,
478
- vrrp_ip=VRRP_IP,
479
- ha_ip=HA_IP,
480
- vrrp_port_id=VRRP_PORT_ID,
481
- ha_port_id=HA_PORT_ID,
482
- vrrp_id=1)
483
-
484
- def test_update_amp_failover_details(self,
485
- mock_generate_uuid,
486
- mock_LOG,
487
- mock_get_session,
488
- mock_loadbalancer_repo_update,
489
- mock_listener_repo_update,
490
- mock_amphora_repo_update,
491
- mock_amphora_repo_delete):
492
- mock_base_port = mock.MagicMock()
493
- mock_base_port.id = VRRP_PORT_ID
494
- mock_fixed_ip = mock.MagicMock()
495
- mock_fixed_ip.ip_address = VRRP_IP
496
- mock_base_port.fixed_ips = [mock_fixed_ip]
497
- mock_vip = mock.MagicMock()
498
- mock_vip.ip_address = HA_IP
499
- mock_vip.port_id = HA_PORT_ID
500
-
501
- update_amp_fo_details = database_tasks.UpdateAmpFailoverDetails()
502
- update_amp_fo_details.execute(_amphora_mock, mock_vip, mock_base_port)
503
-
504
- mock_amphora_repo_update.assert_called_once_with(
505
- 'TEST',
506
- AMP_ID,
507
- vrrp_ip=VRRP_IP,
508
- ha_ip=HA_IP,
509
- vrrp_port_id=VRRP_PORT_ID,
510
- ha_port_id=HA_PORT_ID,
511
- vrrp_id=VRRP_ID)
512
-
513
- @mock.patch('octavia.db.repositories.AmphoraRepository.associate')
514
- def test_associate_failover_amphora_with_lb_id(
515
- self,
516
- mock_associate,
517
- mock_generate_uuid,
518
- mock_LOG,
519
- mock_get_session,
520
- mock_loadbalancer_repo_update,
521
- mock_listener_repo_update,
522
- mock_amphora_repo_update,
523
- mock_amphora_repo_delete):
524
-
525
- assoc_fo_amp_lb_id = database_tasks.AssociateFailoverAmphoraWithLBID()
526
- assoc_fo_amp_lb_id.execute(AMP_ID, LB_ID)
527
-
528
- mock_associate.assert_called_once_with('TEST',
529
- load_balancer_id=LB_ID,
530
- amphora_id=AMP_ID)
531
-
532
- # Test revert
533
- assoc_fo_amp_lb_id.revert(AMP_ID)
534
-
535
- mock_amphora_repo_update.assert_called_once_with('TEST',
536
- AMP_ID,
537
- loadbalancer_id=None)
538
-
539
- # Test revert with exception
540
- mock_amphora_repo_update.reset_mock()
541
- mock_amphora_repo_update.side_effect = Exception('fail')
542
-
543
- assoc_fo_amp_lb_id.revert(AMP_ID)
544
-
545
- mock_amphora_repo_update.assert_called_once_with('TEST',
546
- AMP_ID,
547
- loadbalancer_id=None)
548
-
549
- @mock.patch('octavia.db.repositories.AmphoraRepository.get',
550
- return_value=_amphora_mock)
551
- @mock.patch('octavia.db.repositories.LoadBalancerRepository.get',
552
- return_value=_loadbalancer_mock)
553
- def test_mark_lb_amphorae_deleted_in_db(self,
554
- mock_loadbalancer_repo_get,
555
- mock_amphora_repo_get,
556
- mock_generate_uuid,
557
- mock_LOG,
558
- mock_get_session,
559
- mock_loadbalancer_repo_update,
560
- mock_listener_repo_update,
561
- mock_amphora_repo_update,
562
- mock_amphora_repo_delete):
563
-
564
- mark_amp_deleted_in_db = (database_tasks.
565
- MarkLBAmphoraeDeletedInDB())
566
- mark_amp_deleted_in_db.execute(_loadbalancer_mock)
567
-
568
- repo.AmphoraRepository.update.assert_called_once_with(
569
- 'TEST',
570
- id=AMP_ID,
571
- status=constants.DELETED)
572
-
573
- @mock.patch('octavia.db.repositories.AmphoraRepository.get',
574
- return_value=_amphora_mock)
575
- @mock.patch('octavia.db.repositories.LoadBalancerRepository.get',
576
- return_value=_loadbalancer_mock)
577
- def test_mark_amphora_allocated_in_db(self,
578
- mock_loadbalancer_repo_get,
579
- mock_amphora_repo_get,
580
- mock_generate_uuid,
581
- mock_LOG,
582
- mock_get_session,
583
- mock_loadbalancer_repo_update,
584
- mock_listener_repo_update,
585
- mock_amphora_repo_update,
586
- mock_amphora_repo_delete):
587
-
588
- mark_amp_allocated_in_db = (database_tasks.
589
- MarkAmphoraAllocatedInDB())
590
- mark_amp_allocated_in_db.execute(_amphora_mock,
591
- self.loadbalancer_mock.id)
592
-
593
- repo.AmphoraRepository.update.assert_called_once_with(
594
- 'TEST',
595
- AMP_ID,
596
- status=constants.AMPHORA_ALLOCATED,
597
- compute_id=COMPUTE_ID,
598
- lb_network_ip=LB_NET_IP,
599
- load_balancer_id=LB_ID)
600
-
601
- # Test the revert
602
-
603
- mock_amphora_repo_update.reset_mock()
604
- mark_amp_allocated_in_db.revert(None, _amphora_mock,
605
- self.loadbalancer_mock.id)
606
-
607
- repo.AmphoraRepository.update.assert_called_once_with(
608
- 'TEST',
609
- id=AMP_ID,
610
- status=constants.ERROR)
611
-
612
- # Test the revert with exception
613
-
614
- mock_amphora_repo_update.reset_mock()
615
- mock_amphora_repo_update.side_effect = Exception('fail')
616
- mark_amp_allocated_in_db.revert(None, _amphora_mock,
617
- self.loadbalancer_mock.id)
618
-
619
- repo.AmphoraRepository.update.assert_called_once_with(
620
- 'TEST',
621
- id=AMP_ID,
622
- status=constants.ERROR)
623
-
624
- def test_mark_amphora_booting_in_db(self,
625
- mock_generate_uuid,
626
- mock_LOG,
627
- mock_get_session,
628
- mock_loadbalancer_repo_update,
629
- mock_listener_repo_update,
630
- mock_amphora_repo_update,
631
- mock_amphora_repo_delete):
632
-
633
- mark_amp_booting_in_db = database_tasks.MarkAmphoraBootingInDB()
634
- mark_amp_booting_in_db.execute(_amphora_mock.id,
635
- _amphora_mock.compute_id)
636
-
637
- repo.AmphoraRepository.update.assert_called_once_with(
638
- 'TEST',
639
- AMP_ID,
640
- status=constants.AMPHORA_BOOTING,
641
- compute_id=COMPUTE_ID)
642
-
643
- # Test the revert
644
-
645
- mock_amphora_repo_update.reset_mock()
646
- mark_amp_booting_in_db.revert(None, _amphora_mock.id,
647
- _amphora_mock.compute_id)
648
-
649
- repo.AmphoraRepository.update.assert_called_once_with(
650
- 'TEST',
651
- AMP_ID,
652
- status=constants.ERROR,
653
- compute_id=COMPUTE_ID)
654
-
655
- # Test the revert with exception
656
-
657
- mock_amphora_repo_update.reset_mock()
658
- mock_amphora_repo_update.side_effect = Exception('fail')
659
- mark_amp_booting_in_db.revert(None, _amphora_mock.id,
660
- _amphora_mock.compute_id)
661
-
662
- repo.AmphoraRepository.update.assert_called_once_with(
663
- 'TEST',
664
- AMP_ID,
665
- status=constants.ERROR,
666
- compute_id=COMPUTE_ID)
667
-
668
- def test_mark_amphora_deleted_in_db(self,
669
- mock_generate_uuid,
670
- mock_LOG,
671
- mock_get_session,
672
- mock_loadbalancer_repo_update,
673
- mock_listener_repo_update,
674
- mock_amphora_repo_update,
675
- mock_amphora_repo_delete):
676
-
677
- mark_amp_deleted_in_db = database_tasks.MarkAmphoraDeletedInDB()
678
- mark_amp_deleted_in_db.execute(_amphora_mock)
679
-
680
- repo.AmphoraRepository.update.assert_called_once_with(
681
- 'TEST',
682
- AMP_ID,
683
- status=constants.DELETED)
684
-
685
- # Test the revert
686
- mock_amphora_repo_update.reset_mock()
687
- mark_amp_deleted_in_db.revert(_amphora_mock)
688
-
689
- repo.AmphoraRepository.update.assert_called_once_with(
690
- 'TEST',
691
- id=AMP_ID,
692
- status=constants.ERROR)
693
-
694
- # Test the revert with exception
695
- mock_amphora_repo_update.reset_mock()
696
- mock_amphora_repo_update.side_effect = Exception('fail')
697
- mark_amp_deleted_in_db.revert(_amphora_mock)
698
-
699
- repo.AmphoraRepository.update.assert_called_once_with(
700
- 'TEST',
701
- id=AMP_ID,
702
- status=constants.ERROR)
703
-
704
- def test_mark_amphora_pending_delete_in_db(self,
705
- mock_generate_uuid,
706
- mock_LOG,
707
- mock_get_session,
708
- mock_loadbalancer_repo_update,
709
- mock_listener_repo_update,
710
- mock_amphora_repo_update,
711
- mock_amphora_repo_delete):
712
-
713
- mark_amp_pending_delete_in_db = (database_tasks.
714
- MarkAmphoraPendingDeleteInDB())
715
- mark_amp_pending_delete_in_db.execute(_amphora_mock)
716
-
717
- repo.AmphoraRepository.update.assert_called_once_with(
718
- 'TEST',
719
- AMP_ID,
720
- status=constants.PENDING_DELETE)
721
-
722
- # Test the revert
723
- mock_amphora_repo_update.reset_mock()
724
- mark_amp_pending_delete_in_db.revert(_amphora_mock)
725
-
726
- repo.AmphoraRepository.update.assert_called_once_with(
727
- 'TEST',
728
- id=AMP_ID,
729
- status=constants.ERROR)
730
-
731
- # Test the revert with exception
732
- mock_amphora_repo_update.reset_mock()
733
- mock_amphora_repo_update.side_effect = Exception('fail')
734
-
735
- mark_amp_pending_delete_in_db.revert(_amphora_mock)
736
-
737
- repo.AmphoraRepository.update.assert_called_once_with(
738
- 'TEST',
739
- id=AMP_ID,
740
- status=constants.ERROR)
741
-
742
- def test_mark_amphora_pending_update_in_db(self,
743
- mock_generate_uuid,
744
- mock_LOG,
745
- mock_get_session,
746
- mock_loadbalancer_repo_update,
747
- mock_listener_repo_update,
748
- mock_amphora_repo_update,
749
- mock_amphora_repo_delete):
750
-
751
- mark_amp_pending_update_in_db = (database_tasks.
752
- MarkAmphoraPendingUpdateInDB())
753
- mark_amp_pending_update_in_db.execute(_amphora_mock)
754
-
755
- repo.AmphoraRepository.update.assert_called_once_with(
756
- 'TEST',
757
- AMP_ID,
758
- status=constants.PENDING_UPDATE)
759
-
760
- # Test the revert
761
- mock_amphora_repo_update.reset_mock()
762
- mark_amp_pending_update_in_db.revert(_amphora_mock)
763
-
764
- repo.AmphoraRepository.update.assert_called_once_with(
765
- 'TEST',
766
- id=AMP_ID,
767
- status=constants.ERROR)
768
-
769
- # Test the revert with exception
770
- mock_amphora_repo_update.reset_mock()
771
- mock_amphora_repo_update.side_effect = Exception('fail')
772
- mark_amp_pending_update_in_db.revert(_amphora_mock)
773
-
774
- repo.AmphoraRepository.update.assert_called_once_with(
775
- 'TEST',
776
- id=AMP_ID,
777
- status=constants.ERROR)
778
-
779
- def test_mark_amphora_ready_in_db(self,
780
- mock_generate_uuid,
781
- mock_LOG,
782
- mock_get_session,
783
- mock_loadbalancer_repo_update,
784
- mock_listener_repo_update,
785
- mock_amphora_repo_update,
786
- mock_amphora_repo_delete):
787
-
788
- _amphora_mock.lb_network_ip = LB_NET_IP
789
-
790
- mark_amp_ready_in_db = database_tasks.MarkAmphoraReadyInDB()
791
- mark_amp_ready_in_db.execute(_amphora_mock)
792
-
793
- repo.AmphoraRepository.update.assert_called_once_with(
794
- 'TEST',
795
- AMP_ID,
796
- status=constants.AMPHORA_READY,
797
- compute_id=COMPUTE_ID,
798
- lb_network_ip=LB_NET_IP)
799
-
800
- # Test the revert
801
-
802
- mock_amphora_repo_update.reset_mock()
803
- mark_amp_ready_in_db.revert(_amphora_mock)
804
-
805
- repo.AmphoraRepository.update.assert_called_once_with(
806
- 'TEST',
807
- AMP_ID,
808
- status=constants.ERROR,
809
- compute_id=COMPUTE_ID,
810
- lb_network_ip=LB_NET_IP)
811
-
812
- # Test the revert with exception
813
-
814
- mock_amphora_repo_update.reset_mock()
815
- mock_amphora_repo_update.side_effect = Exception('fail')
816
- mark_amp_ready_in_db.revert(_amphora_mock)
817
-
818
- repo.AmphoraRepository.update.assert_called_once_with(
819
- 'TEST',
820
- AMP_ID,
821
- status=constants.ERROR,
822
- compute_id=COMPUTE_ID,
823
- lb_network_ip=LB_NET_IP)
824
-
825
- @mock.patch('octavia.db.repositories.AmphoraRepository.get')
826
- def test_update_amphora_info(self,
827
- mock_amphora_repo_get,
828
- mock_generate_uuid,
829
- mock_LOG,
830
- mock_get_session,
831
- mock_loadbalancer_repo_update,
832
- mock_listener_repo_update,
833
- mock_amphora_repo_update,
834
- mock_amphora_repo_delete):
835
-
836
- update_amphora_info = database_tasks.UpdateAmphoraInfo()
837
- update_amphora_info.execute(AMP_ID, _compute_mock)
838
-
839
- repo.AmphoraRepository.update.assert_called_once_with(
840
- 'TEST',
841
- AMP_ID,
842
- lb_network_ip=LB_NET_IP,
843
- cached_zone=CACHED_ZONE,
844
- image_id=IMAGE_ID,
845
- compute_flavor=COMPUTE_FLAVOR)
846
-
847
- repo.AmphoraRepository.get.assert_called_once_with(
848
- 'TEST',
849
- id=AMP_ID)
850
-
851
- def test_mark_listener_deleted_in_db(self,
852
- mock_generate_uuid,
853
- mock_LOG,
854
- mock_get_session,
855
- mock_loadbalancer_repo_update,
856
- mock_listener_repo_update,
857
- mock_amphora_repo_update,
858
- mock_amphora_repo_delete):
859
-
860
- mark_listener_deleted = database_tasks.MarkListenerDeletedInDB()
861
- mark_listener_deleted.execute(self.listener_mock)
862
-
863
- repo.ListenerRepository.update.assert_called_once_with(
864
- 'TEST',
865
- LISTENER_ID,
866
- provisioning_status=constants.DELETED)
867
-
868
- # Test the revert
869
- mock_listener_repo_update.reset_mock()
870
- mark_listener_deleted.revert(self.listener_mock)
871
-
872
- repo.ListenerRepository.update.assert_called_once_with(
873
- 'TEST',
874
- id=LISTENER_ID,
875
- provisioning_status=constants.ERROR)
876
-
877
- # Test the revert with exception
878
- mock_listener_repo_update.reset_mock()
879
- mock_listener_repo_update.side_effect = Exception('fail')
880
- mark_listener_deleted.revert(self.listener_mock)
881
-
882
- repo.ListenerRepository.update.assert_called_once_with(
883
- 'TEST',
884
- id=LISTENER_ID,
885
- provisioning_status=constants.ERROR)
886
-
887
- def test_mark_listener_pending_deleted_in_db(self,
888
- mock_generate_uuid,
889
- mock_LOG,
890
- mock_get_session,
891
- mock_loadbalancer_repo_update,
892
- mock_listener_repo_update,
893
- mock_amphora_repo_update,
894
- mock_amphora_repo_delete):
895
-
896
- mark_listener_pending_delete = (database_tasks.
897
- MarkListenerPendingDeleteInDB())
898
- mark_listener_pending_delete.execute(self.listener_mock)
899
-
900
- repo.ListenerRepository.update.assert_called_once_with(
901
- 'TEST',
902
- LISTENER_ID,
903
- provisioning_status=constants.PENDING_DELETE)
904
-
905
- # Test the revert
906
- mock_listener_repo_update.reset_mock()
907
- mark_listener_pending_delete.revert(self.listener_mock)
908
-
909
- repo.ListenerRepository.update.assert_called_once_with(
910
- 'TEST',
911
- id=LISTENER_ID,
912
- provisioning_status=constants.ERROR)
913
-
914
- # Test the revert with exception
915
- mock_listener_repo_update.reset_mock()
916
- mock_listener_repo_update.side_effect = Exception('fail')
917
- mark_listener_pending_delete.revert(self.listener_mock)
918
-
919
- repo.ListenerRepository.update.assert_called_once_with(
920
- 'TEST',
921
- id=LISTENER_ID,
922
- provisioning_status=constants.ERROR)
923
-
924
- @mock.patch('octavia.db.repositories.ListenerRepository.'
925
- 'prov_status_active_if_not_error')
926
- def test_mark_lb_and_listeners_active_in_db(self,
927
- mock_list_not_error,
928
- mock_generate_uuid,
929
- mock_LOG,
930
- mock_get_session,
931
- mock_loadbalancer_repo_update,
932
- mock_listener_repo_update,
933
- mock_amphora_repo_update,
934
- mock_amphora_repo_delete):
935
-
936
- mark_lb_and_listeners_active = (database_tasks.
937
- MarkLBAndListenersActiveInDB())
938
- mark_lb_and_listeners_active.execute(self.loadbalancer_mock,
939
- [self.listener_mock])
940
-
941
- mock_list_not_error.assert_called_once_with('TEST', LISTENER_ID)
942
- repo.LoadBalancerRepository.update.assert_called_once_with(
943
- 'TEST',
944
- LB_ID,
945
- provisioning_status=constants.ACTIVE)
946
-
947
- # Test the revert
948
- mock_loadbalancer_repo_update.reset_mock()
949
- mock_listener_repo_update.reset_mock()
950
-
951
- mark_lb_and_listeners_active.revert(self.loadbalancer_mock,
952
- [self.listener_mock])
953
-
954
- repo.ListenerRepository.update.assert_called_once_with(
955
- 'TEST',
956
- id=LISTENER_ID,
957
- provisioning_status=constants.ERROR)
958
- repo.LoadBalancerRepository.update.assert_not_called()
959
-
960
- # Test the revert with exceptions
961
- mock_loadbalancer_repo_update.reset_mock()
962
- mock_loadbalancer_repo_update.side_effect = Exception('fail')
963
- mock_listener_repo_update.reset_mock()
964
- mock_listener_repo_update.side_effect = Exception('fail')
965
-
966
- mark_lb_and_listeners_active.revert(self.loadbalancer_mock,
967
- [self.listener_mock])
968
-
969
- repo.ListenerRepository.update.assert_called_once_with(
970
- 'TEST',
971
- id=LISTENER_ID,
972
- provisioning_status=constants.ERROR)
973
- repo.LoadBalancerRepository.update.assert_not_called()
974
-
975
- @mock.patch('octavia.common.tls_utils.cert_parser.get_cert_expiration',
976
- return_value=_cert_mock)
977
- def test_update_amphora_db_cert_exp(self,
978
- mock_generate_uuid,
979
- mock_LOG,
980
- mock_get_session,
981
- mock_loadbalancer_repo_update,
982
- mock_listener_repo_update,
983
- mock_amphora_repo_update,
984
- mock_amphora_repo_delete,
985
- mock_get_cert_exp):
986
-
987
- update_amp_cert = database_tasks.UpdateAmphoraDBCertExpiration()
988
- key = utils.get_compatible_server_certs_key_passphrase()
989
- fer = fernet.Fernet(key)
990
- _pem_mock = fer.encrypt(
991
- utils.get_compatible_value('test_cert')
992
- )
993
- update_amp_cert.execute(_amphora_mock.id, _pem_mock)
994
-
995
- repo.AmphoraRepository.update.assert_called_once_with(
996
- 'TEST',
997
- AMP_ID,
998
- cert_expiration=_cert_mock)
999
-
1000
- def test_update_amphora_cert_busy_to_false(self,
1001
- mock_generate_uuid,
1002
- mock_LOG,
1003
- mock_get_session,
1004
- mock_loadbalancer_repo_update,
1005
- mock_listener_repo_update,
1006
- mock_amphora_repo_update,
1007
- mock_amphora_repo_delete):
1008
- amp_cert_busy_to_F = database_tasks.UpdateAmphoraCertBusyToFalse()
1009
- amp_cert_busy_to_F.execute(_amphora_mock)
1010
- repo.AmphoraRepository.update.assert_called_once_with(
1011
- 'TEST',
1012
- AMP_ID,
1013
- cert_busy=False)
1014
-
1015
- def test_mark_LB_active_in_db(self,
1016
- mock_generate_uuid,
1017
- mock_LOG,
1018
- mock_get_session,
1019
- mock_loadbalancer_repo_update,
1020
- mock_listener_repo_update,
1021
- mock_amphora_repo_update,
1022
- mock_amphora_repo_delete):
1023
-
1024
- mark_loadbalancer_active = database_tasks.MarkLBActiveInDB()
1025
- mark_loadbalancer_active.execute(self.loadbalancer_mock)
1026
-
1027
- repo.LoadBalancerRepository.update.assert_called_once_with(
1028
- 'TEST',
1029
- LB_ID,
1030
- provisioning_status=constants.ACTIVE)
1031
- self.assertEqual(0, repo.ListenerRepository.update.call_count)
1032
-
1033
- # Test the revert
1034
- mock_loadbalancer_repo_update.reset_mock()
1035
- mark_loadbalancer_active.revert(self.loadbalancer_mock)
1036
-
1037
- repo.LoadBalancerRepository.update.assert_not_called()
1038
- self.assertEqual(0, repo.ListenerRepository.update.call_count)
1039
-
1040
- # Test the revert with exception
1041
- mock_loadbalancer_repo_update.reset_mock()
1042
- mock_loadbalancer_repo_update.side_effect = Exception('fail')
1043
- mark_loadbalancer_active.revert(self.loadbalancer_mock)
1044
-
1045
- repo.LoadBalancerRepository.update.assert_not_called()
1046
- self.assertEqual(0, repo.ListenerRepository.update.call_count)
1047
-
1048
- def test_mark_LB_active_in_db_and_listeners(self,
1049
- mock_generate_uuid,
1050
- mock_LOG,
1051
- mock_get_session,
1052
- mock_loadbalancer_repo_update,
1053
- mock_listener_repo_update,
1054
- mock_amphora_repo_update,
1055
- mock_amphora_repo_delete):
1056
- listeners = [data_models.Listener(id='listener1'),
1057
- data_models.Listener(id='listener2')]
1058
- lb = data_models.LoadBalancer(id=LB_ID, listeners=listeners)
1059
- mark_lb_active = database_tasks.MarkLBActiveInDB(mark_subobjects=True)
1060
- mark_lb_active.execute(lb)
1061
-
1062
- repo.LoadBalancerRepository.update.assert_called_once_with(
1063
- 'TEST',
1064
- lb.id,
1065
- provisioning_status=constants.ACTIVE)
1066
- self.assertEqual(2, repo.ListenerRepository.update.call_count)
1067
- repo.ListenerRepository.update.assert_has_calls(
1068
- [mock.call('TEST', listeners[0].id,
1069
- provisioning_status=constants.ACTIVE),
1070
- mock.call('TEST', listeners[1].id,
1071
- provisioning_status=constants.ACTIVE)])
1072
-
1073
- mock_loadbalancer_repo_update.reset_mock()
1074
- mock_listener_repo_update.reset_mock()
1075
- mark_lb_active.revert(lb)
1076
-
1077
- repo.LoadBalancerRepository.update.assert_not_called()
1078
- self.assertEqual(2, repo.ListenerRepository.update.call_count)
1079
- repo.ListenerRepository.update.assert_has_calls(
1080
- [mock.call('TEST', listeners[0].id,
1081
- provisioning_status=constants.ERROR),
1082
- mock.call('TEST', listeners[1].id,
1083
- provisioning_status=constants.ERROR)])
1084
-
1085
- @mock.patch('octavia.db.repositories.PoolRepository.update')
1086
- @mock.patch('octavia.db.repositories.MemberRepository.update')
1087
- @mock.patch('octavia.db.repositories.HealthMonitorRepository.update')
1088
- @mock.patch('octavia.db.repositories.L7PolicyRepository.update')
1089
- @mock.patch('octavia.db.repositories.L7RuleRepository.update')
1090
- def test_mark_LB_active_in_db_full_graph(self,
1091
- mock_l7r_repo_update,
1092
- mock_l7p_repo_update,
1093
- mock_hm_repo_update,
1094
- mock_member_repo_update,
1095
- mock_pool_repo_update,
1096
- mock_generate_uuid,
1097
- mock_LOG,
1098
- mock_get_session,
1099
- mock_loadbalancer_repo_update,
1100
- mock_listener_repo_update,
1101
- mock_amphora_repo_update,
1102
- mock_amphora_repo_delete):
1103
- unused_pool = data_models.Pool(id='unused_pool')
1104
- members1 = [data_models.Member(id='member1'),
1105
- data_models.Member(id='member2')]
1106
- health_monitor = data_models.HealthMonitor(id='hm1')
1107
- default_pool = data_models.Pool(id='default_pool',
1108
- members=members1,
1109
- health_monitor=health_monitor)
1110
- listener1 = data_models.Listener(id='listener1',
1111
- default_pool=default_pool)
1112
- members2 = [data_models.Member(id='member3'),
1113
- data_models.Member(id='member4')]
1114
- redirect_pool = data_models.Pool(id='redirect_pool',
1115
- members=members2)
1116
- l7rules = [data_models.L7Rule(id='rule1')]
1117
- redirect_policy = data_models.L7Policy(id='redirect_policy',
1118
- redirect_pool=redirect_pool,
1119
- l7rules=l7rules)
1120
- l7policies = [redirect_policy]
1121
- listener2 = data_models.Listener(id='listener2',
1122
- l7policies=l7policies)
1123
- listener2.l7policies = l7policies
1124
- listeners = [listener1, listener2]
1125
- pools = [default_pool, redirect_pool, unused_pool]
1126
-
1127
- lb = data_models.LoadBalancer(id=LB_ID, listeners=listeners,
1128
- pools=pools)
1129
- mark_lb_active = database_tasks.MarkLBActiveInDB(mark_subobjects=True)
1130
- mark_lb_active.execute(lb)
1131
-
1132
- repo.LoadBalancerRepository.update.assert_called_once_with(
1133
- 'TEST',
1134
- lb.id,
1135
- provisioning_status=constants.ACTIVE)
1136
- self.assertEqual(2, repo.ListenerRepository.update.call_count)
1137
- repo.ListenerRepository.update.assert_has_calls(
1138
- [mock.call('TEST', listeners[0].id,
1139
- provisioning_status=constants.ACTIVE),
1140
- mock.call('TEST', listeners[1].id,
1141
- provisioning_status=constants.ACTIVE)])
1142
- self.assertEqual(2, repo.PoolRepository.update.call_count)
1143
- repo.PoolRepository.update.assert_has_calls(
1144
- [mock.call('TEST', default_pool.id,
1145
- provisioning_status=constants.ACTIVE),
1146
- mock.call('TEST', redirect_pool.id,
1147
- provisioning_status=constants.ACTIVE)])
1148
- self.assertEqual(4, repo.MemberRepository.update.call_count)
1149
- repo.MemberRepository.update.assert_has_calls(
1150
- [mock.call('TEST', members1[0].id,
1151
- provisioning_status=constants.ACTIVE),
1152
- mock.call('TEST', members1[1].id,
1153
- provisioning_status=constants.ACTIVE),
1154
- mock.call('TEST', members2[0].id,
1155
- provisioning_status=constants.ACTIVE),
1156
- mock.call('TEST', members2[1].id,
1157
- provisioning_status=constants.ACTIVE)])
1158
- self.assertEqual(1, repo.HealthMonitorRepository.update.call_count)
1159
- repo.HealthMonitorRepository.update.assert_has_calls(
1160
- [mock.call('TEST', health_monitor.id,
1161
- provisioning_status=constants.ACTIVE)])
1162
- self.assertEqual(1, repo.L7PolicyRepository.update.call_count)
1163
- repo.L7PolicyRepository.update.assert_has_calls(
1164
- [mock.call('TEST', l7policies[0].id,
1165
- provisioning_status=constants.ACTIVE)])
1166
- self.assertEqual(1, repo.L7RuleRepository.update.call_count)
1167
- repo.L7RuleRepository.update.assert_has_calls(
1168
- [mock.call('TEST', l7rules[0].id,
1169
- provisioning_status=constants.ACTIVE)])
1170
-
1171
- mock_loadbalancer_repo_update.reset_mock()
1172
- mock_listener_repo_update.reset_mock()
1173
- mock_pool_repo_update.reset_mock()
1174
- mock_member_repo_update.reset_mock()
1175
- mock_hm_repo_update.reset_mock()
1176
- mock_l7p_repo_update.reset_mock()
1177
- mock_l7r_repo_update.reset_mock()
1178
- mark_lb_active.revert(lb)
1179
-
1180
- repo.LoadBalancerRepository.update.assert_not_called()
1181
- self.assertEqual(2, repo.ListenerRepository.update.call_count)
1182
- repo.ListenerRepository.update.assert_has_calls(
1183
- [mock.call('TEST', listeners[0].id,
1184
- provisioning_status=constants.ERROR),
1185
- mock.call('TEST', listeners[1].id,
1186
- provisioning_status=constants.ERROR)])
1187
- self.assertEqual(2, repo.PoolRepository.update.call_count)
1188
- repo.PoolRepository.update.assert_has_calls(
1189
- [mock.call('TEST', default_pool.id,
1190
- provisioning_status=constants.ERROR),
1191
- mock.call('TEST', redirect_pool.id,
1192
- provisioning_status=constants.ERROR)])
1193
- self.assertEqual(4, repo.MemberRepository.update.call_count)
1194
- repo.MemberRepository.update.assert_has_calls(
1195
- [mock.call('TEST', members1[0].id,
1196
- provisioning_status=constants.ERROR),
1197
- mock.call('TEST', members1[1].id,
1198
- provisioning_status=constants.ERROR),
1199
- mock.call('TEST', members2[0].id,
1200
- provisioning_status=constants.ERROR),
1201
- mock.call('TEST', members2[1].id,
1202
- provisioning_status=constants.ERROR)])
1203
- self.assertEqual(1, repo.HealthMonitorRepository.update.call_count)
1204
- repo.HealthMonitorRepository.update.assert_has_calls(
1205
- [mock.call('TEST', health_monitor.id,
1206
- provisioning_status=constants.ERROR)])
1207
- self.assertEqual(1, repo.L7PolicyRepository.update.call_count)
1208
- repo.L7PolicyRepository.update.assert_has_calls(
1209
- [mock.call('TEST', l7policies[0].id,
1210
- provisioning_status=constants.ERROR)])
1211
- self.assertEqual(1, repo.L7RuleRepository.update.call_count)
1212
- repo.L7RuleRepository.update.assert_has_calls(
1213
- [mock.call('TEST', l7rules[0].id,
1214
- provisioning_status=constants.ERROR)])
1215
-
1216
- def test_mark_LB_deleted_in_db(self,
1217
- mock_generate_uuid,
1218
- mock_LOG,
1219
- mock_get_session,
1220
- mock_loadbalancer_repo_update,
1221
- mock_listener_repo_update,
1222
- mock_amphora_repo_update,
1223
- mock_amphora_repo_delete):
1224
-
1225
- mark_loadbalancer_deleted = database_tasks.MarkLBDeletedInDB()
1226
- mark_loadbalancer_deleted.execute(self.loadbalancer_mock)
1227
-
1228
- repo.LoadBalancerRepository.update.assert_called_once_with(
1229
- 'TEST',
1230
- LB_ID,
1231
- provisioning_status=constants.DELETED)
1232
-
1233
- # Test the revert
1234
- mock_loadbalancer_repo_update.reset_mock()
1235
- mark_loadbalancer_deleted.revert(self.loadbalancer_mock)
1236
-
1237
- repo.LoadBalancerRepository.update.assert_not_called()
1238
-
1239
- # Test the revert with exception
1240
- mock_loadbalancer_repo_update.reset_mock()
1241
- mock_loadbalancer_repo_update.side_effect = Exception('fail')
1242
- mark_loadbalancer_deleted.revert(self.loadbalancer_mock)
1243
-
1244
- repo.LoadBalancerRepository.update.assert_not_called()
1245
-
1246
- def test_mark_LB_pending_deleted_in_db(self,
1247
- mock_generate_uuid,
1248
- mock_LOG,
1249
- mock_get_session,
1250
- mock_loadbalancer_repo_update,
1251
- mock_listener_repo_update,
1252
- mock_amphora_repo_update,
1253
- mock_amphora_repo_delete):
1254
-
1255
- mark_loadbalancer_pending_delete = (database_tasks.
1256
- MarkLBPendingDeleteInDB())
1257
- mark_loadbalancer_pending_delete.execute(self.loadbalancer_mock)
1258
-
1259
- repo.LoadBalancerRepository.update.assert_called_once_with(
1260
- 'TEST',
1261
- LB_ID,
1262
- provisioning_status=constants.PENDING_DELETE)
1263
-
1264
- @mock.patch('octavia.db.repositories.HealthMonitorRepository.update')
1265
- def test_update_health_monitor_in_db(self,
1266
- mock_health_mon_repo_update,
1267
- mock_generate_uuid,
1268
- mock_LOG,
1269
- mock_get_session,
1270
- mock_loadbalancer_repo_update,
1271
- mock_listener_repo_update,
1272
- mock_amphora_repo_update,
1273
- mock_amphora_repo_delete):
1274
-
1275
- update_health_mon = database_tasks.UpdateHealthMonInDB()
1276
- update_health_mon.execute(self.health_mon_mock,
1277
- {'delay': 1, 'timeout': 2})
1278
-
1279
- repo.HealthMonitorRepository.update.assert_called_once_with(
1280
- 'TEST',
1281
- HM_ID,
1282
- delay=1, timeout=2)
1283
-
1284
- # Test the revert
1285
- mock_health_mon_repo_update.reset_mock()
1286
- update_health_mon.revert(self.health_mon_mock)
1287
-
1288
- repo.HealthMonitorRepository.update.assert_called_once_with(
1289
- 'TEST',
1290
- HM_ID,
1291
- provisioning_status=constants.ERROR)
1292
-
1293
- # Test the revert with exception
1294
- mock_health_mon_repo_update.reset_mock()
1295
- mock_health_mon_repo_update.side_effect = Exception('fail')
1296
- update_health_mon.revert(self.health_mon_mock)
1297
-
1298
- repo.HealthMonitorRepository.update.assert_called_once_with(
1299
- 'TEST',
1300
- HM_ID,
1301
- provisioning_status=constants.ERROR)
1302
-
1303
- def test_update_load_balancer_in_db(self,
1304
- mock_generate_uuid,
1305
- mock_LOG,
1306
- mock_get_session,
1307
- mock_loadbalancer_repo_update,
1308
- mock_listener_repo_update,
1309
- mock_amphora_repo_update,
1310
- mock_amphora_repo_delete):
1311
-
1312
- update_load_balancer = database_tasks.UpdateLoadbalancerInDB()
1313
- update_load_balancer.execute(self.loadbalancer_mock,
1314
- {'name': 'test', 'description': 'test2'})
1315
-
1316
- repo.LoadBalancerRepository.update.assert_called_once_with(
1317
- 'TEST',
1318
- LB_ID,
1319
- name='test', description='test2')
1320
-
1321
- @mock.patch('octavia.db.repositories.VipRepository.update')
1322
- def test_update_vip_in_db_during_update_loadbalancer(self,
1323
- mock_vip_update,
1324
- mock_generate_uuid,
1325
- mock_LOG,
1326
- mock_get_session,
1327
- mock_lb_update,
1328
- mock_listener_update,
1329
- mock_amphora_update,
1330
- mock_amphora_delete):
1331
-
1332
- self.loadbalancer_mock.vip.load_balancer_id = LB_ID
1333
- update_load_balancer = database_tasks.UpdateLoadbalancerInDB()
1334
- update_load_balancer.execute(self.loadbalancer_mock,
1335
- {'name': 'test',
1336
- 'description': 'test2',
1337
- 'vip': {'qos_policy_id': 'fool'}})
1338
-
1339
- repo.LoadBalancerRepository.update.assert_called_once_with(
1340
- 'TEST',
1341
- LB_ID,
1342
- name='test', description='test2')
1343
-
1344
- repo.VipRepository.update.assert_called_once_with('TEST', LB_ID,
1345
- qos_policy_id='fool')
1346
-
1347
- def test_update_listener_in_db(self,
1348
- mock_generate_uuid,
1349
- mock_LOG,
1350
- mock_get_session,
1351
- mock_loadbalancer_repo_update,
1352
- mock_listener_repo_update,
1353
- mock_amphora_repo_update,
1354
- mock_amphora_repo_delete):
1355
-
1356
- update_listener = database_tasks.UpdateListenerInDB()
1357
- update_listener.execute(self.listener_mock,
1358
- {'name': 'test', 'description': 'test2'})
1359
-
1360
- repo.ListenerRepository.update.assert_called_once_with(
1361
- 'TEST',
1362
- LISTENER_ID,
1363
- name='test', description='test2')
1364
-
1365
- # Test the revert
1366
- mock_listener_repo_update.reset_mock()
1367
- update_listener.revert(self.listener_mock)
1368
- repo.ListenerRepository.update.assert_called_once_with(
1369
- 'TEST',
1370
- id=LISTENER_ID,
1371
- provisioning_status=constants.ERROR)
1372
-
1373
- # Test the revert
1374
- mock_listener_repo_update.reset_mock()
1375
- mock_listener_repo_update.side_effect = Exception('fail')
1376
- update_listener.revert(self.listener_mock)
1377
- repo.ListenerRepository.update.assert_called_once_with(
1378
- 'TEST',
1379
- id=LISTENER_ID,
1380
- provisioning_status=constants.ERROR)
1381
-
1382
- @mock.patch('octavia.db.repositories.MemberRepository.update')
1383
- def test_update_member_in_db(self,
1384
- mock_member_repo_update,
1385
- mock_generate_uuid,
1386
- mock_LOG,
1387
- mock_get_session,
1388
- mock_loadbalancer_repo_update,
1389
- mock_listener_repo_update,
1390
- mock_amphora_repo_update,
1391
- mock_amphora_repo_delete):
1392
-
1393
- update_member = database_tasks.UpdateMemberInDB()
1394
- update_member.execute(self.member_mock,
1395
- {'weight': 1, 'ip_address': '10.1.0.0'})
1396
-
1397
- repo.MemberRepository.update.assert_called_once_with(
1398
- 'TEST',
1399
- MEMBER_ID,
1400
- weight=1, ip_address='10.1.0.0')
1401
-
1402
- # Test the revert
1403
- mock_member_repo_update.reset_mock()
1404
- update_member.revert(self.member_mock)
1405
-
1406
- repo.MemberRepository.update.assert_called_once_with(
1407
- 'TEST',
1408
- MEMBER_ID,
1409
- provisioning_status=constants.ERROR)
1410
-
1411
- # Test the revert
1412
- mock_member_repo_update.reset_mock()
1413
- mock_member_repo_update.side_effect = Exception('fail')
1414
- update_member.revert(self.member_mock)
1415
-
1416
- repo.MemberRepository.update.assert_called_once_with(
1417
- 'TEST',
1418
- MEMBER_ID,
1419
- provisioning_status=constants.ERROR)
1420
-
1421
- @mock.patch(
1422
- 'octavia.db.repositories.Repositories.update_pool_and_sp')
1423
- def test_update_pool_in_db(self,
1424
- mock_repos_pool_update,
1425
- mock_generate_uuid,
1426
- mock_LOG,
1427
- mock_get_session,
1428
- mock_loadbalancer_repo_update,
1429
- mock_listener_repo_update,
1430
- mock_amphora_repo_update,
1431
- mock_amphora_repo_delete):
1432
-
1433
- sp_dict = {'type': 'SOURCE_IP', 'cookie_name': None}
1434
- update_dict = {'name': 'test', 'description': 'test2',
1435
- 'session_persistence': sp_dict}
1436
- update_pool = database_tasks.UpdatePoolInDB()
1437
- update_pool.execute(self.pool_mock,
1438
- update_dict)
1439
-
1440
- repo.Repositories.update_pool_and_sp.assert_called_once_with(
1441
- 'TEST',
1442
- POOL_ID,
1443
- update_dict)
1444
-
1445
- # Test the revert
1446
- mock_repos_pool_update.reset_mock()
1447
- update_pool.revert(self.pool_mock)
1448
-
1449
- repo.Repositories.update_pool_and_sp.assert_called_once_with(
1450
- 'TEST',
1451
- POOL_ID,
1452
- {'provisioning_status': constants.ERROR})
1453
-
1454
- # Test the revert with exception
1455
- mock_repos_pool_update.reset_mock()
1456
- mock_repos_pool_update.side_effect = Exception('fail')
1457
- update_pool.revert(self.pool_mock)
1458
-
1459
- repo.Repositories.update_pool_and_sp.assert_called_once_with(
1460
- 'TEST',
1461
- POOL_ID,
1462
- {'provisioning_status': constants.ERROR})
1463
-
1464
- @mock.patch('octavia.db.repositories.L7PolicyRepository.update')
1465
- def test_update_l7policy_in_db(self,
1466
- mock_l7policy_repo_update,
1467
- mock_generate_uuid,
1468
- mock_LOG,
1469
- mock_get_session,
1470
- mock_loadbalancer_repo_update,
1471
- mock_listener_repo_update,
1472
- mock_amphora_repo_update,
1473
- mock_amphora_repo_delete):
1474
-
1475
- update_l7policy = database_tasks.UpdateL7PolicyInDB()
1476
- update_l7policy.execute(self.l7policy_mock,
1477
- {'action': constants.L7POLICY_ACTION_REJECT})
1478
-
1479
- repo.L7PolicyRepository.update.assert_called_once_with(
1480
- 'TEST',
1481
- L7POLICY_ID,
1482
- action=constants.L7POLICY_ACTION_REJECT)
1483
-
1484
- # Test the revert
1485
- mock_l7policy_repo_update.reset_mock()
1486
- update_l7policy.revert(self.l7policy_mock)
1487
-
1488
- repo.L7PolicyRepository.update.assert_called_once_with(
1489
- 'TEST',
1490
- L7POLICY_ID,
1491
- provisioning_status=constants.ERROR)
1492
-
1493
- # Test the revert
1494
- mock_l7policy_repo_update.reset_mock()
1495
- mock_l7policy_repo_update.side_effect = Exception('fail')
1496
- update_l7policy.revert(self.l7policy_mock)
1497
-
1498
- repo.L7PolicyRepository.update.assert_called_once_with(
1499
- 'TEST',
1500
- L7POLICY_ID,
1501
- provisioning_status=constants.ERROR)
1502
-
1503
- @mock.patch('octavia.db.repositories.L7RuleRepository.update')
1504
- @mock.patch('octavia.db.repositories.L7PolicyRepository.update')
1505
- def test_update_l7rule_in_db(self,
1506
- mock_l7rule_repo_update,
1507
- mock_l7policy_repo_update,
1508
- mock_generate_uuid,
1509
- mock_LOG,
1510
- mock_get_session,
1511
- mock_loadbalancer_repo_update,
1512
- mock_listener_repo_update,
1513
- mock_amphora_repo_update,
1514
- mock_amphora_repo_delete):
1515
-
1516
- update_l7rule = database_tasks.UpdateL7RuleInDB()
1517
- update_l7rule.execute(
1518
- self.l7rule_mock,
1519
- {'type': constants.L7RULE_TYPE_PATH,
1520
- 'compare_type': constants.L7RULE_COMPARE_TYPE_STARTS_WITH,
1521
- 'value': '/api'})
1522
-
1523
- repo.L7RuleRepository.update.assert_called_once_with(
1524
- 'TEST',
1525
- L7RULE_ID,
1526
- type=constants.L7RULE_TYPE_PATH,
1527
- compare_type=constants.L7RULE_COMPARE_TYPE_STARTS_WITH,
1528
- value='/api')
1529
-
1530
- # Test the revert
1531
- mock_l7rule_repo_update.reset_mock()
1532
- update_l7rule.revert(self.l7rule_mock)
1533
-
1534
- repo.L7PolicyRepository.update.assert_called_once_with(
1535
- 'TEST',
1536
- L7POLICY_ID,
1537
- provisioning_status=constants.ERROR)
1538
-
1539
- # Test the revert
1540
- mock_l7rule_repo_update.reset_mock()
1541
- mock_l7rule_repo_update.side_effect = Exception('fail')
1542
- update_l7rule.revert(self.l7rule_mock)
1543
-
1544
- repo.L7PolicyRepository.update.assert_called_once_with(
1545
- 'TEST',
1546
- L7POLICY_ID,
1547
- provisioning_status=constants.ERROR)
1548
-
1549
- def test_get_amphora_details(self,
1550
- mock_generate_uuid,
1551
- mock_LOG,
1552
- mock_get_session,
1553
- mock_loadbalancer_repo_update,
1554
- mock_listener_repo_update,
1555
- mock_amphora_repo_update,
1556
- mock_amphora_repo_delete):
1557
-
1558
- get_amp_details = database_tasks.GetAmphoraDetails()
1559
- new_amp = get_amp_details.execute(_amphora_mock)
1560
-
1561
- self.assertEqual(AMP_ID, new_amp.id)
1562
- self.assertEqual(VRRP_IP, new_amp.vrrp_ip)
1563
- self.assertEqual(HA_IP, new_amp.ha_ip)
1564
- self.assertEqual(VRRP_PORT_ID, new_amp.vrrp_port_id)
1565
- self.assertEqual(AMP_ROLE, new_amp.role)
1566
- self.assertEqual(VRRP_ID, new_amp.vrrp_id)
1567
- self.assertEqual(VRRP_PRIORITY, new_amp.vrrp_priority)
1568
-
1569
- def test_mark_amphora_role_indb(self,
1570
- mock_generate_uuid,
1571
- mock_LOG,
1572
- mock_get_session,
1573
- mock_loadbalancer_repo_update,
1574
- mock_listener_repo_update,
1575
- mock_amphora_repo_update,
1576
- mock_amphora_repo_delete):
1577
-
1578
- mark_amp_master_indb = database_tasks.MarkAmphoraMasterInDB()
1579
- mark_amp_master_indb.execute(_amphora_mock)
1580
- repo.AmphoraRepository.update.assert_called_once_with(
1581
- 'TEST', AMP_ID, role='MASTER',
1582
- vrrp_priority=constants.ROLE_MASTER_PRIORITY)
1583
-
1584
- mock_amphora_repo_update.reset_mock()
1585
-
1586
- mark_amp_master_indb.revert("BADRESULT", _amphora_mock)
1587
- repo.AmphoraRepository.update.assert_called_once_with(
1588
- 'TEST', AMP_ID, role=None, vrrp_priority=None)
1589
-
1590
- mock_amphora_repo_update.reset_mock()
1591
-
1592
- failure_obj = failure.Failure.from_exception(Exception("TESTEXCEPT"))
1593
- mark_amp_master_indb.revert(failure_obj, _amphora_mock)
1594
- self.assertFalse(repo.AmphoraRepository.update.called)
1595
-
1596
- mock_amphora_repo_update.reset_mock()
1597
-
1598
- mark_amp_backup_indb = database_tasks.MarkAmphoraBackupInDB()
1599
- mark_amp_backup_indb.execute(_amphora_mock)
1600
- repo.AmphoraRepository.update.assert_called_once_with(
1601
- 'TEST', AMP_ID, role='BACKUP',
1602
- vrrp_priority=constants.ROLE_BACKUP_PRIORITY)
1603
-
1604
- mock_amphora_repo_update.reset_mock()
1605
-
1606
- mark_amp_backup_indb.revert("BADRESULT", _amphora_mock)
1607
- repo.AmphoraRepository.update.assert_called_once_with(
1608
- 'TEST', AMP_ID, role=None, vrrp_priority=None)
1609
-
1610
- mock_amphora_repo_update.reset_mock()
1611
-
1612
- mark_amp_standalone_indb = database_tasks.MarkAmphoraStandAloneInDB()
1613
- mark_amp_standalone_indb.execute(_amphora_mock)
1614
- repo.AmphoraRepository.update.assert_called_once_with(
1615
- 'TEST', AMP_ID, role='STANDALONE',
1616
- vrrp_priority=None)
1617
-
1618
- mock_amphora_repo_update.reset_mock()
1619
-
1620
- mark_amp_standalone_indb.revert("BADRESULT", _amphora_mock)
1621
- repo.AmphoraRepository.update.assert_called_once_with(
1622
- 'TEST', AMP_ID, role=None, vrrp_priority=None)
1623
-
1624
- # Test revert with exception
1625
- mock_amphora_repo_update.reset_mock()
1626
- mock_amphora_repo_update.side_effect = Exception('fail')
1627
- mark_amp_standalone_indb.revert("BADRESULT", _amphora_mock)
1628
- repo.AmphoraRepository.update.assert_called_once_with(
1629
- 'TEST', AMP_ID, role=None, vrrp_priority=None)
1630
-
1631
- @mock.patch('octavia.db.repositories.LoadBalancerRepository.get')
1632
- @mock.patch('octavia.db.repositories.AmphoraRepository.get')
1633
- def test_get_amphorae_from_loadbalancer(self,
1634
- mock_amphora_get,
1635
- mock_lb_get,
1636
- mock_generate_uuid,
1637
- mock_LOG,
1638
- mock_get_session,
1639
- mock_loadbalancer_repo_update,
1640
- mock_listener_repo_update,
1641
- mock_amphora_repo_update,
1642
- mock_amphora_repo_delete):
1643
- amp1 = mock.MagicMock()
1644
- amp1.id = uuidutils.generate_uuid()
1645
- amp2 = mock.MagicMock()
1646
- amp2.id = uuidutils.generate_uuid()
1647
- lb = mock.MagicMock()
1648
- lb.amphorae = [amp1, amp2]
1649
- mock_lb_get.return_value = lb
1650
-
1651
- mock_amphora_get.side_effect = [_amphora_mock, None]
1652
-
1653
- get_amps_from_lb_obj = database_tasks.GetAmphoraeFromLoadbalancer()
1654
- result = get_amps_from_lb_obj.execute(lb)
1655
- self.assertEqual([_amphora_mock], result)
1656
-
1657
- @mock.patch('octavia.db.repositories.ListenerRepository.get')
1658
- def test_get_listeners_from_loadbalancer(self,
1659
- mock_listener_get,
1660
- mock_generate_uuid,
1661
- mock_LOG,
1662
- mock_get_session,
1663
- mock_loadbalancer_repo_update,
1664
- mock_listener_repo_update,
1665
- mock_amphora_repo_update,
1666
- mock_amphora_repo_delete):
1667
- mock_listener_get.return_value = _listener_mock
1668
- _loadbalancer_mock.listeners = [_listener_mock]
1669
- get_list_from_lb_obj = database_tasks.GetListenersFromLoadbalancer()
1670
- result = get_list_from_lb_obj.execute(_loadbalancer_mock)
1671
- mock_listener_get.assert_called_once_with('TEST', id=_listener_mock.id)
1672
- self.assertEqual([_listener_mock], result)
1673
-
1674
- @mock.patch('octavia.db.repositories.LoadBalancerRepository.get')
1675
- def test_get_loadbalancer(self, mock_lb_get, mock_generate_uuid, mock_LOG,
1676
- mock_get_session, mock_loadbalancer_repo_update,
1677
- mock_listener_repo_update,
1678
- mock_amphora_repo_update,
1679
- mock_amphora_repo_delete):
1680
- FAKE_LB = 'fake LB'
1681
- LB_ID = uuidutils.generate_uuid()
1682
- get_loadbalancer_obj = database_tasks.GetLoadBalancer()
1683
-
1684
- mock_lb_get.return_value = FAKE_LB
1685
-
1686
- result = get_loadbalancer_obj.execute(LB_ID)
1687
-
1688
- self.assertEqual(FAKE_LB, result)
1689
- mock_lb_get.assert_called_once_with('TEST', id=LB_ID)
1690
-
1691
- def test_get_vip_from_loadbalancer(self,
1692
- mock_generate_uuid,
1693
- mock_LOG,
1694
- mock_get_session,
1695
- mock_loadbalancer_repo_update,
1696
- mock_listener_repo_update,
1697
- mock_amphora_repo_update,
1698
- mock_amphora_repo_delete):
1699
- _loadbalancer_mock.vip = _vip_mock
1700
- get_vip_from_lb_obj = database_tasks.GetVipFromLoadbalancer()
1701
- result = get_vip_from_lb_obj.execute(_loadbalancer_mock)
1702
- self.assertEqual(_vip_mock, result)
1703
-
1704
- @mock.patch('octavia.db.repositories.VRRPGroupRepository.create')
1705
- def test_create_vrrp_group_for_lb(self,
1706
- mock_vrrp_group_create,
1707
- mock_generate_uuid,
1708
- mock_LOG,
1709
- mock_get_session,
1710
- mock_loadbalancer_repo_update,
1711
- mock_listener_repo_update,
1712
- mock_amphora_repo_update,
1713
- mock_amphora_repo_delete):
1714
-
1715
- mock_get_session.side_effect = ['TEST',
1716
- odb_exceptions.DBDuplicateEntry]
1717
- create_vrrp_group = database_tasks.CreateVRRPGroupForLB()
1718
- create_vrrp_group.execute(_loadbalancer_mock.id)
1719
- mock_vrrp_group_create.assert_called_once_with(
1720
- 'TEST', load_balancer_id=LB_ID,
1721
- vrrp_group_name=LB_ID.replace('-', ''),
1722
- vrrp_auth_type=constants.VRRP_AUTH_DEFAULT,
1723
- vrrp_auth_pass=mock_generate_uuid.return_value.replace('-',
1724
- '')[0:7],
1725
- advert_int=1)
1726
- create_vrrp_group.execute(_loadbalancer_mock)
1727
-
1728
- @mock.patch('octavia.db.repositories.AmphoraHealthRepository.delete')
1729
- def test_disable_amphora_health_monitoring(self,
1730
- mock_amp_health_repo_delete,
1731
- mock_generate_uuid,
1732
- mock_LOG,
1733
- mock_get_session,
1734
- mock_loadbalancer_repo_update,
1735
- mock_listener_repo_update,
1736
- mock_amphora_repo_update,
1737
- mock_amphora_repo_delete):
1738
- disable_amp_health = database_tasks.DisableAmphoraHealthMonitoring()
1739
- disable_amp_health.execute(_amphora_mock)
1740
- mock_amp_health_repo_delete.assert_called_once_with(
1741
- 'TEST', amphora_id=AMP_ID)
1742
-
1743
- @mock.patch('octavia.db.repositories.AmphoraHealthRepository.delete')
1744
- def test_disable_lb_amphorae_health_monitoring(
1745
- self,
1746
- mock_amp_health_repo_delete,
1747
- mock_generate_uuid,
1748
- mock_LOG,
1749
- mock_get_session,
1750
- mock_loadbalancer_repo_update,
1751
- mock_listener_repo_update,
1752
- mock_amphora_repo_update,
1753
- mock_amphora_repo_delete):
1754
- disable_amp_health = (
1755
- database_tasks.DisableLBAmphoraeHealthMonitoring())
1756
- disable_amp_health.execute(_loadbalancer_mock)
1757
- mock_amp_health_repo_delete.assert_called_once_with(
1758
- 'TEST', amphora_id=AMP_ID)
1759
-
1760
- @mock.patch('octavia.db.repositories.AmphoraHealthRepository.update')
1761
- def test_mark_amphora_health_monitoring_busy(self,
1762
- mock_amp_health_repo_update,
1763
- mock_generate_uuid,
1764
- mock_LOG,
1765
- mock_get_session,
1766
- mock_loadbalancer_repo_update,
1767
- mock_listener_repo_update,
1768
- mock_amphora_repo_update,
1769
- mock_amphora_repo_delete):
1770
- mark_busy = database_tasks.MarkAmphoraHealthBusy()
1771
- mark_busy.execute(_amphora_mock)
1772
- mock_amp_health_repo_update.assert_called_once_with(
1773
- 'TEST', amphora_id=AMP_ID, busy=True)
1774
-
1775
- @mock.patch('octavia.db.repositories.AmphoraHealthRepository.update')
1776
- def test_mark_lb_amphorae_health_monitoring_busy(
1777
- self,
1778
- mock_amp_health_repo_update,
1779
- mock_generate_uuid,
1780
- mock_LOG,
1781
- mock_get_session,
1782
- mock_loadbalancer_repo_update,
1783
- mock_listener_repo_update,
1784
- mock_amphora_repo_update,
1785
- mock_amphora_repo_delete):
1786
- mark_busy = (
1787
- database_tasks.MarkLBAmphoraeHealthBusy())
1788
- mark_busy.execute(_loadbalancer_mock)
1789
- mock_amp_health_repo_update.assert_called_once_with(
1790
- 'TEST', amphora_id=AMP_ID, busy=True)
1791
-
1792
- def test_update_lb_server_group_in_db(self,
1793
- mock_generate_uuid,
1794
- mock_LOG,
1795
- mock_get_session,
1796
- mock_loadbalancer_repo_update,
1797
- mock_listener_repo_update,
1798
- mock_amphora_repo_update,
1799
- mock_amphora_repo_delete):
1800
-
1801
- update_server_group_info = database_tasks.UpdateLBServerGroupInDB()
1802
- update_server_group_info.execute(LB_ID, SERVER_GROUP_ID)
1803
-
1804
- repo.LoadBalancerRepository.update.assert_called_once_with(
1805
- 'TEST',
1806
- id=LB_ID,
1807
- server_group_id=SERVER_GROUP_ID)
1808
-
1809
- # Test the revert
1810
- mock_listener_repo_update.reset_mock()
1811
- update_server_group_info.revert(LB_ID, SERVER_GROUP_ID)
1812
-
1813
- # Test the revert with exception
1814
- mock_listener_repo_update.reset_mock()
1815
- mock_loadbalancer_repo_update.side_effect = Exception('fail')
1816
- update_server_group_info.revert(LB_ID, SERVER_GROUP_ID)
1817
-
1818
- @mock.patch('octavia.db.repositories.HealthMonitorRepository.update')
1819
- def test_mark_health_mon_active_in_db(self,
1820
- mock_health_mon_repo_update,
1821
- mock_generate_uuid,
1822
- mock_LOG,
1823
- mock_get_session,
1824
- mock_loadbalancer_repo_update,
1825
- mock_listener_repo_update,
1826
- mock_amphora_repo_update,
1827
- mock_amphora_repo_delete):
1828
-
1829
- mark_health_mon_active = (database_tasks.MarkHealthMonitorActiveInDB())
1830
- mark_health_mon_active.execute(self.health_mon_mock)
1831
-
1832
- mock_health_mon_repo_update.assert_called_once_with(
1833
- 'TEST',
1834
- HM_ID,
1835
- operating_status=constants.ONLINE,
1836
- provisioning_status=constants.ACTIVE)
1837
-
1838
- # Test the revert
1839
- mock_health_mon_repo_update.reset_mock()
1840
- mark_health_mon_active.revert(self.health_mon_mock)
1841
-
1842
- mock_health_mon_repo_update.assert_called_once_with(
1843
- 'TEST',
1844
- id=HM_ID,
1845
- provisioning_status=constants.ERROR)
1846
-
1847
- # Test the revert with exception
1848
- mock_health_mon_repo_update.reset_mock()
1849
- mock_health_mon_repo_update.side_effect = Exception('fail')
1850
- mark_health_mon_active.revert(self.health_mon_mock)
1851
-
1852
- mock_health_mon_repo_update.assert_called_once_with(
1853
- 'TEST',
1854
- id=HM_ID,
1855
- provisioning_status=constants.ERROR)
1856
-
1857
- @mock.patch('octavia.db.repositories.HealthMonitorRepository.update')
1858
- def test_mark_health_mon_pending_create_in_db(
1859
- self,
1860
- mock_health_mon_repo_update,
1861
- mock_generate_uuid,
1862
- mock_LOG,
1863
- mock_get_session,
1864
- mock_loadbalancer_repo_update,
1865
- mock_listener_repo_update,
1866
- mock_amphora_repo_update,
1867
- mock_amphora_repo_delete):
1868
-
1869
- mark_health_mon_pending_create = (database_tasks.
1870
- MarkHealthMonitorPendingCreateInDB())
1871
- mark_health_mon_pending_create.execute(self.health_mon_mock)
1872
-
1873
- mock_health_mon_repo_update.assert_called_once_with(
1874
- 'TEST',
1875
- HM_ID,
1876
- provisioning_status=constants.PENDING_CREATE)
1877
-
1878
- # Test the revert
1879
- mock_health_mon_repo_update.reset_mock()
1880
- mark_health_mon_pending_create.revert(self.health_mon_mock)
1881
-
1882
- mock_health_mon_repo_update.assert_called_once_with(
1883
- 'TEST',
1884
- id=HM_ID,
1885
- provisioning_status=constants.ERROR)
1886
-
1887
- # Test the revert with exception
1888
- mock_health_mon_repo_update.reset_mock()
1889
- mock_health_mon_repo_update.side_effect = Exception('fail')
1890
- mark_health_mon_pending_create.revert(self.health_mon_mock)
1891
-
1892
- mock_health_mon_repo_update.assert_called_once_with(
1893
- 'TEST',
1894
- id=HM_ID,
1895
- provisioning_status=constants.ERROR)
1896
-
1897
- @mock.patch('octavia.db.repositories.HealthMonitorRepository.update')
1898
- def test_mark_health_mon_pending_delete_in_db(
1899
- self,
1900
- mock_health_mon_repo_update,
1901
- mock_generate_uuid,
1902
- mock_LOG,
1903
- mock_get_session,
1904
- mock_loadbalancer_repo_update,
1905
- mock_listener_repo_update,
1906
- mock_amphora_repo_update,
1907
- mock_amphora_repo_delete):
1908
-
1909
- mark_health_mon_pending_delete = (database_tasks.
1910
- MarkHealthMonitorPendingDeleteInDB())
1911
- mark_health_mon_pending_delete.execute(self.health_mon_mock)
1912
-
1913
- mock_health_mon_repo_update.assert_called_once_with(
1914
- 'TEST',
1915
- HM_ID,
1916
- provisioning_status=constants.PENDING_DELETE)
1917
-
1918
- # Test the revert
1919
- mock_health_mon_repo_update.reset_mock()
1920
- mark_health_mon_pending_delete.revert(self.health_mon_mock)
1921
-
1922
- mock_health_mon_repo_update.assert_called_once_with(
1923
- 'TEST',
1924
- id=HM_ID,
1925
- provisioning_status=constants.ERROR)
1926
-
1927
- # Test the revert with exception
1928
- mock_health_mon_repo_update.reset_mock()
1929
- mock_health_mon_repo_update.side_effect = Exception('fail')
1930
- mark_health_mon_pending_delete.revert(self.health_mon_mock)
1931
-
1932
- mock_health_mon_repo_update.assert_called_once_with(
1933
- 'TEST',
1934
- id=HM_ID,
1935
- provisioning_status=constants.ERROR)
1936
-
1937
- @mock.patch('octavia.db.repositories.HealthMonitorRepository.update')
1938
- def test_mark_health_mon_pending_update_in_db(
1939
- self,
1940
- mock_health_mon_repo_update,
1941
- mock_generate_uuid,
1942
- mock_LOG,
1943
- mock_get_session,
1944
- mock_loadbalancer_repo_update,
1945
- mock_listener_repo_update,
1946
- mock_amphora_repo_update,
1947
- mock_amphora_repo_delete):
1948
-
1949
- mark_health_mon_pending_update = (database_tasks.
1950
- MarkHealthMonitorPendingUpdateInDB())
1951
- mark_health_mon_pending_update.execute(self.health_mon_mock)
1952
-
1953
- mock_health_mon_repo_update.assert_called_once_with(
1954
- 'TEST',
1955
- HM_ID,
1956
- provisioning_status=constants.PENDING_UPDATE)
1957
-
1958
- # Test the revert
1959
- mock_health_mon_repo_update.reset_mock()
1960
- mark_health_mon_pending_update.revert(self.health_mon_mock)
1961
-
1962
- mock_health_mon_repo_update.assert_called_once_with(
1963
- 'TEST',
1964
- id=HM_ID,
1965
- provisioning_status=constants.ERROR)
1966
-
1967
- # Test the revert with exception
1968
- mock_health_mon_repo_update.reset_mock()
1969
- mock_health_mon_repo_update.side_effect = Exception('fail')
1970
- mark_health_mon_pending_update.revert(self.health_mon_mock)
1971
-
1972
- mock_health_mon_repo_update.assert_called_once_with(
1973
- 'TEST',
1974
- id=HM_ID,
1975
- provisioning_status=constants.ERROR)
1976
-
1977
- @mock.patch('octavia.db.repositories.L7PolicyRepository.update')
1978
- def test_mark_l7policy_active_in_db(self,
1979
- mock_l7policy_repo_update,
1980
- mock_generate_uuid,
1981
- mock_LOG,
1982
- mock_get_session,
1983
- mock_loadbalancer_repo_update,
1984
- mock_listener_repo_update,
1985
- mock_amphora_repo_update,
1986
- mock_amphora_repo_delete):
1987
-
1988
- mark_l7policy_active = (database_tasks.MarkL7PolicyActiveInDB())
1989
- mark_l7policy_active.execute(self.l7policy_mock)
1990
-
1991
- mock_l7policy_repo_update.assert_called_once_with(
1992
- 'TEST',
1993
- L7POLICY_ID,
1994
- provisioning_status=constants.ACTIVE,
1995
- operating_status=constants.ONLINE)
1996
-
1997
- # Test the revert
1998
- mock_l7policy_repo_update.reset_mock()
1999
- mark_l7policy_active.revert(self.l7policy_mock)
2000
-
2001
- mock_l7policy_repo_update.assert_called_once_with(
2002
- 'TEST',
2003
- id=L7POLICY_ID,
2004
- provisioning_status=constants.ERROR)
2005
-
2006
- # Test the revert with exception
2007
- mock_l7policy_repo_update.reset_mock()
2008
- mock_l7policy_repo_update.side_effect = Exception('fail')
2009
- mark_l7policy_active.revert(self.l7policy_mock)
2010
-
2011
- mock_l7policy_repo_update.assert_called_once_with(
2012
- 'TEST',
2013
- id=L7POLICY_ID,
2014
- provisioning_status=constants.ERROR)
2015
-
2016
- @mock.patch('octavia.db.repositories.L7PolicyRepository.update')
2017
- def test_mark_l7policy_pending_create_in_db(self,
2018
- mock_l7policy_repo_update,
2019
- mock_generate_uuid,
2020
- mock_LOG,
2021
- mock_get_session,
2022
- mock_loadbalancer_repo_update,
2023
- mock_listener_repo_update,
2024
- mock_amphora_repo_update,
2025
- mock_amphora_repo_delete):
2026
-
2027
- mark_l7policy_pending_create = (database_tasks.
2028
- MarkL7PolicyPendingCreateInDB())
2029
- mark_l7policy_pending_create.execute(self.l7policy_mock)
2030
-
2031
- mock_l7policy_repo_update.assert_called_once_with(
2032
- 'TEST',
2033
- L7POLICY_ID,
2034
- provisioning_status=constants.PENDING_CREATE)
2035
-
2036
- # Test the revert
2037
- mock_l7policy_repo_update.reset_mock()
2038
- mark_l7policy_pending_create.revert(self.l7policy_mock)
2039
-
2040
- mock_l7policy_repo_update.assert_called_once_with(
2041
- 'TEST',
2042
- id=L7POLICY_ID,
2043
- provisioning_status=constants.ERROR)
2044
-
2045
- # Test the revert with exception
2046
- mock_l7policy_repo_update.reset_mock()
2047
- mock_l7policy_repo_update.side_effect = Exception('fail')
2048
- mark_l7policy_pending_create.revert(self.l7policy_mock)
2049
-
2050
- mock_l7policy_repo_update.assert_called_once_with(
2051
- 'TEST',
2052
- id=L7POLICY_ID,
2053
- provisioning_status=constants.ERROR)
2054
-
2055
- @mock.patch('octavia.db.repositories.L7PolicyRepository.update')
2056
- def test_mark_l7policy_pending_delete_in_db(self,
2057
- mock_l7policy_repo_update,
2058
- mock_generate_uuid,
2059
- mock_LOG,
2060
- mock_get_session,
2061
- mock_loadbalancer_repo_update,
2062
- mock_listener_repo_update,
2063
- mock_amphora_repo_update,
2064
- mock_amphora_repo_delete):
2065
-
2066
- mark_l7policy_pending_delete = (database_tasks.
2067
- MarkL7PolicyPendingDeleteInDB())
2068
- mark_l7policy_pending_delete.execute(self.l7policy_mock)
2069
-
2070
- mock_l7policy_repo_update.assert_called_once_with(
2071
- 'TEST',
2072
- L7POLICY_ID,
2073
- provisioning_status=constants.PENDING_DELETE)
2074
-
2075
- # Test the revert
2076
- mock_l7policy_repo_update.reset_mock()
2077
- mark_l7policy_pending_delete.revert(self.l7policy_mock)
2078
-
2079
- mock_l7policy_repo_update.assert_called_once_with(
2080
- 'TEST',
2081
- id=L7POLICY_ID,
2082
- provisioning_status=constants.ERROR)
2083
-
2084
- # Test the revert with exception
2085
- mock_l7policy_repo_update.reset_mock()
2086
- mock_l7policy_repo_update.side_effect = Exception('fail')
2087
- mark_l7policy_pending_delete.revert(self.l7policy_mock)
2088
-
2089
- mock_l7policy_repo_update.assert_called_once_with(
2090
- 'TEST',
2091
- id=L7POLICY_ID,
2092
- provisioning_status=constants.ERROR)
2093
-
2094
- @mock.patch('octavia.db.repositories.L7PolicyRepository.update')
2095
- def test_mark_l7policy_pending_update_in_db(self,
2096
- mock_l7policy_repo_update,
2097
- mock_generate_uuid,
2098
- mock_LOG,
2099
- mock_get_session,
2100
- mock_loadbalancer_repo_update,
2101
- mock_listener_repo_update,
2102
- mock_amphora_repo_update,
2103
- mock_amphora_repo_delete):
2104
-
2105
- mark_l7policy_pending_update = (database_tasks.
2106
- MarkL7PolicyPendingUpdateInDB())
2107
- mark_l7policy_pending_update.execute(self.l7policy_mock)
2108
-
2109
- mock_l7policy_repo_update.assert_called_once_with(
2110
- 'TEST',
2111
- L7POLICY_ID,
2112
- provisioning_status=constants.PENDING_UPDATE)
2113
-
2114
- # Test the revert
2115
- mock_l7policy_repo_update.reset_mock()
2116
- mark_l7policy_pending_update.revert(self.l7policy_mock)
2117
-
2118
- mock_l7policy_repo_update.assert_called_once_with(
2119
- 'TEST',
2120
- id=L7POLICY_ID,
2121
- provisioning_status=constants.ERROR)
2122
-
2123
- # Test the revert with exception
2124
- mock_l7policy_repo_update.reset_mock()
2125
- mock_l7policy_repo_update.side_effect = Exception('fail')
2126
- mark_l7policy_pending_update.revert(self.l7policy_mock)
2127
-
2128
- mock_l7policy_repo_update.assert_called_once_with(
2129
- 'TEST',
2130
- id=L7POLICY_ID,
2131
- provisioning_status=constants.ERROR)
2132
-
2133
- @mock.patch('octavia.db.repositories.L7RuleRepository.update')
2134
- def test_mark_l7rule_active_in_db(self,
2135
- mock_l7rule_repo_update,
2136
- mock_generate_uuid,
2137
- mock_LOG,
2138
- mock_get_session,
2139
- mock_loadbalancer_repo_update,
2140
- mock_listener_repo_update,
2141
- mock_amphora_repo_update,
2142
- mock_amphora_repo_delete):
2143
-
2144
- mark_l7rule_active = (database_tasks.MarkL7RuleActiveInDB())
2145
- mark_l7rule_active.execute(self.l7rule_mock)
2146
-
2147
- mock_l7rule_repo_update.assert_called_once_with(
2148
- 'TEST',
2149
- L7RULE_ID,
2150
- provisioning_status=constants.ACTIVE,
2151
- operating_status=constants.ONLINE)
2152
-
2153
- # Test the revert
2154
- mock_l7rule_repo_update.reset_mock()
2155
- mark_l7rule_active.revert(self.l7rule_mock)
2156
-
2157
- mock_l7rule_repo_update.assert_called_once_with(
2158
- 'TEST',
2159
- id=L7RULE_ID,
2160
- provisioning_status=constants.ERROR)
2161
-
2162
- # Test the revert with exception
2163
- mock_l7rule_repo_update.reset_mock()
2164
- mock_l7rule_repo_update.side_effect = Exception('fail')
2165
- mark_l7rule_active.revert(self.l7rule_mock)
2166
-
2167
- mock_l7rule_repo_update.assert_called_once_with(
2168
- 'TEST',
2169
- id=L7RULE_ID,
2170
- provisioning_status=constants.ERROR)
2171
-
2172
- @mock.patch('octavia.db.repositories.L7RuleRepository.update')
2173
- def test_mark_l7rule_pending_create_in_db(self,
2174
- mock_l7rule_repo_update,
2175
- mock_generate_uuid,
2176
- mock_LOG,
2177
- mock_get_session,
2178
- mock_loadbalancer_repo_update,
2179
- mock_listener_repo_update,
2180
- mock_amphora_repo_update,
2181
- mock_amphora_repo_delete):
2182
-
2183
- mark_l7rule_pending_create = (database_tasks.
2184
- MarkL7RulePendingCreateInDB())
2185
- mark_l7rule_pending_create.execute(self.l7rule_mock)
2186
-
2187
- mock_l7rule_repo_update.assert_called_once_with(
2188
- 'TEST',
2189
- L7RULE_ID,
2190
- provisioning_status=constants.PENDING_CREATE)
2191
-
2192
- # Test the revert
2193
- mock_l7rule_repo_update.reset_mock()
2194
- mark_l7rule_pending_create.revert(self.l7rule_mock)
2195
-
2196
- mock_l7rule_repo_update.assert_called_once_with(
2197
- 'TEST',
2198
- id=L7RULE_ID,
2199
- provisioning_status=constants.ERROR)
2200
-
2201
- # Test the revert with exception
2202
- mock_l7rule_repo_update.reset_mock()
2203
- mock_l7rule_repo_update.side_effect = Exception('fail')
2204
- mark_l7rule_pending_create.revert(self.l7rule_mock)
2205
-
2206
- mock_l7rule_repo_update.assert_called_once_with(
2207
- 'TEST',
2208
- id=L7RULE_ID,
2209
- provisioning_status=constants.ERROR)
2210
-
2211
- @mock.patch('octavia.db.repositories.L7RuleRepository.update')
2212
- def test_mark_l7rule_pending_delete_in_db(self,
2213
- mock_l7rule_repo_update,
2214
- mock_generate_uuid,
2215
- mock_LOG,
2216
- mock_get_session,
2217
- mock_loadbalancer_repo_update,
2218
- mock_listener_repo_update,
2219
- mock_amphora_repo_update,
2220
- mock_amphora_repo_delete):
2221
-
2222
- mark_l7rule_pending_delete = (database_tasks.
2223
- MarkL7RulePendingDeleteInDB())
2224
- mark_l7rule_pending_delete.execute(self.l7rule_mock)
2225
-
2226
- mock_l7rule_repo_update.assert_called_once_with(
2227
- 'TEST',
2228
- L7RULE_ID,
2229
- provisioning_status=constants.PENDING_DELETE)
2230
-
2231
- # Test the revert
2232
- mock_l7rule_repo_update.reset_mock()
2233
- mark_l7rule_pending_delete.revert(self.l7rule_mock)
2234
-
2235
- mock_l7rule_repo_update.assert_called_once_with(
2236
- 'TEST',
2237
- id=L7RULE_ID,
2238
- provisioning_status=constants.ERROR)
2239
-
2240
- # Test the revert with exception
2241
- mock_l7rule_repo_update.reset_mock()
2242
- mock_l7rule_repo_update.side_effect = Exception('fail')
2243
- mark_l7rule_pending_delete.revert(self.l7rule_mock)
2244
-
2245
- mock_l7rule_repo_update.assert_called_once_with(
2246
- 'TEST',
2247
- id=L7RULE_ID,
2248
- provisioning_status=constants.ERROR)
2249
-
2250
- @mock.patch('octavia.db.repositories.L7RuleRepository.update')
2251
- def test_mark_l7rule_pending_update_in_db(self,
2252
- mock_l7rule_repo_update,
2253
- mock_generate_uuid,
2254
- mock_LOG,
2255
- mock_get_session,
2256
- mock_loadbalancer_repo_update,
2257
- mock_listener_repo_update,
2258
- mock_amphora_repo_update,
2259
- mock_amphora_repo_delete):
2260
-
2261
- mark_l7rule_pending_update = (database_tasks.
2262
- MarkL7RulePendingUpdateInDB())
2263
- mark_l7rule_pending_update.execute(self.l7rule_mock)
2264
-
2265
- mock_l7rule_repo_update.assert_called_once_with(
2266
- 'TEST',
2267
- L7RULE_ID,
2268
- provisioning_status=constants.PENDING_UPDATE)
2269
-
2270
- # Test the revert
2271
- mock_l7rule_repo_update.reset_mock()
2272
- mark_l7rule_pending_update.revert(self.l7rule_mock)
2273
-
2274
- mock_l7rule_repo_update.assert_called_once_with(
2275
- 'TEST',
2276
- id=L7RULE_ID,
2277
- provisioning_status=constants.ERROR)
2278
-
2279
- # Test the revert with exception
2280
- mock_l7rule_repo_update.reset_mock()
2281
- mock_l7rule_repo_update.side_effect = Exception('fail')
2282
- mark_l7rule_pending_update.revert(self.l7rule_mock)
2283
-
2284
- mock_l7rule_repo_update.assert_called_once_with(
2285
- 'TEST',
2286
- id=L7RULE_ID,
2287
- provisioning_status=constants.ERROR)
2288
-
2289
- @mock.patch('octavia.db.repositories.MemberRepository.update')
2290
- def test_mark_member_active_in_db(self,
2291
- mock_member_repo_update,
2292
- mock_generate_uuid,
2293
- mock_LOG,
2294
- mock_get_session,
2295
- mock_loadbalancer_repo_update,
2296
- mock_listener_repo_update,
2297
- mock_amphora_repo_update,
2298
- mock_amphora_repo_delete):
2299
-
2300
- mark_member_active = (database_tasks.MarkMemberActiveInDB())
2301
- mark_member_active.execute(self.member_mock)
2302
-
2303
- mock_member_repo_update.assert_called_once_with(
2304
- 'TEST',
2305
- MEMBER_ID,
2306
- provisioning_status=constants.ACTIVE)
2307
-
2308
- # Test the revert
2309
- mock_member_repo_update.reset_mock()
2310
- mark_member_active.revert(self.member_mock)
2311
-
2312
- mock_member_repo_update.assert_called_once_with(
2313
- 'TEST',
2314
- id=MEMBER_ID,
2315
- provisioning_status=constants.ERROR)
2316
-
2317
- # Test the revert with exception
2318
- mock_member_repo_update.reset_mock()
2319
- mock_member_repo_update.side_effect = Exception('fail')
2320
- mark_member_active.revert(self.member_mock)
2321
-
2322
- mock_member_repo_update.assert_called_once_with(
2323
- 'TEST',
2324
- id=MEMBER_ID,
2325
- provisioning_status=constants.ERROR)
2326
-
2327
- @mock.patch('octavia.db.repositories.MemberRepository.update')
2328
- def test_mark_member_pending_create_in_db(self,
2329
- mock_member_repo_update,
2330
- mock_generate_uuid,
2331
- mock_LOG,
2332
- mock_get_session,
2333
- mock_loadbalancer_repo_update,
2334
- mock_listener_repo_update,
2335
- mock_amphora_repo_update,
2336
- mock_amphora_repo_delete):
2337
-
2338
- mark_member_pending_create = (database_tasks.
2339
- MarkMemberPendingCreateInDB())
2340
- mark_member_pending_create.execute(self.member_mock)
2341
-
2342
- mock_member_repo_update.assert_called_once_with(
2343
- 'TEST',
2344
- MEMBER_ID,
2345
- provisioning_status=constants.PENDING_CREATE)
2346
-
2347
- # Test the revert
2348
- mock_member_repo_update.reset_mock()
2349
- mark_member_pending_create.revert(self.member_mock)
2350
-
2351
- mock_member_repo_update.assert_called_once_with(
2352
- 'TEST',
2353
- id=MEMBER_ID,
2354
- provisioning_status=constants.ERROR)
2355
-
2356
- # Test the revert with exception
2357
- mock_member_repo_update.reset_mock()
2358
- mock_member_repo_update.side_effect = Exception('fail')
2359
- mark_member_pending_create.revert(self.member_mock)
2360
-
2361
- mock_member_repo_update.assert_called_once_with(
2362
- 'TEST',
2363
- id=MEMBER_ID,
2364
- provisioning_status=constants.ERROR)
2365
-
2366
- @mock.patch('octavia.db.repositories.MemberRepository.update')
2367
- def test_mark_member_pending_delete_in_db(self,
2368
- mock_member_repo_update,
2369
- mock_generate_uuid,
2370
- mock_LOG,
2371
- mock_get_session,
2372
- mock_loadbalancer_repo_update,
2373
- mock_listener_repo_update,
2374
- mock_amphora_repo_update,
2375
- mock_amphora_repo_delete):
2376
-
2377
- mark_member_pending_delete = (database_tasks.
2378
- MarkMemberPendingDeleteInDB())
2379
- mark_member_pending_delete.execute(self.member_mock)
2380
-
2381
- mock_member_repo_update.assert_called_once_with(
2382
- 'TEST',
2383
- MEMBER_ID,
2384
- provisioning_status=constants.PENDING_DELETE)
2385
-
2386
- # Test the revert
2387
- mock_member_repo_update.reset_mock()
2388
- mark_member_pending_delete.revert(self.member_mock)
2389
-
2390
- mock_member_repo_update.assert_called_once_with(
2391
- 'TEST',
2392
- id=MEMBER_ID,
2393
- provisioning_status=constants.ERROR)
2394
-
2395
- # Test the revert with exception
2396
- mock_member_repo_update.reset_mock()
2397
- mock_member_repo_update.side_effect = Exception('fail')
2398
- mark_member_pending_delete.revert(self.member_mock)
2399
-
2400
- mock_member_repo_update.assert_called_once_with(
2401
- 'TEST',
2402
- id=MEMBER_ID,
2403
- provisioning_status=constants.ERROR)
2404
-
2405
- @mock.patch('octavia.db.repositories.MemberRepository.update')
2406
- def test_mark_member_pending_update_in_db(self,
2407
- mock_member_repo_update,
2408
- mock_generate_uuid,
2409
- mock_LOG,
2410
- mock_get_session,
2411
- mock_loadbalancer_repo_update,
2412
- mock_listener_repo_update,
2413
- mock_amphora_repo_update,
2414
- mock_amphora_repo_delete):
2415
-
2416
- mark_member_pending_update = (database_tasks.
2417
- MarkMemberPendingUpdateInDB())
2418
- mark_member_pending_update.execute(self.member_mock)
2419
-
2420
- mock_member_repo_update.assert_called_once_with(
2421
- 'TEST',
2422
- MEMBER_ID,
2423
- provisioning_status=constants.PENDING_UPDATE)
2424
-
2425
- # Test the revert
2426
- mock_member_repo_update.reset_mock()
2427
- mark_member_pending_update.revert(self.member_mock)
2428
-
2429
- mock_member_repo_update.assert_called_once_with(
2430
- 'TEST',
2431
- id=MEMBER_ID,
2432
- provisioning_status=constants.ERROR)
2433
-
2434
- # Test the revert with exception
2435
- mock_member_repo_update.reset_mock()
2436
- mock_member_repo_update.side_effect = Exception('fail')
2437
- mark_member_pending_update.revert(self.member_mock)
2438
-
2439
- mock_member_repo_update.assert_called_once_with(
2440
- 'TEST',
2441
- id=MEMBER_ID,
2442
- provisioning_status=constants.ERROR)
2443
-
2444
- @mock.patch('octavia.db.repositories.PoolRepository.update')
2445
- def test_mark_pool_active_in_db(self,
2446
- mock_pool_repo_update,
2447
- mock_generate_uuid,
2448
- mock_LOG,
2449
- mock_get_session,
2450
- mock_loadbalancer_repo_update,
2451
- mock_listener_repo_update,
2452
- mock_amphora_repo_update,
2453
- mock_amphora_repo_delete):
2454
-
2455
- mark_pool_active = (database_tasks.MarkPoolActiveInDB())
2456
- mark_pool_active.execute(self.pool_mock)
2457
-
2458
- mock_pool_repo_update.assert_called_once_with(
2459
- 'TEST',
2460
- POOL_ID,
2461
- provisioning_status=constants.ACTIVE)
2462
-
2463
- # Test the revert
2464
- mock_pool_repo_update.reset_mock()
2465
- mark_pool_active.revert(self.pool_mock)
2466
-
2467
- mock_pool_repo_update.assert_called_once_with(
2468
- 'TEST',
2469
- id=POOL_ID,
2470
- provisioning_status=constants.ERROR)
2471
-
2472
- # Test the revert with exception
2473
- mock_pool_repo_update.reset_mock()
2474
- mock_pool_repo_update.side_effect = Exception('fail')
2475
- mark_pool_active.revert(self.pool_mock)
2476
-
2477
- mock_pool_repo_update.assert_called_once_with(
2478
- 'TEST',
2479
- id=POOL_ID,
2480
- provisioning_status=constants.ERROR)
2481
-
2482
- @mock.patch('octavia.db.repositories.PoolRepository.update')
2483
- def test_mark_pool_pending_create_in_db(self,
2484
- mock_pool_repo_update,
2485
- mock_generate_uuid,
2486
- mock_LOG,
2487
- mock_get_session,
2488
- mock_loadbalancer_repo_update,
2489
- mock_listener_repo_update,
2490
- mock_amphora_repo_update,
2491
- mock_amphora_repo_delete):
2492
-
2493
- mark_pool_pending_create = (database_tasks.MarkPoolPendingCreateInDB())
2494
- mark_pool_pending_create.execute(self.pool_mock)
2495
-
2496
- mock_pool_repo_update.assert_called_once_with(
2497
- 'TEST',
2498
- POOL_ID,
2499
- provisioning_status=constants.PENDING_CREATE)
2500
-
2501
- # Test the revert
2502
- mock_pool_repo_update.reset_mock()
2503
- mark_pool_pending_create.revert(self.pool_mock)
2504
-
2505
- mock_pool_repo_update.assert_called_once_with(
2506
- 'TEST',
2507
- id=POOL_ID,
2508
- provisioning_status=constants.ERROR)
2509
-
2510
- # Test the revert with exception
2511
- mock_pool_repo_update.reset_mock()
2512
- mock_pool_repo_update.side_effect = Exception('fail')
2513
- mark_pool_pending_create.revert(self.pool_mock)
2514
-
2515
- mock_pool_repo_update.assert_called_once_with(
2516
- 'TEST',
2517
- id=POOL_ID,
2518
- provisioning_status=constants.ERROR)
2519
-
2520
- @mock.patch('octavia.db.repositories.PoolRepository.update')
2521
- def test_mark_pool_pending_delete_in_db(self,
2522
- mock_pool_repo_update,
2523
- mock_generate_uuid,
2524
- mock_LOG,
2525
- mock_get_session,
2526
- mock_loadbalancer_repo_update,
2527
- mock_listener_repo_update,
2528
- mock_amphora_repo_update,
2529
- mock_amphora_repo_delete):
2530
-
2531
- mark_pool_pending_delete = (database_tasks.MarkPoolPendingDeleteInDB())
2532
- mark_pool_pending_delete.execute(self.pool_mock)
2533
-
2534
- mock_pool_repo_update.assert_called_once_with(
2535
- 'TEST',
2536
- POOL_ID,
2537
- provisioning_status=constants.PENDING_DELETE)
2538
-
2539
- # Test the revert
2540
- mock_pool_repo_update.reset_mock()
2541
- mark_pool_pending_delete.revert(self.pool_mock)
2542
-
2543
- mock_pool_repo_update.assert_called_once_with(
2544
- 'TEST',
2545
- id=POOL_ID,
2546
- provisioning_status=constants.ERROR)
2547
-
2548
- # Test the revert with exception
2549
- mock_pool_repo_update.reset_mock()
2550
- mock_pool_repo_update.side_effect = Exception('fail')
2551
- mark_pool_pending_delete.revert(self.pool_mock)
2552
-
2553
- mock_pool_repo_update.assert_called_once_with(
2554
- 'TEST',
2555
- id=POOL_ID,
2556
- provisioning_status=constants.ERROR)
2557
-
2558
- @mock.patch('octavia.db.repositories.PoolRepository.update')
2559
- def test_mark_pool_pending_update_in_db(self,
2560
- mock_pool_repo_update,
2561
- mock_generate_uuid,
2562
- mock_LOG,
2563
- mock_get_session,
2564
- mock_loadbalancer_repo_update,
2565
- mock_listener_repo_update,
2566
- mock_amphora_repo_update,
2567
- mock_amphora_repo_delete):
2568
-
2569
- mark_pool_pending_update = (database_tasks.
2570
- MarkPoolPendingUpdateInDB())
2571
- mark_pool_pending_update.execute(self.pool_mock)
2572
-
2573
- mock_pool_repo_update.assert_called_once_with(
2574
- 'TEST',
2575
- POOL_ID,
2576
- provisioning_status=constants.PENDING_UPDATE)
2577
-
2578
- # Test the revert
2579
- mock_pool_repo_update.reset_mock()
2580
- mark_pool_pending_update.revert(self.pool_mock)
2581
-
2582
- mock_pool_repo_update.assert_called_once_with(
2583
- 'TEST',
2584
- id=POOL_ID,
2585
- provisioning_status=constants.ERROR)
2586
-
2587
- # Test the revert with exception
2588
- mock_pool_repo_update.reset_mock()
2589
- mock_pool_repo_update.side_effect = Exception('fail')
2590
- mark_pool_pending_update.revert(self.pool_mock)
2591
-
2592
- mock_pool_repo_update.assert_called_once_with(
2593
- 'TEST',
2594
- id=POOL_ID,
2595
- provisioning_status=constants.ERROR)
2596
-
2597
- @mock.patch('octavia.db.repositories.MemberRepository.update_pool_members')
2598
- def test_update_pool_members_operating_status_in_db(
2599
- self,
2600
- mock_member_repo_update_pool_members,
2601
- mock_generate_uuid,
2602
- mock_LOG,
2603
- mock_get_session,
2604
- mock_loadbalancer_repo_update,
2605
- mock_listener_repo_update,
2606
- mock_amphora_repo_update,
2607
- mock_amphora_repo_delete):
2608
-
2609
- update_members = database_tasks.UpdatePoolMembersOperatingStatusInDB()
2610
- update_members.execute(self.pool_mock, constants.ONLINE)
2611
-
2612
- mock_member_repo_update_pool_members.assert_called_once_with(
2613
- 'TEST',
2614
- POOL_ID,
2615
- operating_status=constants.ONLINE)