octavia 14.0.0.0rc1__py3-none-any.whl → 15.0.0__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/agent_jinja_cfg.py +1 -4
- octavia/amphorae/backends/agent/api_server/amphora_info.py +5 -5
- octavia/amphorae/backends/agent/api_server/keepalived.py +26 -53
- octavia/amphorae/backends/agent/api_server/keepalivedlvs.py +44 -83
- octavia/amphorae/backends/agent/api_server/loadbalancer.py +94 -112
- octavia/amphorae/backends/agent/api_server/lvs_listener_base.py +1 -1
- octavia/amphorae/backends/agent/api_server/osutils.py +11 -8
- octavia/amphorae/backends/agent/api_server/plug.py +12 -13
- octavia/amphorae/backends/agent/api_server/server.py +4 -3
- octavia/amphorae/backends/agent/api_server/templates/keepalived_lvs_check_script.sh.j2 +0 -4
- octavia/amphorae/backends/agent/api_server/util.py +23 -68
- octavia/amphorae/backends/agent/templates/amphora_agent_conf.template +0 -3
- octavia/amphorae/backends/health_daemon/health_daemon.py +6 -7
- octavia/amphorae/backends/health_daemon/health_sender.py +2 -2
- octavia/amphorae/backends/utils/haproxy_query.py +3 -6
- octavia/amphorae/backends/utils/interface.py +11 -50
- octavia/amphorae/backends/utils/interface_file.py +29 -16
- octavia/amphorae/backends/utils/ip_advertisement.py +1 -1
- octavia/amphorae/backends/utils/keepalivedlvs_query.py +7 -8
- octavia/amphorae/backends/utils/network_namespace.py +3 -3
- octavia/amphorae/backends/utils/nftable_utils.py +33 -11
- octavia/amphorae/drivers/driver_base.py +2 -2
- octavia/amphorae/drivers/haproxy/rest_api_driver.py +26 -38
- octavia/amphorae/drivers/health/heartbeat_udp.py +1 -1
- octavia/amphorae/drivers/keepalived/jinja/jinja_cfg.py +1 -2
- octavia/amphorae/drivers/keepalived/jinja/templates/keepalived_base.template +0 -1
- octavia/amphorae/drivers/noop_driver/driver.py +1 -1
- octavia/api/app.py +1 -2
- octavia/api/common/pagination.py +16 -22
- octavia/api/common/types.py +1 -1
- octavia/api/drivers/amphora_driver/v2/driver.py +6 -6
- octavia/api/drivers/driver_agent/driver_listener.py +3 -3
- octavia/api/drivers/driver_agent/driver_updater.py +1 -1
- octavia/api/drivers/noop_driver/driver.py +1 -1
- octavia/api/root_controller.py +2 -2
- octavia/api/v2/controllers/base.py +2 -4
- octavia/api/v2/controllers/health_monitor.py +5 -3
- octavia/api/v2/controllers/listener.py +2 -2
- octavia/api/v2/controllers/load_balancer.py +7 -0
- octavia/api/v2/controllers/member.py +12 -2
- octavia/api/v2/types/amphora.py +1 -1
- octavia/api/v2/types/availability_zone_profile.py +1 -2
- octavia/api/v2/types/availability_zones.py +1 -2
- octavia/api/v2/types/flavor_profile.py +1 -1
- octavia/api/v2/types/flavors.py +1 -1
- octavia/api/v2/types/health_monitor.py +1 -1
- octavia/api/v2/types/l7policy.py +1 -1
- octavia/api/v2/types/l7rule.py +1 -1
- octavia/api/v2/types/listener.py +3 -3
- octavia/api/v2/types/load_balancer.py +3 -3
- octavia/api/v2/types/member.py +2 -2
- octavia/api/v2/types/pool.py +2 -2
- octavia/api/v2/types/quotas.py +2 -2
- octavia/certificates/common/barbican.py +1 -1
- octavia/certificates/common/cert.py +1 -1
- octavia/certificates/generator/cert_gen.py +1 -1
- octavia/certificates/generator/local.py +5 -5
- octavia/certificates/manager/cert_mgr.py +1 -1
- octavia/certificates/manager/local.py +20 -20
- octavia/cmd/agent.py +3 -3
- octavia/cmd/driver_agent.py +2 -3
- octavia/cmd/health_checker.py +4 -4
- octavia/cmd/interface.py +4 -4
- octavia/cmd/prometheus_proxy.py +11 -13
- octavia/common/base_taskflow.py +3 -3
- octavia/common/clients.py +4 -4
- octavia/common/config.py +18 -24
- octavia/common/constants.py +28 -35
- octavia/common/data_models.py +2 -2
- octavia/common/jinja/haproxy/combined_listeners/jinja_cfg.py +5 -5
- octavia/common/jinja/logging/logging_jinja_cfg.py +1 -1
- octavia/common/jinja/lvs/jinja_cfg.py +1 -1
- octavia/common/jinja/user_data_jinja_cfg.py +1 -1
- octavia/common/keystone.py +1 -1
- octavia/common/policy.py +2 -3
- octavia/common/stats.py +1 -1
- octavia/common/tls_utils/cert_parser.py +2 -1
- octavia/common/utils.py +3 -3
- octavia/common/validate.py +9 -13
- octavia/compute/compute_base.py +1 -1
- octavia/compute/drivers/noop_driver/driver.py +1 -1
- octavia/compute/drivers/nova_driver.py +1 -1
- octavia/controller/healthmanager/health_manager.py +1 -1
- octavia/controller/housekeeping/house_keeping.py +2 -2
- octavia/controller/queue/v2/consumer.py +1 -2
- octavia/controller/queue/v2/endpoints.py +1 -1
- octavia/controller/worker/amphora_rate_limit.py +6 -6
- octavia/controller/worker/task_utils.py +1 -1
- octavia/controller/worker/v2/controller_worker.py +3 -3
- octavia/controller/worker/v2/flows/amphora_flows.py +15 -4
- octavia/controller/worker/v2/flows/flow_utils.py +6 -5
- octavia/controller/worker/v2/flows/health_monitor_flows.py +1 -1
- octavia/controller/worker/v2/flows/l7policy_flows.py +1 -1
- octavia/controller/worker/v2/flows/l7rule_flows.py +1 -1
- octavia/controller/worker/v2/flows/listener_flows.py +18 -6
- octavia/controller/worker/v2/flows/load_balancer_flows.py +1 -1
- octavia/controller/worker/v2/flows/member_flows.py +12 -19
- octavia/controller/worker/v2/flows/pool_flows.py +1 -1
- octavia/controller/worker/v2/taskflow_jobboard_driver.py +17 -3
- octavia/controller/worker/v2/tasks/compute_tasks.py +1 -3
- octavia/controller/worker/v2/tasks/network_tasks.py +3 -4
- octavia/db/base_models.py +21 -9
- octavia/db/migration/alembic_migrations/versions/034756a182a2_amphora_add_image_id.py +2 -2
- octavia/db/migration/alembic_migrations/versions/034b2dc2f3e0_modernize_l7policy_fields.py +31 -31
- octavia/db/migration/alembic_migrations/versions/0f242cf02c74_add_provider_column.py +2 -2
- octavia/db/migration/alembic_migrations/versions/10d38216ad34_add_timestamps_to_amphora.py +4 -4
- octavia/db/migration/alembic_migrations/versions/11e4bb2bb8ef_fix_ipv6_vip.py +1 -1
- octavia/db/migration/alembic_migrations/versions/13500e2e978d_update_url_and_name_size.py +6 -6
- octavia/db/migration/alembic_migrations/versions/14892634e228_update_vip.py +5 -5
- octavia/db/migration/alembic_migrations/versions/186509101b9b_add_server_group_id_to_loadbalancer.py +2 -2
- octavia/db/migration/alembic_migrations/versions/1afc932f1ca2_l7rule_support_client_cert.py +3 -3
- octavia/db/migration/alembic_migrations/versions/1e4c1d83044c_keepalived_configuration_datamodel.py +26 -26
- octavia/db/migration/alembic_migrations/versions/2351ea316465_adding_terminate_https_tls_ref_support.py +4 -4
- octavia/db/migration/alembic_migrations/versions/256852d5ff7c_add_lb_network_ip_to_amphora.py +2 -2
- octavia/db/migration/alembic_migrations/versions/27e54d00c3cd_add_monitor_address_and_port_to_member.py +4 -4
- octavia/db/migration/alembic_migrations/versions/298eac0640a7_add_amphora_vrrp_port_id_and_ha_port_id.py +4 -4
- octavia/db/migration/alembic_migrations/versions/29ff921a6eb_shared_pools.py +3 -3
- octavia/db/migration/alembic_migrations/versions/2ad093f6353f_add_listener_client_ca_tls_certificate_.py +2 -2
- octavia/db/migration/alembic_migrations/versions/31f7653ded67_allow_multiple_vips_per_loadbalancer.py +10 -10
- octavia/db/migration/alembic_migrations/versions/32e5c35b26a8_add_l7policy_and_l7rule_quota.py +4 -4
- octavia/db/migration/alembic_migrations/versions/357d17a6d5ac_update_lb_and_amphora_data_model_for_.py +20 -20
- octavia/db/migration/alembic_migrations/versions/35dee79d5865_initial_create.py +185 -185
- octavia/db/migration/alembic_migrations/versions/36b94648fef8_add_timestamp.py +2 -2
- octavia/db/migration/alembic_migrations/versions/392fb85b4419_add_primary_key_to_spares_pool.py +1 -1
- octavia/db/migration/alembic_migrations/versions/3a1e1cdb7b27_rename_amphora_host_id.py +1 -1
- octavia/db/migration/alembic_migrations/versions/3b199c848b96_create_no_monitor_operational_status.py +1 -1
- octavia/db/migration/alembic_migrations/versions/3e5b37a0bdb9_add_vrrp_ip_and_ha_ip_to_amphora.py +4 -4
- octavia/db/migration/alembic_migrations/versions/3f8ff3be828e_create_quotas_table.py +12 -12
- octavia/db/migration/alembic_migrations/versions/43287cd10fef_make_pool_lb_algorithm_larger.py +6 -6
- octavia/db/migration/alembic_migrations/versions/443fe6676637_add_network_id_to_vip.py +2 -2
- octavia/db/migration/alembic_migrations/versions/44a2414dd683_adding_name_column_to_member_and_health_.py +1 -1
- octavia/db/migration/alembic_migrations/versions/458c9ee2a011_l7_policies_and_rules.py +57 -57
- octavia/db/migration/alembic_migrations/versions/46d914b2a5e5_seed_the_spares_pool_table.py +2 -2
- octavia/db/migration/alembic_migrations/versions/48660b6643f0_add_new_states_for_amphora.py +3 -3
- octavia/db/migration/alembic_migrations/versions/4aeb9e23ad43_add_draining_operating_status.py +1 -1
- octavia/db/migration/alembic_migrations/versions/4c094013699a_update_load_balancer_amphora.py +9 -9
- octavia/db/migration/alembic_migrations/versions/4f65b4f91c39_amphora_add_flavor_id.py +2 -2
- octavia/db/migration/alembic_migrations/versions/4faaa983e7a9_update_member_address_column.py +1 -1
- octavia/db/migration/alembic_migrations/versions/4fe8240425b4_update_vip_add_subnet_id.py +2 -2
- octavia/db/migration/alembic_migrations/versions/52377704420e_add_timestamps_to_healthmonitor.py +9 -9
- octavia/db/migration/alembic_migrations/versions/5309960964f8_add_proxy_protocol_for_pool.py +3 -3
- octavia/db/migration/alembic_migrations/versions/543f5d8e4e56_add_a_column_busy_in_table_amphora_health.py +2 -2
- octavia/db/migration/alembic_migrations/versions/55874a4ceed6_add_l7policy_action_redirect_prefix.py +5 -5
- octavia/db/migration/alembic_migrations/versions/5a3ee5472c31_add_cert_expiration__infor_in_amphora_table.py +4 -4
- octavia/db/migration/alembic_migrations/versions/62816c232310_fix_migration_for_mysql_5_7.py +1 -1
- octavia/db/migration/alembic_migrations/versions/6742ca1b27c2_add_l7policy_redirect_http_code.py +2 -2
- octavia/db/migration/alembic_migrations/versions/6ac558d7fc21_add_prometheus_listener_protocol.py +3 -3
- octavia/db/migration/alembic_migrations/versions/6ffc710674ef_spares_pool_table.py +2 -2
- octavia/db/migration/alembic_migrations/versions/7432f1d4ea83_add_http_host_head_inject_for_http_health_check.py +4 -4
- octavia/db/migration/alembic_migrations/versions/74aae261694c_extend_pool_for_backend_ca_and_crl.py +4 -4
- octavia/db/migration/alembic_migrations/versions/76aacf2e176c_extend_support_udp_protocol.py +3 -3
- octavia/db/migration/alembic_migrations/versions/80dba23a159f_tags_support.py +3 -3
- octavia/db/migration/alembic_migrations/versions/82b9402e71fd_update_vip_address_size.py +1 -1
- octavia/db/migration/alembic_migrations/versions/8ac4ed24df3a_add_availability_zone_to_lb.py +4 -4
- octavia/db/migration/alembic_migrations/versions/8b47b2546312_sctp_support.py +2 -2
- octavia/db/migration/alembic_migrations/versions/8c0851bdf6c3_change_tls_container_id_length_in_sni_.py +1 -1
- octavia/db/migration/alembic_migrations/versions/92fe9857279_create_healthmanager_table.py +3 -3
- octavia/db/migration/alembic_migrations/versions/9b5473976d6d_add_provisioning_status_to_objects.py +10 -10
- octavia/db/migration/alembic_migrations/versions/a1f689aecc1d_extend_pool_for_support_backend_reencryption.py +2 -2
- octavia/db/migration/alembic_migrations/versions/a7f187cd221f_add_tls_boolean_type_for_reencryption.py +2 -2
- octavia/db/migration/alembic_migrations/versions/b9c703669314_add_flavor_and_flavor_profile_table.py +18 -18
- octavia/db/migration/alembic_migrations/versions/ba35e0fb88e1_add_backup_field_to_member.py +2 -2
- octavia/db/migration/alembic_migrations/versions/bf171d0d91c3_amphora_add_cached_zone.py +2 -2
- octavia/db/migration/alembic_migrations/versions/c761c8a71579_add_availability_zone_table.py +15 -15
- octavia/db/migration/alembic_migrations/versions/d85ca7258d21_modernize_l7rule.py +13 -13
- octavia/db/migration/alembic_migrations/versions/da371b422669_allowed_cidr_for_listeners.py +7 -7
- octavia/db/migration/alembic_migrations/versions/dcf88e59aae4_add_lb_algorithm_source_ip_port.py +3 -3
- octavia/db/migration/alembic_migrations/versions/e37941b010db_add_lb_flavor_constraint.py +11 -11
- octavia/db/migration/alembic_migrations/versions/e6672bda93bf_add_ping_and_tlshello_monitor_types.py +3 -3
- octavia/db/migration/alembic_migrations/versions/e6ee84f0abf3_add_proxy_v2_pool_protocol.py +3 -3
- octavia/db/migration/alembic_migrations/versions/ebbcc72b4e5e_add_octavia_owned_vip_column_to_vip_.py +2 -2
- octavia/db/migration/alembic_migrations/versions/f21ae3f21adc_add_client_auth_option.py +6 -6
- octavia/db/migration/alembic_migrations/versions/fc5582da7d8a_create_amphora_build_rate_limit_tables.py +11 -11
- octavia/db/migration/alembic_migrations/versions/ffad172e98c1_add_certificate_revoke_list_option.py +2 -2
- octavia/db/models.py +1 -1
- octavia/db/repositories.py +3 -3
- octavia/distributor/drivers/driver_base.py +1 -1
- octavia/distributor/drivers/noop_driver/driver.py +1 -1
- octavia/hacking/checks.py +4 -4
- octavia/image/drivers/noop_driver/driver.py +1 -1
- octavia/image/image_base.py +1 -1
- octavia/network/base.py +1 -1
- octavia/network/drivers/neutron/allowed_address_pairs.py +11 -9
- octavia/network/drivers/neutron/base.py +3 -3
- octavia/network/drivers/noop_driver/driver.py +1 -1
- octavia/policies/amphora.py +6 -12
- octavia/policies/availability_zone.py +5 -10
- octavia/policies/availability_zone_profile.py +5 -15
- octavia/policies/base.py +1 -20
- octavia/policies/flavor.py +5 -10
- octavia/policies/flavor_profile.py +5 -10
- octavia/policies/healthmonitor.py +6 -12
- octavia/policies/l7policy.py +6 -12
- octavia/policies/l7rule.py +5 -10
- octavia/policies/listener.py +7 -14
- octavia/policies/loadbalancer.py +9 -18
- octavia/policies/member.py +5 -10
- octavia/policies/pool.py +6 -12
- octavia/policies/provider.py +1 -2
- octavia/policies/provider_availability_zone.py +1 -3
- octavia/policies/provider_flavor.py +1 -2
- octavia/policies/quota.py +6 -12
- octavia/statistics/stats_base.py +1 -1
- octavia/tests/common/constants.py +1 -1
- octavia/tests/common/data_model_helpers.py +10 -10
- octavia/tests/common/sample_data_models.py +1 -1
- octavia/tests/common/sample_haproxy_prometheus +17 -17
- octavia/tests/common/sample_octavia_prometheus +6 -6
- octavia/tests/common/utils.py +2 -2
- octavia/tests/functional/amphorae/backend/agent/api_server/test_keepalivedlvs.py +36 -62
- octavia/tests/functional/amphorae/backend/agent/api_server/test_server.py +135 -296
- octavia/tests/functional/api/drivers/driver_agent/test_driver_agent.py +10 -11
- octavia/tests/functional/api/v2/base.py +2 -3
- octavia/tests/functional/api/v2/test_amphora.py +6 -6
- octavia/tests/functional/api/v2/test_availability_zone_profiles.py +13 -14
- octavia/tests/functional/api/v2/test_availability_zones.py +19 -19
- octavia/tests/functional/api/v2/test_flavor_profiles.py +19 -20
- octavia/tests/functional/api/v2/test_flavors.py +25 -25
- octavia/tests/functional/api/v2/test_health_monitor.py +35 -18
- octavia/tests/functional/api/v2/test_l7policy.py +11 -11
- octavia/tests/functional/api/v2/test_l7rule.py +19 -20
- octavia/tests/functional/api/v2/test_listener.py +26 -28
- octavia/tests/functional/api/v2/test_load_balancer.py +17 -17
- octavia/tests/functional/api/v2/test_member.py +53 -21
- octavia/tests/functional/api/v2/test_pool.py +11 -11
- octavia/tests/functional/api/v2/test_provider.py +7 -7
- octavia/tests/functional/api/v2/test_quotas.py +9 -9
- octavia/tests/functional/db/test_models.py +1 -1
- octavia/tests/functional/db/test_repositories.py +2 -2
- octavia/tests/unit/amphorae/backends/agent/api_server/test_amphora_info.py +60 -61
- octavia/tests/unit/amphorae/backends/agent/api_server/test_keepalived.py +3 -3
- octavia/tests/unit/amphorae/backends/agent/api_server/test_keepalivedlvs.py +1 -19
- octavia/tests/unit/amphorae/backends/agent/api_server/test_loadbalancer.py +94 -34
- octavia/tests/unit/amphorae/backends/agent/api_server/test_osutils.py +19 -21
- octavia/tests/unit/amphorae/backends/agent/api_server/test_plug.py +9 -11
- octavia/tests/unit/amphorae/backends/agent/api_server/test_util.py +11 -25
- octavia/tests/unit/amphorae/backends/agent/test_agent_jinja_cfg.py +0 -13
- octavia/tests/unit/amphorae/backends/health_daemon/test_health_daemon.py +10 -10
- octavia/tests/unit/amphorae/backends/utils/test_haproxy_query.py +1 -1
- octavia/tests/unit/amphorae/backends/utils/test_interface.py +33 -94
- octavia/tests/unit/amphorae/backends/utils/test_interface_file.py +32 -32
- octavia/tests/unit/amphorae/backends/utils/test_network_namespace.py +4 -6
- octavia/tests/unit/amphorae/backends/utils/test_nftable_utils.py +28 -22
- octavia/tests/unit/amphorae/drivers/haproxy/test_rest_api_driver_1_0.py +77 -118
- octavia/tests/unit/amphorae/drivers/health/test_heartbeat_udp.py +8 -8
- octavia/tests/unit/amphorae/drivers/keepalived/jinja/test_jinja_cfg.py +0 -4
- octavia/tests/unit/api/common/test_pagination.py +84 -14
- octavia/tests/unit/api/v2/types/test_availability_zone_profile.py +1 -1
- octavia/tests/unit/api/v2/types/test_availability_zones.py +1 -1
- octavia/tests/unit/api/v2/types/test_flavor_profile.py +1 -1
- octavia/tests/unit/api/v2/types/test_flavors.py +1 -1
- octavia/tests/unit/api/v2/types/test_health_monitor.py +1 -1
- octavia/tests/unit/api/v2/types/test_listener.py +1 -1
- octavia/tests/unit/api/v2/types/test_load_balancer.py +1 -1
- octavia/tests/unit/api/v2/types/test_pool.py +1 -1
- octavia/tests/unit/base.py +1 -0
- octavia/tests/unit/certificates/generator/local_csr.py +1 -1
- octavia/tests/unit/certificates/generator/test_local.py +5 -5
- octavia/tests/unit/certificates/manager/test_barbican.py +2 -3
- octavia/tests/unit/certificates/manager/test_barbican_legacy.py +1 -1
- octavia/tests/unit/certificates/manager/test_local.py +13 -14
- octavia/tests/unit/cmd/test_health_checker.py +1 -1
- octavia/tests/unit/cmd/test_prometheus_proxy.py +8 -1
- octavia/tests/unit/common/jinja/haproxy/combined_listeners/test_jinja_cfg.py +171 -216
- octavia/tests/unit/common/jinja/logging/test_logging_jinja_cfg.py +1 -1
- octavia/tests/unit/common/sample_configs/sample_configs_combined.py +1 -2
- octavia/tests/unit/common/test_base_taskflow.py +1 -1
- octavia/tests/unit/common/test_decorators.py +2 -2
- octavia/tests/unit/common/test_policy.py +3 -6
- octavia/tests/unit/common/tls_utils/test_cert_parser.py +4 -1
- octavia/tests/unit/controller/worker/v2/flows/test_listener_flows.py +10 -15
- octavia/tests/unit/controller/worker/v2/flows/test_load_balancer_flows.py +4 -6
- octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py +6 -2
- octavia/tests/unit/controller/worker/v2/tasks/test_retry_tasks.py +1 -1
- octavia/tests/unit/controller/worker/v2/test_controller_worker.py +56 -1
- octavia/tests/unit/controller/worker/v2/test_taskflow_jobboard_driver.py +348 -0
- octavia/tests/unit/hacking/test_checks.py +3 -3
- octavia/tests/unit/image/drivers/noop_driver/test_driver.py +1 -1
- octavia/tests/unit/image/drivers/test_glance_driver.py +1 -1
- octavia/tests/unit/network/drivers/neutron/test_base.py +1 -1
- octavia/tests/unit/statistics/drivers/test_update_db.py +1 -1
- octavia/tests/unit/statistics/test_stats_base.py +1 -1
- octavia/volume/drivers/noop_driver/driver.py +1 -1
- octavia/volume/volume_base.py +1 -1
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/AUTHORS +6 -0
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/METADATA +3 -5
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/RECORD +302 -305
- octavia-15.0.0.dist-info/pbr.json +1 -0
- octavia/amphorae/backends/agent/api_server/templates/keepalived.sysvinit.j2 +0 -87
- octavia/amphorae/backends/agent/api_server/templates/keepalived.upstart.j2 +0 -29
- octavia/amphorae/backends/agent/api_server/templates/sysvinit.conf.j2 +0 -232
- octavia/amphorae/backends/agent/api_server/templates/upstart.conf.j2 +0 -71
- octavia-14.0.0.0rc1.dist-info/pbr.json +0 -1
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/LICENSE +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/README.rst +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/README.rst +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/diskimage-create.sh +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/image-tests.sh +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/requirements.txt +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/test-requirements.txt +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/tox.ini +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/version.txt +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/scripts/octavia-wsgi +0 -0
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/LICENSE +0 -0
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/WHEEL +0 -0
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/entry_points.txt +0 -0
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
3
2
|
# not use this file except in compliance with the License. You may obtain
|
4
3
|
# a copy of the License at
|
@@ -41,29 +40,31 @@ def get_delete_load_balancer_flow(lb):
|
|
41
40
|
return LB_FLOWS.get_delete_load_balancer_flow(lb)
|
42
41
|
|
43
42
|
|
44
|
-
def get_listeners_on_lb(db_lb):
|
43
|
+
def get_listeners_on_lb(db_lb, for_delete=False):
|
45
44
|
"""Get a list of the listeners on a load balancer.
|
46
45
|
|
47
46
|
:param db_lb: A load balancer database model object.
|
47
|
+
:param for_delete: Skip errors on tls certs loading.
|
48
48
|
:returns: A list of provider dict format listeners.
|
49
49
|
"""
|
50
50
|
listener_dicts = []
|
51
51
|
for listener in db_lb.listeners:
|
52
52
|
prov_listener = provider_utils.db_listener_to_provider_listener(
|
53
|
-
listener)
|
53
|
+
listener, for_delete)
|
54
54
|
listener_dicts.append(prov_listener.to_dict())
|
55
55
|
return listener_dicts
|
56
56
|
|
57
57
|
|
58
|
-
def get_pools_on_lb(db_lb):
|
58
|
+
def get_pools_on_lb(db_lb, for_delete=False):
|
59
59
|
"""Get a list of the pools on a load balancer.
|
60
60
|
|
61
61
|
:param db_lb: A load balancer database model object.
|
62
|
+
:param for_delete: Skip errors on tls certs loading.
|
62
63
|
:returns: A list of provider dict format pools.
|
63
64
|
"""
|
64
65
|
pool_dicts = []
|
65
66
|
for pool in db_lb.pools:
|
66
|
-
prov_pool = provider_utils.db_pool_to_provider_pool(pool)
|
67
|
+
prov_pool = provider_utils.db_pool_to_provider_pool(pool, for_delete)
|
67
68
|
pool_dicts.append(prov_pool.to_dict())
|
68
69
|
return pool_dicts
|
69
70
|
|
@@ -21,7 +21,7 @@ from octavia.controller.worker.v2.tasks import database_tasks
|
|
21
21
|
from octavia.controller.worker.v2.tasks import lifecycle_tasks
|
22
22
|
|
23
23
|
|
24
|
-
class HealthMonitorFlows
|
24
|
+
class HealthMonitorFlows:
|
25
25
|
|
26
26
|
def get_create_health_monitor_flow(self):
|
27
27
|
"""Create a flow to create a health monitor
|
@@ -21,7 +21,7 @@ from octavia.controller.worker.v2.tasks import database_tasks
|
|
21
21
|
from octavia.controller.worker.v2.tasks import lifecycle_tasks
|
22
22
|
|
23
23
|
|
24
|
-
class L7PolicyFlows
|
24
|
+
class L7PolicyFlows:
|
25
25
|
|
26
26
|
def get_create_l7policy_flow(self):
|
27
27
|
"""Create a flow to create an L7 policy
|
@@ -21,7 +21,7 @@ from octavia.controller.worker.v2.tasks import database_tasks
|
|
21
21
|
from octavia.controller.worker.v2.tasks import lifecycle_tasks
|
22
22
|
|
23
23
|
|
24
|
-
class L7RuleFlows
|
24
|
+
class L7RuleFlows:
|
25
25
|
|
26
26
|
def get_create_l7rule_flow(self):
|
27
27
|
"""Create a flow to create an L7 rule
|
@@ -23,7 +23,7 @@ from octavia.controller.worker.v2.tasks import lifecycle_tasks
|
|
23
23
|
from octavia.controller.worker.v2.tasks import network_tasks
|
24
24
|
|
25
25
|
|
26
|
-
class ListenerFlows
|
26
|
+
class ListenerFlows:
|
27
27
|
|
28
28
|
def get_create_listener_flow(self, flavor_dict=None):
|
29
29
|
"""Create a flow to create a listener
|
@@ -161,7 +161,7 @@ class ListenerFlows(object):
|
|
161
161
|
|
162
162
|
return update_listener_flow
|
163
163
|
|
164
|
-
def _get_firewall_rules_subflow(self, flavor_dict):
|
164
|
+
def _get_firewall_rules_subflow(self, flavor_dict, timeout_dict=None):
|
165
165
|
"""Creates a subflow that updates the firewall rules in the amphorae.
|
166
166
|
|
167
167
|
:returns: The subflow for updating firewall rules in the amphorae.
|
@@ -174,6 +174,14 @@ class ListenerFlows(object):
|
|
174
174
|
requires=constants.LOADBALANCER_ID,
|
175
175
|
provides=constants.AMPHORAE))
|
176
176
|
|
177
|
+
fw_rules_subflow.add(
|
178
|
+
amphora_driver_tasks.AmphoraeGetConnectivityStatus(
|
179
|
+
name=constants.AMPHORAE_GET_CONNECTIVITY_STATUS,
|
180
|
+
requires=constants.AMPHORAE,
|
181
|
+
inject={constants.TIMEOUT_DICT: timeout_dict,
|
182
|
+
constants.NEW_AMPHORA_ID: constants.NIL_UUID},
|
183
|
+
provides=constants.AMPHORAE_STATUS))
|
184
|
+
|
177
185
|
fw_rules_subflow.add(network_tasks.GetAmphoraeNetworkConfigs(
|
178
186
|
name=sf_name + '-' + constants.GET_AMP_NETWORK_CONFIG,
|
179
187
|
requires=constants.LOADBALANCER_ID,
|
@@ -192,8 +200,10 @@ class ListenerFlows(object):
|
|
192
200
|
|
193
201
|
amp_0_subflow.add(amphora_driver_tasks.SetAmphoraFirewallRules(
|
194
202
|
name=sf_name + '-0-' + constants.SET_AMPHORA_FIREWALL_RULES,
|
195
|
-
requires=(constants.AMPHORAE, constants.AMPHORA_FIREWALL_RULES
|
196
|
-
|
203
|
+
requires=(constants.AMPHORAE, constants.AMPHORA_FIREWALL_RULES,
|
204
|
+
constants.AMPHORAE_STATUS),
|
205
|
+
inject={constants.AMPHORA_INDEX: 0,
|
206
|
+
constants.TIMEOUT_DICT: timeout_dict}))
|
197
207
|
|
198
208
|
update_amps_subflow.add(amp_0_subflow)
|
199
209
|
|
@@ -212,8 +222,10 @@ class ListenerFlows(object):
|
|
212
222
|
amp_1_subflow.add(amphora_driver_tasks.SetAmphoraFirewallRules(
|
213
223
|
name=sf_name + '-1-' + constants.SET_AMPHORA_FIREWALL_RULES,
|
214
224
|
requires=(constants.AMPHORAE,
|
215
|
-
constants.AMPHORA_FIREWALL_RULES
|
216
|
-
|
225
|
+
constants.AMPHORA_FIREWALL_RULES,
|
226
|
+
constants.AMPHORAE_STATUS),
|
227
|
+
inject={constants.AMPHORA_INDEX: 1,
|
228
|
+
constants.TIMEOUT_DICT: timeout_dict}))
|
217
229
|
|
218
230
|
update_amps_subflow.add(amp_1_subflow)
|
219
231
|
|
@@ -23,7 +23,7 @@ from octavia.controller.worker.v2.tasks import lifecycle_tasks
|
|
23
23
|
from octavia.controller.worker.v2.tasks import network_tasks
|
24
24
|
|
25
25
|
|
26
|
-
class MemberFlows
|
26
|
+
class MemberFlows:
|
27
27
|
|
28
28
|
def get_create_member_flow(self):
|
29
29
|
"""Create a flow to create a member
|
@@ -148,49 +148,42 @@ class MemberFlows(object):
|
|
148
148
|
unordered_members_flow.add(
|
149
149
|
lifecycle_tasks.MembersToErrorOnRevertTask(
|
150
150
|
inject={constants.MEMBERS: old_members},
|
151
|
-
name='{
|
152
|
-
flow=constants.MEMBER_TO_ERROR_ON_REVERT_FLOW)))
|
151
|
+
name=f'{constants.MEMBER_TO_ERROR_ON_REVERT_FLOW}-deleted'))
|
153
152
|
for m in old_members:
|
154
153
|
unordered_members_flow.add(database_tasks.DeleteMemberInDB(
|
155
154
|
inject={constants.MEMBER: m},
|
156
|
-
name='{
|
157
|
-
|
158
|
-
flow=constants.DELETE_MEMBER_INDB)))
|
155
|
+
name=f'{constants.DELETE_MEMBER_INDB}-'
|
156
|
+
f'{m[constants.MEMBER_ID]}'))
|
159
157
|
unordered_members_flow.add(database_tasks.DecrementMemberQuota(
|
160
158
|
requires=constants.PROJECT_ID,
|
161
|
-
name='{
|
162
|
-
|
163
|
-
flow=constants.DECREMENT_MEMBER_QUOTA_FLOW)))
|
159
|
+
name=f'{constants.DECREMENT_MEMBER_QUOTA_FLOW}-'
|
160
|
+
f'{m[constants.MEMBER_ID]}'))
|
164
161
|
|
165
162
|
# Create new members
|
166
163
|
unordered_members_flow.add(
|
167
164
|
lifecycle_tasks.MembersToErrorOnRevertTask(
|
168
165
|
inject={constants.MEMBERS: new_members},
|
169
|
-
name='{
|
170
|
-
flow=constants.MEMBER_TO_ERROR_ON_REVERT_FLOW)))
|
166
|
+
name=f'{constants.MEMBER_TO_ERROR_ON_REVERT_FLOW}-created'))
|
171
167
|
for m in new_members:
|
172
168
|
unordered_members_active_flow.add(
|
173
169
|
database_tasks.MarkMemberActiveInDB(
|
174
170
|
inject={constants.MEMBER: m},
|
175
|
-
name='{
|
176
|
-
|
177
|
-
flow=constants.MARK_MEMBER_ACTIVE_INDB)))
|
171
|
+
name=f'{constants.MARK_MEMBER_ACTIVE_INDB}-'
|
172
|
+
f'{m[constants.MEMBER_ID]}'))
|
178
173
|
|
179
174
|
# Update existing members
|
180
175
|
unordered_members_flow.add(
|
181
176
|
lifecycle_tasks.MembersToErrorOnRevertTask(
|
182
177
|
# updated_members is a list of (obj, dict), only pass `obj`
|
183
178
|
inject={constants.MEMBERS: [m[0] for m in updated_members]},
|
184
|
-
name='{
|
185
|
-
flow=constants.MEMBER_TO_ERROR_ON_REVERT_FLOW)))
|
179
|
+
name=f'{constants.MEMBER_TO_ERROR_ON_REVERT_FLOW}-updated'))
|
186
180
|
for m, um in updated_members:
|
187
181
|
um.pop(constants.ID, None)
|
188
182
|
unordered_members_active_flow.add(
|
189
183
|
database_tasks.MarkMemberActiveInDB(
|
190
184
|
inject={constants.MEMBER: m},
|
191
|
-
name='{
|
192
|
-
|
193
|
-
flow=constants.MARK_MEMBER_ACTIVE_INDB)))
|
185
|
+
name=f'{constants.MARK_MEMBER_ACTIVE_INDB}-'
|
186
|
+
f'{m[constants.MEMBER_ID]}'))
|
194
187
|
|
195
188
|
batch_update_members_flow.add(unordered_members_flow)
|
196
189
|
|
@@ -15,6 +15,7 @@ import contextlib
|
|
15
15
|
|
16
16
|
from oslo_config import cfg
|
17
17
|
from oslo_log import log
|
18
|
+
from oslo_utils import strutils
|
18
19
|
from taskflow.jobs import backends as job_backends
|
19
20
|
from taskflow.persistence import backends as persistence_backends
|
20
21
|
|
@@ -22,7 +23,7 @@ LOG = log.getLogger(__name__)
|
|
22
23
|
CONF = cfg.CONF
|
23
24
|
|
24
25
|
|
25
|
-
class JobboardTaskFlowDriver(
|
26
|
+
class JobboardTaskFlowDriver(metaclass=abc.ABCMeta):
|
26
27
|
|
27
28
|
@abc.abstractmethod
|
28
29
|
def job_board(self, persistence):
|
@@ -33,7 +34,7 @@ class JobboardTaskFlowDriver(object, metaclass=abc.ABCMeta):
|
|
33
34
|
"""
|
34
35
|
|
35
36
|
|
36
|
-
class MysqlPersistenceDriver
|
37
|
+
class MysqlPersistenceDriver:
|
37
38
|
|
38
39
|
def __init__(self):
|
39
40
|
self.persistence_conf = {
|
@@ -68,7 +69,7 @@ class ZookeeperTaskFlowDriver(JobboardTaskFlowDriver):
|
|
68
69
|
|
69
70
|
def job_board(self, persistence):
|
70
71
|
job_backends_hosts = ','.join(
|
71
|
-
['
|
72
|
+
[f'{host}:{CONF.task_flow.jobboard_backend_port}'
|
72
73
|
for host in CONF.task_flow.jobboard_backend_hosts])
|
73
74
|
jobboard_backend_conf = {
|
74
75
|
'board': 'zookeeper',
|
@@ -113,6 +114,19 @@ class RedisTaskFlowDriver(JobboardTaskFlowDriver):
|
|
113
114
|
CONF.task_flow.jobboard_backend_password)
|
114
115
|
jobboard_backend_conf.update(
|
115
116
|
CONF.task_flow.jobboard_redis_backend_ssl_options)
|
117
|
+
|
118
|
+
sentinel_kwargs = CONF.task_flow.jobboard_redis_sentinel_ssl_options
|
119
|
+
if 'ssl' in sentinel_kwargs:
|
120
|
+
sentinel_kwargs['ssl'] = strutils.bool_from_string(
|
121
|
+
sentinel_kwargs['ssl'])
|
122
|
+
if CONF.task_flow.jobboard_redis_sentinel_username is not None:
|
123
|
+
sentinel_kwargs['username'] = (
|
124
|
+
CONF.task_flow.jobboard_redis_sentinel_username)
|
125
|
+
if CONF.task_flow.jobboard_redis_sentinel_password is not None:
|
126
|
+
sentinel_kwargs['password'] = (
|
127
|
+
CONF.task_flow.jobboard_redis_sentinel_password)
|
128
|
+
jobboard_backend_conf['sentinel_kwargs'] = sentinel_kwargs
|
129
|
+
|
116
130
|
return job_backends.backend(
|
117
131
|
CONF.task_flow.jobboard_backend_namespace,
|
118
132
|
jobboard_backend_conf,
|
@@ -187,7 +187,7 @@ class CertComputeCreate(ComputeCreate):
|
|
187
187
|
|
188
188
|
# load client certificate
|
189
189
|
with open(CONF.controller_worker.client_ca,
|
190
|
-
|
190
|
+
encoding='utf-8') as client_ca:
|
191
191
|
ca = client_ca.read()
|
192
192
|
|
193
193
|
key = utils.get_compatible_server_certs_key_passphrase()
|
@@ -342,8 +342,6 @@ class NovaServerGroupDelete(BaseComputeTask):
|
|
342
342
|
def execute(self, server_group_id):
|
343
343
|
if server_group_id is not None:
|
344
344
|
self.compute.delete_server_group(server_group_id)
|
345
|
-
else:
|
346
|
-
return
|
347
345
|
|
348
346
|
|
349
347
|
class AttachPort(BaseComputeTask):
|
@@ -984,10 +984,9 @@ class CreateVIPBasePort(BaseNetworkTask):
|
|
984
984
|
return
|
985
985
|
try:
|
986
986
|
port_name = constants.AMP_BASE_PORT_PREFIX + amphora_id
|
987
|
-
|
988
|
-
|
989
|
-
|
990
|
-
'revert.', port_name, port.id, amphora_id)
|
987
|
+
self.network_driver.delete_port(result[constants.ID])
|
988
|
+
LOG.info('Deleted port %s with ID %s for amphora %s due to a '
|
989
|
+
'revert.', port_name, result[constants.ID], amphora_id)
|
991
990
|
except Exception as e:
|
992
991
|
LOG.error('Failed to delete port %s. Resources may still be in '
|
993
992
|
'use for a port intended for amphora %s due to error '
|
octavia/db/base_models.py
CHANGED
@@ -12,6 +12,8 @@
|
|
12
12
|
# License for the specific language governing permissions and limitations
|
13
13
|
# under the License.
|
14
14
|
|
15
|
+
from wsme import types as wtypes
|
16
|
+
|
15
17
|
from oslo_db.sqlalchemy import models
|
16
18
|
from oslo_utils import strutils
|
17
19
|
from oslo_utils import uuidutils
|
@@ -19,6 +21,8 @@ import sqlalchemy as sa
|
|
19
21
|
from sqlalchemy.orm import collections
|
20
22
|
from sqlalchemy.orm import declarative_base
|
21
23
|
|
24
|
+
from octavia.common import constants
|
25
|
+
|
22
26
|
|
23
27
|
class OctaviaBase(models.ModelBase):
|
24
28
|
|
@@ -112,12 +116,20 @@ class OctaviaBase(models.ModelBase):
|
|
112
116
|
|
113
117
|
@staticmethod
|
114
118
|
def apply_filter(query, model, filters):
|
119
|
+
# Convert boolean filters to proper type
|
120
|
+
for key in filters:
|
121
|
+
attr = getattr(model.__v2_wsme__, key, None)
|
122
|
+
if isinstance(attr, wtypes.wsattr) and attr.datatype == bool:
|
123
|
+
filters[key] = strutils.bool_from_string(filters[key])
|
124
|
+
# Special case for 'enabled', it's 'admin_state_up' in the WSME class
|
125
|
+
# definition and the attribute has already been renamed to 'enabled' by
|
126
|
+
# a previous pagination filter
|
127
|
+
if constants.ENABLED in filters:
|
128
|
+
filters[constants.ENABLED] = strutils.bool_from_string(
|
129
|
+
filters[constants.ENABLED])
|
130
|
+
|
115
131
|
translated_filters = {}
|
116
132
|
child_map = {}
|
117
|
-
# Convert enabled to proper type
|
118
|
-
if 'enabled' in filters:
|
119
|
-
filters['enabled'] = strutils.bool_from_string(
|
120
|
-
filters['enabled'])
|
121
133
|
for attr, name_map in model.__v2_wsme__._child_map.items():
|
122
134
|
for k, v in name_map.items():
|
123
135
|
if attr in filters and k in filters[attr]:
|
@@ -143,29 +155,29 @@ class OctaviaBase(models.ModelBase):
|
|
143
155
|
return f"{self.__class__.__name__}({params})"
|
144
156
|
|
145
157
|
|
146
|
-
class LookupTableMixin
|
158
|
+
class LookupTableMixin:
|
147
159
|
"""Mixin to add to classes that are lookup tables."""
|
148
160
|
name = sa.Column(sa.String(255), primary_key=True, nullable=False)
|
149
161
|
description = sa.Column(sa.String(255), nullable=True)
|
150
162
|
|
151
163
|
|
152
|
-
class IdMixin
|
164
|
+
class IdMixin:
|
153
165
|
"""Id mixin, add to subclasses that have an id."""
|
154
166
|
id = sa.Column(sa.String(36), primary_key=True,
|
155
167
|
default=uuidutils.generate_uuid)
|
156
168
|
|
157
169
|
|
158
|
-
class ProjectMixin
|
170
|
+
class ProjectMixin:
|
159
171
|
"""Tenant mixin, add to subclasses that have a project."""
|
160
172
|
project_id = sa.Column(sa.String(36))
|
161
173
|
|
162
174
|
|
163
|
-
class NameMixin
|
175
|
+
class NameMixin:
|
164
176
|
"""Name mixin to add to classes which need a name."""
|
165
177
|
name = sa.Column(sa.String(255), nullable=True)
|
166
178
|
|
167
179
|
|
168
|
-
class TagMixin
|
180
|
+
class TagMixin:
|
169
181
|
"""Tags mixin to add to classes which need tags.
|
170
182
|
|
171
183
|
The class must realize the specified db relationship as well.
|
@@ -33,33 +33,33 @@ down_revision = 'fac584114642'
|
|
33
33
|
def upgrade():
|
34
34
|
# Add timing data
|
35
35
|
op.add_column(
|
36
|
-
|
37
|
-
sa.Column(
|
36
|
+
'l7policy',
|
37
|
+
sa.Column('created_at', sa.DateTime(), nullable=True)
|
38
38
|
)
|
39
39
|
op.add_column(
|
40
|
-
|
41
|
-
sa.Column(
|
40
|
+
'l7policy',
|
41
|
+
sa.Column('updated_at', sa.DateTime(), nullable=True)
|
42
42
|
)
|
43
43
|
|
44
44
|
# Add project_id
|
45
45
|
op.add_column(
|
46
|
-
|
47
|
-
sa.Column(
|
46
|
+
'l7policy',
|
47
|
+
sa.Column('project_id', sa.String(36), nullable=True)
|
48
48
|
)
|
49
49
|
|
50
50
|
# Add new operating_status column, setting existing rows to ONLINE
|
51
51
|
op.add_column(
|
52
|
-
|
53
|
-
sa.Column(
|
52
|
+
'l7policy',
|
53
|
+
sa.Column('operating_status', sa.String(16),
|
54
54
|
nullable=False, server_default=constants.ONLINE)
|
55
55
|
)
|
56
56
|
# Remove the default, as we don't actually want one
|
57
|
-
op.alter_column(
|
57
|
+
op.alter_column('l7policy', 'operating_status',
|
58
58
|
existing_type=sa.String(16), server_default=None)
|
59
59
|
# Add the foreign key for operating_status_name
|
60
60
|
op.create_foreign_key(
|
61
|
-
|
62
|
-
|
61
|
+
'fk_l7policy_operating_status_name', 'l7policy',
|
62
|
+
'operating_status', ['operating_status'], ['name']
|
63
63
|
)
|
64
64
|
|
65
65
|
op.drop_constraint('fk_health_monitor_provisioning_status_name',
|
@@ -83,59 +83,59 @@ def upgrade():
|
|
83
83
|
type_='foreignkey')
|
84
84
|
|
85
85
|
# provisioning_status was mistakenly added as nullable, the fix is similar
|
86
|
-
op.alter_column(
|
86
|
+
op.alter_column('l7policy', 'provisioning_status', nullable=False,
|
87
87
|
existing_type=sa.String(16),
|
88
88
|
server_default=constants.ACTIVE)
|
89
|
-
op.alter_column(
|
89
|
+
op.alter_column('l7policy', 'provisioning_status',
|
90
90
|
existing_type=sa.String(16), server_default=None)
|
91
91
|
|
92
92
|
# Fix the rest of these that were also mistakenly set as nullable in:
|
93
93
|
# 9b5473976d6d_add_provisioning_status_to_objects.py
|
94
|
-
op.alter_column(
|
94
|
+
op.alter_column('health_monitor', 'provisioning_status', nullable=False,
|
95
95
|
existing_type=sa.String(16),
|
96
96
|
server_default=constants.ACTIVE)
|
97
|
-
op.alter_column(
|
97
|
+
op.alter_column('health_monitor', 'provisioning_status',
|
98
98
|
existing_type=sa.String(16), server_default=None)
|
99
99
|
|
100
|
-
op.alter_column(
|
100
|
+
op.alter_column('member', 'provisioning_status', nullable=False,
|
101
101
|
existing_type=sa.String(16),
|
102
102
|
server_default=constants.ACTIVE)
|
103
|
-
op.alter_column(
|
103
|
+
op.alter_column('member', 'provisioning_status',
|
104
104
|
existing_type=sa.String(16), server_default=None)
|
105
105
|
|
106
|
-
op.alter_column(
|
106
|
+
op.alter_column('pool', 'provisioning_status', nullable=False,
|
107
107
|
existing_type=sa.String(16),
|
108
108
|
server_default=constants.ACTIVE)
|
109
|
-
op.alter_column(
|
109
|
+
op.alter_column('pool', 'provisioning_status',
|
110
110
|
existing_type=sa.String(16), server_default=None)
|
111
111
|
|
112
|
-
op.alter_column(
|
112
|
+
op.alter_column('l7rule', 'provisioning_status', nullable=False,
|
113
113
|
existing_type=sa.String(16),
|
114
114
|
server_default=constants.ACTIVE)
|
115
|
-
op.alter_column(
|
115
|
+
op.alter_column('l7rule', 'provisioning_status',
|
116
116
|
existing_type=sa.String(16), server_default=None)
|
117
117
|
|
118
118
|
op.create_foreign_key(
|
119
|
-
|
120
|
-
|
119
|
+
'fk_health_monitor_provisioning_status_name', 'health_monitor',
|
120
|
+
'provisioning_status', ['provisioning_status'], ['name']
|
121
121
|
)
|
122
122
|
|
123
123
|
op.create_foreign_key(
|
124
|
-
|
125
|
-
|
124
|
+
'fk_l7policy_provisioning_status_name', 'l7policy',
|
125
|
+
'provisioning_status', ['provisioning_status'], ['name']
|
126
126
|
)
|
127
127
|
|
128
128
|
op.create_foreign_key(
|
129
|
-
|
130
|
-
|
129
|
+
'fk_l7rule_provisioning_status_name', 'l7rule',
|
130
|
+
'provisioning_status', ['provisioning_status'], ['name']
|
131
131
|
)
|
132
132
|
|
133
133
|
op.create_foreign_key(
|
134
|
-
|
135
|
-
|
134
|
+
'fk_member_provisioning_status_name', 'member',
|
135
|
+
'provisioning_status', ['provisioning_status'], ['name']
|
136
136
|
)
|
137
137
|
|
138
138
|
op.create_foreign_key(
|
139
|
-
|
140
|
-
|
139
|
+
'fk_pool_provisioning_status_name', 'pool',
|
140
|
+
'provisioning_status', ['provisioning_status'], ['name']
|
141
141
|
)
|
@@ -30,8 +30,8 @@ down_revision = '0fd2c131923f'
|
|
30
30
|
|
31
31
|
def upgrade():
|
32
32
|
op.add_column(
|
33
|
-
|
34
|
-
sa.Column(
|
33
|
+
'load_balancer',
|
34
|
+
sa.Column('provider', sa.String(64), nullable=True)
|
35
35
|
)
|
36
36
|
op.execute("UPDATE load_balancer set provider='amphora' where provider "
|
37
37
|
"is null")
|
@@ -30,10 +30,10 @@ down_revision = '0aee2b450512'
|
|
30
30
|
|
31
31
|
def upgrade():
|
32
32
|
op.add_column(
|
33
|
-
|
34
|
-
sa.Column(
|
33
|
+
'amphora',
|
34
|
+
sa.Column('created_at', sa.DateTime(), nullable=True)
|
35
35
|
)
|
36
36
|
op.add_column(
|
37
|
-
|
38
|
-
sa.Column(
|
37
|
+
'amphora',
|
38
|
+
sa.Column('updated_at', sa.DateTime(), nullable=True)
|
39
39
|
)
|
@@ -29,15 +29,15 @@ down_revision = '4c094013699a'
|
|
29
29
|
|
30
30
|
|
31
31
|
def upgrade():
|
32
|
-
op.alter_column(
|
32
|
+
op.alter_column('provisioning_status', 'name',
|
33
33
|
existing_type=sa.String(255))
|
34
|
-
op.alter_column(
|
34
|
+
op.alter_column('operating_status', 'name',
|
35
35
|
existing_type=sa.String(255))
|
36
|
-
op.alter_column(
|
36
|
+
op.alter_column('health_monitor_type', 'name',
|
37
37
|
existing_type=sa.String(255))
|
38
|
-
op.alter_column(
|
38
|
+
op.alter_column('protocol', 'name',
|
39
39
|
existing_type=sa.String(255))
|
40
|
-
op.alter_column(
|
40
|
+
op.alter_column('algorithm', 'name',
|
41
41
|
existing_type=sa.String(255))
|
42
|
-
op.alter_column(
|
42
|
+
op.alter_column('session_persistence_type', 'name',
|
43
43
|
existing_type=sa.String(255))
|
@@ -29,10 +29,10 @@ down_revision = '3a1e1cdb7b27'
|
|
29
29
|
|
30
30
|
|
31
31
|
def upgrade():
|
32
|
-
with op.batch_alter_table(
|
33
|
-
batch_op.alter_column(
|
32
|
+
with op.batch_alter_table('vip') as batch_op:
|
33
|
+
batch_op.alter_column('subnet_id', new_column_name='network_id',
|
34
34
|
existing_type=sa.String(36))
|
35
|
-
batch_op.alter_column(
|
35
|
+
batch_op.alter_column('net_port_id', new_column_name='port_id',
|
36
36
|
existing_type=sa.String(36))
|
37
|
-
batch_op.drop_column(
|
38
|
-
batch_op.drop_column(
|
37
|
+
batch_op.drop_column('floating_ip_id')
|
38
|
+
batch_op.drop_column('floating_ip_network_id')
|
@@ -36,9 +36,9 @@ new_fields = ['SSL_CONN_HAS_CERT', 'SSL_VERIFY_RESULT', 'SSL_DN_FIELD']
|
|
36
36
|
def upgrade():
|
37
37
|
|
38
38
|
insert_table = sql.table(
|
39
|
-
|
40
|
-
sql.column(
|
41
|
-
sql.column(
|
39
|
+
'l7rule_type',
|
40
|
+
sql.column('name', sa.String),
|
41
|
+
sql.column('description', sa.String)
|
42
42
|
)
|
43
43
|
cows = [{'name': field} for field in new_fields]
|
44
44
|
op.bulk_insert(insert_table, cows)
|