octavia 12.0.0.0rc2__py3-none-any.whl → 13.0.0.0rc1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- octavia/amphorae/backends/agent/api_server/osutils.py +1 -0
- octavia/amphorae/backends/agent/api_server/plug.py +21 -7
- octavia/amphorae/backends/agent/api_server/templates/amphora-netns.systemd.j2 +2 -2
- octavia/amphorae/backends/agent/api_server/util.py +21 -0
- octavia/amphorae/backends/health_daemon/health_daemon.py +9 -3
- octavia/amphorae/backends/health_daemon/health_sender.py +2 -0
- octavia/amphorae/backends/utils/interface.py +14 -6
- octavia/amphorae/backends/utils/interface_file.py +6 -3
- octavia/amphorae/backends/utils/keepalivedlvs_query.py +8 -9
- octavia/amphorae/drivers/driver_base.py +1 -2
- octavia/amphorae/drivers/haproxy/rest_api_driver.py +11 -25
- octavia/amphorae/drivers/health/heartbeat_udp.py +34 -24
- octavia/amphorae/drivers/keepalived/jinja/jinja_cfg.py +3 -12
- octavia/amphorae/drivers/noop_driver/driver.py +3 -5
- octavia/api/common/pagination.py +4 -4
- octavia/api/drivers/amphora_driver/v2/driver.py +11 -5
- octavia/api/drivers/driver_agent/driver_get.py +22 -14
- octavia/api/drivers/driver_agent/driver_updater.py +8 -4
- octavia/api/drivers/utils.py +4 -2
- octavia/api/healthcheck/healthcheck_plugins.py +4 -2
- octavia/api/root_controller.py +4 -1
- octavia/api/v2/controllers/amphora.py +35 -38
- octavia/api/v2/controllers/availability_zone_profiles.py +43 -33
- octavia/api/v2/controllers/availability_zones.py +22 -18
- octavia/api/v2/controllers/flavor_profiles.py +37 -28
- octavia/api/v2/controllers/flavors.py +19 -15
- octavia/api/v2/controllers/health_monitor.py +44 -33
- octavia/api/v2/controllers/l7policy.py +52 -40
- octavia/api/v2/controllers/l7rule.py +68 -55
- octavia/api/v2/controllers/listener.py +88 -61
- octavia/api/v2/controllers/load_balancer.py +52 -34
- octavia/api/v2/controllers/member.py +63 -52
- octavia/api/v2/controllers/pool.py +55 -42
- octavia/api/v2/controllers/quotas.py +5 -3
- octavia/api/v2/types/listener.py +15 -0
- octavia/cmd/octavia_worker.py +0 -3
- octavia/cmd/status.py +1 -4
- octavia/common/clients.py +25 -45
- octavia/common/config.py +64 -22
- octavia/common/constants.py +3 -2
- octavia/common/data_models.py +7 -1
- octavia/common/jinja/haproxy/combined_listeners/jinja_cfg.py +12 -1
- octavia/common/jinja/haproxy/combined_listeners/templates/macros.j2 +5 -2
- octavia/common/jinja/lvs/jinja_cfg.py +4 -2
- octavia/common/keystone.py +58 -5
- octavia/common/validate.py +35 -0
- octavia/compute/drivers/noop_driver/driver.py +6 -0
- octavia/controller/healthmanager/health_manager.py +3 -6
- octavia/controller/housekeeping/house_keeping.py +36 -37
- octavia/controller/worker/amphora_rate_limit.py +5 -4
- octavia/controller/worker/task_utils.py +57 -41
- octavia/controller/worker/v2/controller_worker.py +160 -103
- octavia/controller/worker/v2/flows/listener_flows.py +3 -0
- octavia/controller/worker/v2/flows/load_balancer_flows.py +9 -14
- octavia/controller/worker/v2/tasks/amphora_driver_tasks.py +152 -91
- octavia/controller/worker/v2/tasks/compute_tasks.py +4 -2
- octavia/controller/worker/v2/tasks/database_tasks.py +542 -400
- octavia/controller/worker/v2/tasks/network_tasks.py +119 -79
- octavia/db/api.py +26 -23
- octavia/db/base_models.py +2 -2
- octavia/db/healthcheck.py +2 -1
- octavia/db/migration/alembic_migrations/versions/632152d2d32e_add_http_strict_transport_security_.py +42 -0
- octavia/db/models.py +12 -2
- octavia/db/prepare.py +2 -0
- octavia/db/repositories.py +462 -482
- octavia/hacking/checks.py +1 -1
- octavia/network/base.py +0 -14
- octavia/network/drivers/neutron/allowed_address_pairs.py +92 -135
- octavia/network/drivers/neutron/base.py +65 -77
- octavia/network/drivers/neutron/utils.py +69 -85
- octavia/network/drivers/noop_driver/driver.py +0 -7
- octavia/statistics/drivers/update_db.py +10 -10
- octavia/tests/common/constants.py +91 -84
- octavia/tests/common/sample_data_models.py +13 -1
- octavia/tests/fixtures.py +32 -0
- octavia/tests/functional/amphorae/backend/agent/api_server/test_server.py +9 -10
- octavia/tests/functional/api/drivers/driver_agent/test_driver_agent.py +260 -15
- octavia/tests/functional/api/test_root_controller.py +3 -28
- octavia/tests/functional/api/v2/base.py +5 -3
- octavia/tests/functional/api/v2/test_amphora.py +18 -5
- octavia/tests/functional/api/v2/test_availability_zone_profiles.py +1 -0
- octavia/tests/functional/api/v2/test_listener.py +51 -19
- octavia/tests/functional/api/v2/test_load_balancer.py +10 -1
- octavia/tests/functional/db/base.py +31 -16
- octavia/tests/functional/db/test_models.py +27 -28
- octavia/tests/functional/db/test_repositories.py +407 -50
- octavia/tests/unit/amphorae/backends/agent/api_server/test_amphora_info.py +2 -0
- octavia/tests/unit/amphorae/backends/agent/api_server/test_osutils.py +1 -1
- octavia/tests/unit/amphorae/backends/agent/api_server/test_plug.py +54 -6
- octavia/tests/unit/amphorae/backends/agent/api_server/test_util.py +35 -0
- octavia/tests/unit/amphorae/backends/health_daemon/test_health_daemon.py +8 -0
- octavia/tests/unit/amphorae/backends/health_daemon/test_health_sender.py +18 -0
- octavia/tests/unit/amphorae/backends/utils/test_interface.py +81 -0
- octavia/tests/unit/amphorae/backends/utils/test_interface_file.py +2 -0
- octavia/tests/unit/amphorae/backends/utils/test_keepalivedlvs_query.py +129 -5
- octavia/tests/unit/amphorae/drivers/haproxy/test_rest_api_driver_1_0.py +42 -20
- octavia/tests/unit/amphorae/drivers/health/test_heartbeat_udp.py +18 -20
- octavia/tests/unit/amphorae/drivers/keepalived/jinja/test_jinja_cfg.py +4 -4
- octavia/tests/unit/amphorae/drivers/noop_driver/test_driver.py +4 -1
- octavia/tests/unit/api/drivers/driver_agent/test_driver_get.py +3 -3
- octavia/tests/unit/api/drivers/driver_agent/test_driver_updater.py +11 -13
- octavia/tests/unit/base.py +6 -0
- octavia/tests/unit/cmd/test_interface.py +2 -2
- octavia/tests/unit/cmd/test_status.py +2 -2
- octavia/tests/unit/common/jinja/haproxy/combined_listeners/test_jinja_cfg.py +152 -1
- octavia/tests/unit/common/sample_configs/sample_configs_combined.py +10 -3
- octavia/tests/unit/common/test_clients.py +0 -39
- octavia/tests/unit/common/test_keystone.py +54 -0
- octavia/tests/unit/common/test_validate.py +67 -0
- octavia/tests/unit/controller/healthmanager/test_health_manager.py +8 -22
- octavia/tests/unit/controller/housekeeping/test_house_keeping.py +3 -64
- octavia/tests/unit/controller/worker/test_amphora_rate_limit.py +1 -1
- octavia/tests/unit/controller/worker/test_task_utils.py +44 -24
- octavia/tests/unit/controller/worker/v2/flows/test_load_balancer_flows.py +0 -1
- octavia/tests/unit/controller/worker/v2/tasks/test_amphora_driver_tasks.py +49 -26
- octavia/tests/unit/controller/worker/v2/tasks/test_database_tasks.py +399 -196
- octavia/tests/unit/controller/worker/v2/tasks/test_database_tasks_quota.py +37 -64
- octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py +3 -14
- octavia/tests/unit/controller/worker/v2/test_controller_worker.py +2 -2
- octavia/tests/unit/network/drivers/neutron/test_allowed_address_pairs.py +456 -561
- octavia/tests/unit/network/drivers/neutron/test_base.py +181 -194
- octavia/tests/unit/network/drivers/neutron/test_utils.py +14 -30
- octavia/tests/unit/statistics/drivers/test_update_db.py +7 -5
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/README.rst +1 -1
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/AUTHORS +4 -0
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/METADATA +4 -4
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/RECORD +141 -189
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/entry_points.txt +1 -2
- octavia-13.0.0.0rc1.dist-info/pbr.json +1 -0
- octavia/api/drivers/amphora_driver/v1/__init__.py +0 -11
- octavia/api/drivers/amphora_driver/v1/driver.py +0 -547
- octavia/controller/queue/v1/__init__.py +0 -11
- octavia/controller/queue/v1/consumer.py +0 -64
- octavia/controller/queue/v1/endpoints.py +0 -160
- octavia/controller/worker/v1/__init__.py +0 -11
- octavia/controller/worker/v1/controller_worker.py +0 -1157
- octavia/controller/worker/v1/flows/__init__.py +0 -11
- octavia/controller/worker/v1/flows/amphora_flows.py +0 -610
- octavia/controller/worker/v1/flows/health_monitor_flows.py +0 -105
- octavia/controller/worker/v1/flows/l7policy_flows.py +0 -94
- octavia/controller/worker/v1/flows/l7rule_flows.py +0 -100
- octavia/controller/worker/v1/flows/listener_flows.py +0 -128
- octavia/controller/worker/v1/flows/load_balancer_flows.py +0 -692
- octavia/controller/worker/v1/flows/member_flows.py +0 -230
- octavia/controller/worker/v1/flows/pool_flows.py +0 -127
- octavia/controller/worker/v1/tasks/__init__.py +0 -11
- octavia/controller/worker/v1/tasks/amphora_driver_tasks.py +0 -453
- octavia/controller/worker/v1/tasks/cert_task.py +0 -51
- octavia/controller/worker/v1/tasks/compute_tasks.py +0 -335
- octavia/controller/worker/v1/tasks/database_tasks.py +0 -2756
- octavia/controller/worker/v1/tasks/lifecycle_tasks.py +0 -173
- octavia/controller/worker/v1/tasks/model_tasks.py +0 -41
- octavia/controller/worker/v1/tasks/network_tasks.py +0 -970
- octavia/controller/worker/v1/tasks/retry_tasks.py +0 -74
- octavia/tests/unit/api/drivers/amphora_driver/v1/__init__.py +0 -11
- octavia/tests/unit/api/drivers/amphora_driver/v1/test_driver.py +0 -824
- octavia/tests/unit/controller/queue/v1/__init__.py +0 -11
- octavia/tests/unit/controller/queue/v1/test_consumer.py +0 -61
- octavia/tests/unit/controller/queue/v1/test_endpoints.py +0 -189
- octavia/tests/unit/controller/worker/v1/__init__.py +0 -11
- octavia/tests/unit/controller/worker/v1/flows/__init__.py +0 -11
- octavia/tests/unit/controller/worker/v1/flows/test_amphora_flows.py +0 -474
- octavia/tests/unit/controller/worker/v1/flows/test_health_monitor_flows.py +0 -72
- octavia/tests/unit/controller/worker/v1/flows/test_l7policy_flows.py +0 -67
- octavia/tests/unit/controller/worker/v1/flows/test_l7rule_flows.py +0 -67
- octavia/tests/unit/controller/worker/v1/flows/test_listener_flows.py +0 -91
- octavia/tests/unit/controller/worker/v1/flows/test_load_balancer_flows.py +0 -431
- octavia/tests/unit/controller/worker/v1/flows/test_member_flows.py +0 -106
- octavia/tests/unit/controller/worker/v1/flows/test_pool_flows.py +0 -77
- octavia/tests/unit/controller/worker/v1/tasks/__init__.py +0 -11
- octavia/tests/unit/controller/worker/v1/tasks/test_amphora_driver_tasks.py +0 -792
- octavia/tests/unit/controller/worker/v1/tasks/test_cert_task.py +0 -46
- octavia/tests/unit/controller/worker/v1/tasks/test_compute_tasks.py +0 -634
- octavia/tests/unit/controller/worker/v1/tasks/test_database_tasks.py +0 -2615
- octavia/tests/unit/controller/worker/v1/tasks/test_database_tasks_quota.py +0 -415
- octavia/tests/unit/controller/worker/v1/tasks/test_lifecycle_tasks.py +0 -401
- octavia/tests/unit/controller/worker/v1/tasks/test_model_tasks.py +0 -44
- octavia/tests/unit/controller/worker/v1/tasks/test_network_tasks.py +0 -1788
- octavia/tests/unit/controller/worker/v1/tasks/test_retry_tasks.py +0 -47
- octavia/tests/unit/controller/worker/v1/test_controller_worker.py +0 -2096
- octavia-12.0.0.0rc2.dist-info/pbr.json +0 -1
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/LICENSE +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/README.rst +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/diskimage-create.sh +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/image-tests.sh +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/requirements.txt +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/test-requirements.txt +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/tox.ini +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/data/share/octavia/diskimage-create/version.txt +0 -0
- {octavia-12.0.0.0rc2.data → octavia-13.0.0.0rc1.data}/scripts/octavia-wsgi +0 -0
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/LICENSE +0 -0
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/WHEEL +0 -0
- {octavia-12.0.0.0rc2.dist-info → octavia-13.0.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -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
|