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,105 +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
-
16
- from taskflow.patterns import linear_flow
17
-
18
- from octavia.common import constants
19
- from octavia.controller.worker.v1.tasks import amphora_driver_tasks
20
- from octavia.controller.worker.v1.tasks import database_tasks
21
- from octavia.controller.worker.v1.tasks import lifecycle_tasks
22
- from octavia.controller.worker.v1.tasks import model_tasks
23
-
24
-
25
- class HealthMonitorFlows(object):
26
-
27
- def get_create_health_monitor_flow(self):
28
- """Create a flow to create a health monitor
29
-
30
- :returns: The flow for creating a health monitor
31
- """
32
- create_hm_flow = linear_flow.Flow(constants.CREATE_HEALTH_MONITOR_FLOW)
33
- create_hm_flow.add(lifecycle_tasks.HealthMonitorToErrorOnRevertTask(
34
- requires=[constants.HEALTH_MON,
35
- constants.LISTENERS,
36
- constants.LOADBALANCER]))
37
- create_hm_flow.add(database_tasks.MarkHealthMonitorPendingCreateInDB(
38
- requires=constants.HEALTH_MON))
39
- create_hm_flow.add(amphora_driver_tasks.ListenersUpdate(
40
- requires=constants.LOADBALANCER))
41
- create_hm_flow.add(database_tasks.MarkHealthMonitorActiveInDB(
42
- requires=constants.HEALTH_MON))
43
- create_hm_flow.add(database_tasks.MarkPoolActiveInDB(
44
- requires=constants.POOL))
45
- create_hm_flow.add(database_tasks.MarkLBAndListenersActiveInDB(
46
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
47
-
48
- return create_hm_flow
49
-
50
- def get_delete_health_monitor_flow(self):
51
- """Create a flow to delete a health monitor
52
-
53
- :returns: The flow for deleting a health monitor
54
- """
55
- delete_hm_flow = linear_flow.Flow(constants.DELETE_HEALTH_MONITOR_FLOW)
56
- delete_hm_flow.add(lifecycle_tasks.HealthMonitorToErrorOnRevertTask(
57
- requires=[constants.HEALTH_MON,
58
- constants.LISTENERS,
59
- constants.LOADBALANCER]))
60
- delete_hm_flow.add(database_tasks.MarkHealthMonitorPendingDeleteInDB(
61
- requires=constants.HEALTH_MON))
62
- delete_hm_flow.add(model_tasks.
63
- DeleteModelObject(rebind={constants.OBJECT:
64
- constants.HEALTH_MON}))
65
- delete_hm_flow.add(amphora_driver_tasks.ListenersUpdate(
66
- requires=constants.LOADBALANCER))
67
- delete_hm_flow.add(database_tasks.DeleteHealthMonitorInDB(
68
- requires=constants.HEALTH_MON))
69
- delete_hm_flow.add(database_tasks.DecrementHealthMonitorQuota(
70
- requires=constants.HEALTH_MON))
71
- delete_hm_flow.add(
72
- database_tasks.UpdatePoolMembersOperatingStatusInDB(
73
- requires=constants.POOL,
74
- inject={constants.OPERATING_STATUS: constants.NO_MONITOR}))
75
- delete_hm_flow.add(database_tasks.MarkPoolActiveInDB(
76
- requires=constants.POOL))
77
- delete_hm_flow.add(database_tasks.MarkLBAndListenersActiveInDB(
78
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
79
-
80
- return delete_hm_flow
81
-
82
- def get_update_health_monitor_flow(self):
83
- """Create a flow to update a health monitor
84
-
85
- :returns: The flow for updating a health monitor
86
- """
87
- update_hm_flow = linear_flow.Flow(constants.UPDATE_HEALTH_MONITOR_FLOW)
88
- update_hm_flow.add(lifecycle_tasks.HealthMonitorToErrorOnRevertTask(
89
- requires=[constants.HEALTH_MON,
90
- constants.LISTENERS,
91
- constants.LOADBALANCER]))
92
- update_hm_flow.add(database_tasks.MarkHealthMonitorPendingUpdateInDB(
93
- requires=constants.HEALTH_MON))
94
- update_hm_flow.add(amphora_driver_tasks.ListenersUpdate(
95
- requires=constants.LOADBALANCER))
96
- update_hm_flow.add(database_tasks.UpdateHealthMonInDB(
97
- requires=[constants.HEALTH_MON, constants.UPDATE_DICT]))
98
- update_hm_flow.add(database_tasks.MarkHealthMonitorActiveInDB(
99
- requires=constants.HEALTH_MON))
100
- update_hm_flow.add(database_tasks.MarkPoolActiveInDB(
101
- requires=constants.POOL))
102
- update_hm_flow.add(database_tasks.MarkLBAndListenersActiveInDB(
103
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
104
-
105
- return update_hm_flow
@@ -1,94 +0,0 @@
1
- # Copyright 2016 Blue Box, an IBM Company
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
-
16
- from taskflow.patterns import linear_flow
17
-
18
- from octavia.common import constants
19
- from octavia.controller.worker.v1.tasks import amphora_driver_tasks
20
- from octavia.controller.worker.v1.tasks import database_tasks
21
- from octavia.controller.worker.v1.tasks import lifecycle_tasks
22
- from octavia.controller.worker.v1.tasks import model_tasks
23
-
24
-
25
- class L7PolicyFlows(object):
26
-
27
- def get_create_l7policy_flow(self):
28
- """Create a flow to create an L7 policy
29
-
30
- :returns: The flow for creating an L7 policy
31
- """
32
- create_l7policy_flow = linear_flow.Flow(constants.CREATE_L7POLICY_FLOW)
33
- create_l7policy_flow.add(lifecycle_tasks.L7PolicyToErrorOnRevertTask(
34
- requires=[constants.L7POLICY,
35
- constants.LISTENERS,
36
- constants.LOADBALANCER]))
37
- create_l7policy_flow.add(database_tasks.MarkL7PolicyPendingCreateInDB(
38
- requires=constants.L7POLICY))
39
- create_l7policy_flow.add(amphora_driver_tasks.ListenersUpdate(
40
- requires=constants.LOADBALANCER))
41
- create_l7policy_flow.add(database_tasks.MarkL7PolicyActiveInDB(
42
- requires=constants.L7POLICY))
43
- create_l7policy_flow.add(database_tasks.MarkLBAndListenersActiveInDB(
44
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
45
-
46
- return create_l7policy_flow
47
-
48
- def get_delete_l7policy_flow(self):
49
- """Create a flow to delete an L7 policy
50
-
51
- :returns: The flow for deleting an L7 policy
52
- """
53
- delete_l7policy_flow = linear_flow.Flow(constants.DELETE_L7POLICY_FLOW)
54
- delete_l7policy_flow.add(lifecycle_tasks.L7PolicyToErrorOnRevertTask(
55
- requires=[constants.L7POLICY,
56
- constants.LISTENERS,
57
- constants.LOADBALANCER]))
58
- delete_l7policy_flow.add(database_tasks.MarkL7PolicyPendingDeleteInDB(
59
- requires=constants.L7POLICY))
60
- delete_l7policy_flow.add(model_tasks.DeleteModelObject(
61
- rebind={constants.OBJECT: constants.L7POLICY}))
62
- delete_l7policy_flow.add(amphora_driver_tasks.ListenersUpdate(
63
- requires=constants.LOADBALANCER))
64
- delete_l7policy_flow.add(database_tasks.DeleteL7PolicyInDB(
65
- requires=constants.L7POLICY))
66
- delete_l7policy_flow.add(database_tasks.DecrementL7policyQuota(
67
- requires=constants.L7POLICY))
68
- delete_l7policy_flow.add(database_tasks.MarkLBAndListenersActiveInDB(
69
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
70
-
71
- return delete_l7policy_flow
72
-
73
- def get_update_l7policy_flow(self):
74
- """Create a flow to update an L7 policy
75
-
76
- :returns: The flow for updating an L7 policy
77
- """
78
- update_l7policy_flow = linear_flow.Flow(constants.UPDATE_L7POLICY_FLOW)
79
- update_l7policy_flow.add(lifecycle_tasks.L7PolicyToErrorOnRevertTask(
80
- requires=[constants.L7POLICY,
81
- constants.LISTENERS,
82
- constants.LOADBALANCER]))
83
- update_l7policy_flow.add(database_tasks.MarkL7PolicyPendingUpdateInDB(
84
- requires=constants.L7POLICY))
85
- update_l7policy_flow.add(amphora_driver_tasks.ListenersUpdate(
86
- requires=constants.LOADBALANCER))
87
- update_l7policy_flow.add(database_tasks.UpdateL7PolicyInDB(
88
- requires=[constants.L7POLICY, constants.UPDATE_DICT]))
89
- update_l7policy_flow.add(database_tasks.MarkL7PolicyActiveInDB(
90
- requires=constants.L7POLICY))
91
- update_l7policy_flow.add(database_tasks.MarkLBAndListenersActiveInDB(
92
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
93
-
94
- return update_l7policy_flow
@@ -1,100 +0,0 @@
1
- # Copyright 2016 Blue Box, an IBM Company
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
-
16
- from taskflow.patterns import linear_flow
17
-
18
- from octavia.common import constants
19
- from octavia.controller.worker.v1.tasks import amphora_driver_tasks
20
- from octavia.controller.worker.v1.tasks import database_tasks
21
- from octavia.controller.worker.v1.tasks import lifecycle_tasks
22
- from octavia.controller.worker.v1.tasks import model_tasks
23
-
24
-
25
- class L7RuleFlows(object):
26
-
27
- def get_create_l7rule_flow(self):
28
- """Create a flow to create an L7 rule
29
-
30
- :returns: The flow for creating an L7 rule
31
- """
32
- create_l7rule_flow = linear_flow.Flow(constants.CREATE_L7RULE_FLOW)
33
- create_l7rule_flow.add(lifecycle_tasks.L7RuleToErrorOnRevertTask(
34
- requires=[constants.L7RULE,
35
- constants.LISTENERS,
36
- constants.LOADBALANCER]))
37
- create_l7rule_flow.add(database_tasks.MarkL7RulePendingCreateInDB(
38
- requires=constants.L7RULE))
39
- create_l7rule_flow.add(amphora_driver_tasks.ListenersUpdate(
40
- requires=constants.LOADBALANCER))
41
- create_l7rule_flow.add(database_tasks.MarkL7RuleActiveInDB(
42
- requires=constants.L7RULE))
43
- create_l7rule_flow.add(database_tasks.MarkL7PolicyActiveInDB(
44
- requires=constants.L7POLICY))
45
- create_l7rule_flow.add(database_tasks.MarkLBAndListenersActiveInDB(
46
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
47
-
48
- return create_l7rule_flow
49
-
50
- def get_delete_l7rule_flow(self):
51
- """Create a flow to delete an L7 rule
52
-
53
- :returns: The flow for deleting an L7 rule
54
- """
55
- delete_l7rule_flow = linear_flow.Flow(constants.DELETE_L7RULE_FLOW)
56
- delete_l7rule_flow.add(lifecycle_tasks.L7RuleToErrorOnRevertTask(
57
- requires=[constants.L7RULE,
58
- constants.LISTENERS,
59
- constants.LOADBALANCER]))
60
- delete_l7rule_flow.add(database_tasks.MarkL7RulePendingDeleteInDB(
61
- requires=constants.L7RULE))
62
- delete_l7rule_flow.add(model_tasks.DeleteModelObject(
63
- rebind={constants.OBJECT: constants.L7RULE}))
64
- delete_l7rule_flow.add(amphora_driver_tasks.ListenersUpdate(
65
- requires=constants.LOADBALANCER))
66
- delete_l7rule_flow.add(database_tasks.DeleteL7RuleInDB(
67
- requires=constants.L7RULE))
68
- delete_l7rule_flow.add(database_tasks.DecrementL7ruleQuota(
69
- requires=constants.L7RULE))
70
- delete_l7rule_flow.add(database_tasks.MarkL7PolicyActiveInDB(
71
- requires=constants.L7POLICY))
72
- delete_l7rule_flow.add(database_tasks.MarkLBAndListenersActiveInDB(
73
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
74
-
75
- return delete_l7rule_flow
76
-
77
- def get_update_l7rule_flow(self):
78
- """Create a flow to update an L7 rule
79
-
80
- :returns: The flow for updating an L7 rule
81
- """
82
- update_l7rule_flow = linear_flow.Flow(constants.UPDATE_L7RULE_FLOW)
83
- update_l7rule_flow.add(lifecycle_tasks.L7RuleToErrorOnRevertTask(
84
- requires=[constants.L7RULE,
85
- constants.LISTENERS,
86
- constants.LOADBALANCER]))
87
- update_l7rule_flow.add(database_tasks.MarkL7RulePendingUpdateInDB(
88
- requires=constants.L7RULE))
89
- update_l7rule_flow.add(amphora_driver_tasks.ListenersUpdate(
90
- requires=constants.LOADBALANCER))
91
- update_l7rule_flow.add(database_tasks.UpdateL7RuleInDB(
92
- requires=[constants.L7RULE, constants.UPDATE_DICT]))
93
- update_l7rule_flow.add(database_tasks.MarkL7RuleActiveInDB(
94
- requires=constants.L7RULE))
95
- update_l7rule_flow.add(database_tasks.MarkL7PolicyActiveInDB(
96
- requires=constants.L7POLICY))
97
- update_l7rule_flow.add(database_tasks.MarkLBAndListenersActiveInDB(
98
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
99
-
100
- return update_l7rule_flow
@@ -1,128 +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
-
16
- from taskflow.patterns import linear_flow
17
-
18
- from octavia.common import constants
19
- from octavia.controller.worker.v1.tasks import amphora_driver_tasks
20
- from octavia.controller.worker.v1.tasks import database_tasks
21
- from octavia.controller.worker.v1.tasks import lifecycle_tasks
22
- from octavia.controller.worker.v1.tasks import network_tasks
23
-
24
-
25
- class ListenerFlows(object):
26
-
27
- def get_create_listener_flow(self):
28
- """Create a flow to create a listener
29
-
30
- :returns: The flow for creating a listener
31
- """
32
- create_listener_flow = linear_flow.Flow(constants.CREATE_LISTENER_FLOW)
33
- create_listener_flow.add(lifecycle_tasks.ListenersToErrorOnRevertTask(
34
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
35
- create_listener_flow.add(amphora_driver_tasks.ListenersUpdate(
36
- requires=constants.LOADBALANCER))
37
- create_listener_flow.add(network_tasks.UpdateVIP(
38
- requires=constants.LOADBALANCER))
39
- create_listener_flow.add(database_tasks.
40
- MarkLBAndListenersActiveInDB(
41
- requires=[constants.LOADBALANCER,
42
- constants.LISTENERS]))
43
- return create_listener_flow
44
-
45
- def get_create_all_listeners_flow(self):
46
- """Create a flow to create all listeners
47
-
48
- :returns: The flow for creating all listeners
49
- """
50
- create_all_listeners_flow = linear_flow.Flow(
51
- constants.CREATE_LISTENERS_FLOW)
52
- create_all_listeners_flow.add(
53
- database_tasks.GetListenersFromLoadbalancer(
54
- requires=constants.LOADBALANCER,
55
- provides=constants.LISTENERS))
56
- create_all_listeners_flow.add(database_tasks.ReloadLoadBalancer(
57
- requires=constants.LOADBALANCER_ID,
58
- provides=constants.LOADBALANCER))
59
- create_all_listeners_flow.add(amphora_driver_tasks.ListenersUpdate(
60
- requires=constants.LOADBALANCER))
61
- create_all_listeners_flow.add(network_tasks.UpdateVIP(
62
- requires=constants.LOADBALANCER))
63
- return create_all_listeners_flow
64
-
65
- def get_delete_listener_flow(self):
66
- """Create a flow to delete a listener
67
-
68
- :returns: The flow for deleting a listener
69
- """
70
- delete_listener_flow = linear_flow.Flow(constants.DELETE_LISTENER_FLOW)
71
- delete_listener_flow.add(lifecycle_tasks.ListenerToErrorOnRevertTask(
72
- requires=constants.LISTENER))
73
- delete_listener_flow.add(amphora_driver_tasks.ListenerDelete(
74
- requires=constants.LISTENER))
75
- delete_listener_flow.add(network_tasks.UpdateVIPForDelete(
76
- requires=constants.LOADBALANCER))
77
- delete_listener_flow.add(database_tasks.DeleteListenerInDB(
78
- requires=constants.LISTENER))
79
- delete_listener_flow.add(database_tasks.DecrementListenerQuota(
80
- requires=constants.LISTENER))
81
- delete_listener_flow.add(database_tasks.MarkLBActiveInDB(
82
- requires=constants.LOADBALANCER))
83
-
84
- return delete_listener_flow
85
-
86
- def get_delete_listener_internal_flow(self, listener_name):
87
- """Create a flow to delete a listener and l7policies internally
88
-
89
- (will skip deletion on the amp and marking LB active)
90
-
91
- :returns: The flow for deleting a listener
92
- """
93
- delete_listener_flow = linear_flow.Flow(constants.DELETE_LISTENER_FLOW)
94
- # Should cascade delete all L7 policies
95
- delete_listener_flow.add(network_tasks.UpdateVIPForDelete(
96
- name='delete_update_vip_' + listener_name,
97
- requires=constants.LOADBALANCER))
98
- delete_listener_flow.add(database_tasks.DeleteListenerInDB(
99
- name='delete_listener_in_db_' + listener_name,
100
- requires=constants.LISTENER,
101
- rebind={constants.LISTENER: listener_name}))
102
- delete_listener_flow.add(database_tasks.DecrementListenerQuota(
103
- name='decrement_listener_quota_' + listener_name,
104
- requires=constants.LISTENER,
105
- rebind={constants.LISTENER: listener_name}))
106
-
107
- return delete_listener_flow
108
-
109
- def get_update_listener_flow(self):
110
- """Create a flow to update a listener
111
-
112
- :returns: The flow for updating a listener
113
- """
114
- update_listener_flow = linear_flow.Flow(constants.UPDATE_LISTENER_FLOW)
115
- update_listener_flow.add(lifecycle_tasks.ListenersToErrorOnRevertTask(
116
- requires=[constants.LOADBALANCER, constants.LISTENERS]))
117
- update_listener_flow.add(amphora_driver_tasks.ListenersUpdate(
118
- requires=constants.LOADBALANCER))
119
- update_listener_flow.add(network_tasks.UpdateVIP(
120
- requires=constants.LOADBALANCER))
121
- update_listener_flow.add(database_tasks.UpdateListenerInDB(
122
- requires=[constants.LISTENER, constants.UPDATE_DICT]))
123
- update_listener_flow.add(database_tasks.
124
- MarkLBAndListenersActiveInDB(
125
- requires=[constants.LOADBALANCER,
126
- constants.LISTENERS]))
127
-
128
- return update_listener_flow