octavia 14.0.0.0rc1__py3-none-any.whl → 15.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/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.0rc1.dist-info}/AUTHORS +6 -0
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.0rc1.dist-info}/METADATA +3 -5
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.0rc1.dist-info}/RECORD +302 -305
- octavia-15.0.0.0rc1.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.0rc1.data}/data/share/octavia/LICENSE +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.0rc1.data}/data/share/octavia/README.rst +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/README.rst +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/diskimage-create.sh +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/image-tests.sh +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/requirements.txt +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/test-requirements.txt +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/tox.ini +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/version.txt +0 -0
- {octavia-14.0.0.0rc1.data → octavia-15.0.0.0rc1.data}/scripts/octavia-wsgi +0 -0
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.0rc1.dist-info}/LICENSE +0 -0
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.0rc1.dist-info}/WHEEL +0 -0
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.0rc1.dist-info}/entry_points.txt +0 -0
- {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.0rc1.dist-info}/top_level.txt +0 -0
octavia/db/migration/alembic_migrations/versions/c761c8a71579_add_availability_zone_table.py
CHANGED
@@ -32,12 +32,12 @@ down_revision = 'e37941b010db'
|
|
32
32
|
|
33
33
|
def upgrade():
|
34
34
|
azp_table = op.create_table(
|
35
|
-
|
36
|
-
sa.Column(
|
37
|
-
sa.Column(
|
38
|
-
sa.Column(
|
39
|
-
sa.Column(
|
40
|
-
sa.PrimaryKeyConstraint(
|
35
|
+
'availability_zone_profile',
|
36
|
+
sa.Column('id', sa.String(36), nullable=False),
|
37
|
+
sa.Column('name', sa.String(255), nullable=False),
|
38
|
+
sa.Column('provider_name', sa.String(255), nullable=False),
|
39
|
+
sa.Column('availability_zone_data', sa.String(4096), nullable=False),
|
40
|
+
sa.PrimaryKeyConstraint('id'))
|
41
41
|
|
42
42
|
op.bulk_insert(
|
43
43
|
azp_table,
|
@@ -48,16 +48,16 @@ def upgrade():
|
|
48
48
|
)
|
49
49
|
|
50
50
|
az_table = op.create_table(
|
51
|
-
|
52
|
-
sa.Column(
|
53
|
-
sa.Column(
|
54
|
-
sa.Column(
|
55
|
-
sa.Column(
|
51
|
+
'availability_zone',
|
52
|
+
sa.Column('name', sa.String(255), nullable=False),
|
53
|
+
sa.Column('description', sa.String(255), nullable=True),
|
54
|
+
sa.Column('enabled', sa.Boolean(), nullable=False),
|
55
|
+
sa.Column('availability_zone_profile_id', sa.String(36),
|
56
56
|
nullable=False),
|
57
|
-
sa.ForeignKeyConstraint([
|
58
|
-
[
|
59
|
-
name=
|
60
|
-
sa.PrimaryKeyConstraint(
|
57
|
+
sa.ForeignKeyConstraint(['availability_zone_profile_id'],
|
58
|
+
['availability_zone_profile.id'],
|
59
|
+
name='fk_az_az_profile_id'),
|
60
|
+
sa.PrimaryKeyConstraint('name'),)
|
61
61
|
|
62
62
|
op.bulk_insert(
|
63
63
|
az_table,
|
@@ -33,39 +33,39 @@ down_revision = '034b2dc2f3e0'
|
|
33
33
|
def upgrade():
|
34
34
|
# Add timing data
|
35
35
|
op.add_column(
|
36
|
-
|
37
|
-
sa.Column(
|
36
|
+
'l7rule',
|
37
|
+
sa.Column('created_at', sa.DateTime(), nullable=True)
|
38
38
|
)
|
39
39
|
op.add_column(
|
40
|
-
|
41
|
-
sa.Column(
|
40
|
+
'l7rule',
|
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
|
+
'l7rule',
|
47
|
+
sa.Column('project_id', sa.String(36), nullable=True)
|
48
48
|
)
|
49
49
|
|
50
50
|
# Add enabled
|
51
51
|
op.add_column(
|
52
|
-
|
53
|
-
sa.Column(
|
52
|
+
'l7rule',
|
53
|
+
sa.Column('enabled', sa.Boolean(),
|
54
54
|
server_default=sa.sql.expression.true(),
|
55
55
|
nullable=False)
|
56
56
|
)
|
57
57
|
|
58
58
|
# Add new operating_status column, setting existing rows to ONLINE
|
59
59
|
op.add_column(
|
60
|
-
|
61
|
-
sa.Column(
|
60
|
+
'l7rule',
|
61
|
+
sa.Column('operating_status', sa.String(16),
|
62
62
|
nullable=False, server_default=constants.ONLINE)
|
63
63
|
)
|
64
64
|
# Remove the default, as we don't actually want one
|
65
|
-
op.alter_column(
|
65
|
+
op.alter_column('l7rule', 'operating_status',
|
66
66
|
existing_type=sa.String(16), server_default=None)
|
67
67
|
# Add the foreign key for operating_status_name
|
68
68
|
op.create_foreign_key(
|
69
|
-
|
70
|
-
|
69
|
+
'fk_l7rule_operating_status_name', 'l7rule',
|
70
|
+
'operating_status', ['operating_status'], ['name']
|
71
71
|
)
|
@@ -29,12 +29,12 @@ down_revision = 'a5762a99609a'
|
|
29
29
|
|
30
30
|
def upgrade():
|
31
31
|
op.create_table(
|
32
|
-
|
33
|
-
sa.Column(
|
34
|
-
sa.Column(
|
32
|
+
'listener_cidr',
|
33
|
+
sa.Column('listener_id', sa.String(36), nullable=False),
|
34
|
+
sa.Column('cidr', sa.String(64), nullable=False),
|
35
35
|
|
36
|
-
sa.ForeignKeyConstraint([
|
37
|
-
[
|
38
|
-
name=
|
39
|
-
sa.PrimaryKeyConstraint(
|
36
|
+
sa.ForeignKeyConstraint(['listener_id'],
|
37
|
+
['listener.id'],
|
38
|
+
name='fk_listener_cidr_listener_id'),
|
39
|
+
sa.PrimaryKeyConstraint('listener_id', 'cidr')
|
40
40
|
)
|
octavia/db/migration/alembic_migrations/versions/dcf88e59aae4_add_lb_algorithm_source_ip_port.py
CHANGED
@@ -43,7 +43,7 @@ def migrate_pools():
|
|
43
43
|
|
44
44
|
j = pool_table.join(lb_table,
|
45
45
|
pool_table.c.load_balancer_id == lb_table.c.id)
|
46
|
-
stmt = sa.select(
|
46
|
+
stmt = sa.select(pool_table.c.id).select_from(j).where(
|
47
47
|
lb_table.c.provider == 'ovn')
|
48
48
|
result = conn.execute(stmt)
|
49
49
|
|
@@ -55,8 +55,8 @@ def migrate_pools():
|
|
55
55
|
|
56
56
|
def upgrade():
|
57
57
|
insert_table = sa.table(
|
58
|
-
|
59
|
-
sa.column(
|
58
|
+
'algorithm',
|
59
|
+
sa.column('name', sa.String(255)),
|
60
60
|
)
|
61
61
|
op.bulk_insert(
|
62
62
|
insert_table,
|
@@ -32,11 +32,11 @@ down_revision = 'dcf88e59aae4'
|
|
32
32
|
|
33
33
|
def upgrade():
|
34
34
|
insert_table = sql.table(
|
35
|
-
|
36
|
-
sa.Column(
|
37
|
-
sa.Column(
|
38
|
-
sa.Column(
|
39
|
-
sa.Column(
|
35
|
+
'flavor_profile',
|
36
|
+
sa.Column('id', sa.String(36), nullable=False),
|
37
|
+
sa.Column('name', sa.String(255), nullable=False),
|
38
|
+
sa.Column('provider_name', sa.String(255), nullable=False),
|
39
|
+
sa.Column('flavor_data', sa.String(4096), nullable=False),
|
40
40
|
)
|
41
41
|
|
42
42
|
op.bulk_insert(
|
@@ -48,12 +48,12 @@ def upgrade():
|
|
48
48
|
)
|
49
49
|
|
50
50
|
insert_table = sql.table(
|
51
|
-
|
52
|
-
sa.Column(
|
53
|
-
sa.Column(
|
54
|
-
sa.Column(
|
55
|
-
sa.Column(
|
56
|
-
sa.Column(
|
51
|
+
'flavor',
|
52
|
+
sa.Column('id', sa.String(36), nullable=False),
|
53
|
+
sa.Column('name', sa.String(255), nullable=False),
|
54
|
+
sa.Column('description', sa.String(255), nullable=True),
|
55
|
+
sa.Column('enabled', sa.Boolean(), nullable=False),
|
56
|
+
sa.Column('flavor_profile_id', sa.String(36), nullable=False),
|
57
57
|
)
|
58
58
|
|
59
59
|
op.bulk_insert(
|
octavia/db/migration/alembic_migrations/versions/e6672bda93bf_add_ping_and_tlshello_monitor_types.py
CHANGED
@@ -31,9 +31,9 @@ down_revision = '27e54d00c3cd'
|
|
31
31
|
|
32
32
|
def upgrade():
|
33
33
|
insert_table = sql.table(
|
34
|
-
|
35
|
-
sql.column(
|
36
|
-
sql.column(
|
34
|
+
'health_monitor_type',
|
35
|
+
sql.column('name', sa.String),
|
36
|
+
sql.column('description', sa.String)
|
37
37
|
)
|
38
38
|
|
39
39
|
op.bulk_insert(
|
@@ -30,9 +30,9 @@ down_revision = '2ab994dd3ec2'
|
|
30
30
|
|
31
31
|
def upgrade():
|
32
32
|
insert_table = sql.table(
|
33
|
-
|
34
|
-
sql.column(
|
35
|
-
sql.column(
|
33
|
+
'protocol',
|
34
|
+
sql.column('name', sa.String),
|
35
|
+
sql.column('description', sa.String)
|
36
36
|
)
|
37
37
|
|
38
38
|
op.bulk_insert(
|
@@ -34,14 +34,14 @@ down_revision = '2ad093f6353f'
|
|
34
34
|
|
35
35
|
def upgrade():
|
36
36
|
op.create_table(
|
37
|
-
|
38
|
-
sa.Column(
|
37
|
+
'client_authentication_mode',
|
38
|
+
sa.Column('name', sa.String(10), primary_key=True),
|
39
39
|
)
|
40
40
|
|
41
41
|
# Create temporary table for table data seeding
|
42
42
|
insert_table = sa.table(
|
43
|
-
|
44
|
-
sa.column(
|
43
|
+
'client_authentication_mode',
|
44
|
+
sa.column('name', sa.String),
|
45
45
|
)
|
46
46
|
|
47
47
|
op.bulk_insert(
|
@@ -54,8 +54,8 @@ def upgrade():
|
|
54
54
|
)
|
55
55
|
|
56
56
|
op.add_column(
|
57
|
-
|
58
|
-
sa.Column(
|
57
|
+
'listener',
|
58
|
+
sa.Column('client_authentication', sa.String(10),
|
59
59
|
sa.ForeignKey('client_authentication_mode.name'),
|
60
60
|
server_default=constants.CLIENT_AUTH_NONE, nullable=False)
|
61
61
|
)
|
@@ -31,16 +31,16 @@ down_revision = '443fe6676637'
|
|
31
31
|
|
32
32
|
def upgrade():
|
33
33
|
op.create_table(
|
34
|
-
|
35
|
-
sa.Column(
|
36
|
-
sa.Column(
|
34
|
+
'amphora_build_slots',
|
35
|
+
sa.Column('id', sa.Integer(), primary_key=True),
|
36
|
+
sa.Column('slots_used', sa.Integer(), default=0)
|
37
37
|
)
|
38
38
|
|
39
39
|
# Create temporary table for table data seeding
|
40
40
|
insert_table = sql.table(
|
41
|
-
|
42
|
-
sql.column(
|
43
|
-
sql.column(
|
41
|
+
'amphora_build_slots',
|
42
|
+
sql.column('id', sa.Integer),
|
43
|
+
sql.column('slots_used', sa.Integer)
|
44
44
|
)
|
45
45
|
|
46
46
|
op.bulk_insert(
|
@@ -51,12 +51,12 @@ def upgrade():
|
|
51
51
|
)
|
52
52
|
|
53
53
|
op.create_table(
|
54
|
-
|
55
|
-
sa.Column(
|
54
|
+
'amphora_build_request',
|
55
|
+
sa.Column('amphora_id', sa.String(36), nullable=True,
|
56
56
|
primary_key=True),
|
57
|
-
sa.Column(
|
58
|
-
sa.Column(
|
59
|
-
sa.Column(
|
57
|
+
sa.Column('priority', sa.Integer()),
|
58
|
+
sa.Column('created_time', sa.DateTime(timezone=True), nullable=False),
|
59
|
+
sa.Column('status', sa.String(16), default='WAITING', nullable=False)
|
60
60
|
)
|
61
61
|
|
62
62
|
|
octavia/db/models.py
CHANGED
@@ -185,7 +185,7 @@ class ListenerStatistics(base_models.BASE):
|
|
185
185
|
self.total_connections += other.total_connections
|
186
186
|
else:
|
187
187
|
raise TypeError( # noqa: O342
|
188
|
-
"unsupported operand type(s) for +=: '{
|
188
|
+
"unsupported operand type(s) for +=: '{}' and '{}'".format(
|
189
189
|
type(self), type(other)))
|
190
190
|
|
191
191
|
return self
|
octavia/db/repositories.py
CHANGED
@@ -49,7 +49,7 @@ CONF = cfg.CONF
|
|
49
49
|
LOG = logging.getLogger(__name__)
|
50
50
|
|
51
51
|
|
52
|
-
class BaseRepository
|
52
|
+
class BaseRepository:
|
53
53
|
model_class = None
|
54
54
|
|
55
55
|
def count(self, session, **filters):
|
@@ -209,7 +209,7 @@ class BaseRepository(object):
|
|
209
209
|
return id_list
|
210
210
|
|
211
211
|
|
212
|
-
class Repositories
|
212
|
+
class Repositories:
|
213
213
|
def __init__(self):
|
214
214
|
self.load_balancer = LoadBalancerRepository()
|
215
215
|
self.vip = VipRepository()
|
@@ -1943,7 +1943,7 @@ class QuotasRepository(BaseRepository):
|
|
1943
1943
|
session.flush()
|
1944
1944
|
|
1945
1945
|
|
1946
|
-
class _GetALLExceptDELETEDIdMixin
|
1946
|
+
class _GetALLExceptDELETEDIdMixin:
|
1947
1947
|
|
1948
1948
|
def get_all(self, session, pagination_helper=None,
|
1949
1949
|
query_options=None, **filters):
|
@@ -20,7 +20,7 @@ import abc
|
|
20
20
|
# a single amphora, or multiple amphora among other options.
|
21
21
|
|
22
22
|
|
23
|
-
class DistributorDriver(
|
23
|
+
class DistributorDriver(metaclass=abc.ABCMeta):
|
24
24
|
@abc.abstractmethod
|
25
25
|
def get_create_distributor_subflow(self):
|
26
26
|
"""Get a subflow to create a distributor
|
octavia/hacking/checks.py
CHANGED
@@ -37,10 +37,10 @@ _all_log_levels = {'critical', 'error', 'exception', 'info', 'warning'}
|
|
37
37
|
_all_hints = {'_LC', '_LE', '_LI', '_', '_LW'}
|
38
38
|
|
39
39
|
_log_translation_hint = re.compile(
|
40
|
-
r".*LOG\.(
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
r".*LOG\.({levels})\(\s*({hints})\(".format(
|
41
|
+
levels='|'.join(_all_log_levels),
|
42
|
+
hints='|'.join(_all_hints),
|
43
|
+
))
|
44
44
|
|
45
45
|
assert_trueinst_re = re.compile(
|
46
46
|
r"(.)*assertTrue\(isinstance\((\w|\.|\'|\"|\[|\])+, "
|
octavia/image/image_base.py
CHANGED
octavia/network/base.py
CHANGED
@@ -86,7 +86,7 @@ class CreatePortException(NetworkException):
|
|
86
86
|
pass
|
87
87
|
|
88
88
|
|
89
|
-
class AbstractNetworkDriver(
|
89
|
+
class AbstractNetworkDriver(metaclass=abc.ABCMeta):
|
90
90
|
"""This class defines the methods for a fully functional network driver.
|
91
91
|
|
92
92
|
Implementations of this interface can expect a rollback to occur if any of
|
@@ -475,7 +475,9 @@ class AllowedAddressPairsDriver(neutron_base.BaseNeutronDriver):
|
|
475
475
|
:param load_balancer: octavia.common.data_models.LoadBalancer instance
|
476
476
|
:return: octavia.common.data_models.Vip,
|
477
477
|
list(octavia.common.data_models.AdditionalVip)
|
478
|
-
:raises
|
478
|
+
:raises AllocateVIPException: generic error allocating the VIP
|
479
|
+
:raises PortNotFound: port was not found
|
480
|
+
:raises SubnetNotFound: subnet was not found
|
479
481
|
"""
|
480
482
|
if load_balancer.vip.port_id:
|
481
483
|
try:
|
@@ -500,7 +502,7 @@ class AllowedAddressPairsDriver(neutron_base.BaseNeutronDriver):
|
|
500
502
|
self.delete_port(load_balancer.vip.port_id)
|
501
503
|
else:
|
502
504
|
raise base.AllocateVIPException(
|
503
|
-
'VIP port {
|
505
|
+
'VIP port {} is broken, but is owned by project {} '
|
504
506
|
'so will not be recreated. Aborting VIP allocation.'
|
505
507
|
.format(port.id, port.project_id))
|
506
508
|
except base.AllocateVIPException as e:
|
@@ -552,7 +554,7 @@ class AllowedAddressPairsDriver(neutron_base.BaseNeutronDriver):
|
|
552
554
|
constants.NAME: 'octavia-lb-' + load_balancer.id,
|
553
555
|
constants.NETWORK_ID: load_balancer.vip.network_id,
|
554
556
|
constants.ADMIN_STATE_UP: False,
|
555
|
-
'device_id': 'lb-{
|
557
|
+
'device_id': f'lb-{load_balancer.id}',
|
556
558
|
constants.DEVICE_OWNER: constants.OCTAVIA_OWNER,
|
557
559
|
project_id_key: load_balancer.project_id}
|
558
560
|
|
@@ -615,8 +617,8 @@ class AllowedAddressPairsDriver(neutron_base.BaseNeutronDriver):
|
|
615
617
|
try:
|
616
618
|
subnet = self.get_subnet(vip.subnet_id)
|
617
619
|
except base.SubnetNotFound as e:
|
618
|
-
msg = ("Can't unplug vip because vip subnet {
|
619
|
-
"found")
|
620
|
+
msg = (f"Can't unplug vip because vip subnet {vip.subnet_id} "
|
621
|
+
f"was not found")
|
620
622
|
LOG.exception(msg)
|
621
623
|
raise base.PluggedVIPNotFound(msg) from e
|
622
624
|
for amphora in filter(
|
@@ -637,8 +639,8 @@ class AllowedAddressPairsDriver(neutron_base.BaseNeutronDriver):
|
|
637
639
|
except Exception as e:
|
638
640
|
message = _('Error plugging amphora (compute_id: {compute_id}) '
|
639
641
|
'into network {network_id}.').format(
|
640
|
-
|
641
|
-
|
642
|
+
compute_id=compute_id,
|
643
|
+
network_id=network_id)
|
642
644
|
LOG.exception(message)
|
643
645
|
raise base.PlugNetworkException(message) from e
|
644
646
|
|
@@ -647,8 +649,8 @@ class AllowedAddressPairsDriver(neutron_base.BaseNeutronDriver):
|
|
647
649
|
def unplug_network(self, compute_id, network_id):
|
648
650
|
interfaces = self.get_plugged_networks(compute_id)
|
649
651
|
if not interfaces:
|
650
|
-
msg = ('Amphora with compute id {compute_id} does not have any '
|
651
|
-
'plugged networks')
|
652
|
+
msg = (f'Amphora with compute id {compute_id} does not have any '
|
653
|
+
f'plugged networks')
|
652
654
|
raise base.NetworkNotFound(msg)
|
653
655
|
|
654
656
|
unpluggers = self._get_interfaces_to_unplug(interfaces, network_id)
|
@@ -188,8 +188,8 @@ class BaseNeutronDriver(base.AbstractNetworkDriver):
|
|
188
188
|
try:
|
189
189
|
resource = getattr(
|
190
190
|
network, f"get_{resource_type}")(resource_id)
|
191
|
-
return getattr(
|
192
|
-
|
191
|
+
return getattr(
|
192
|
+
utils, f'convert_{resource_type}_to_model')(resource)
|
193
193
|
except os_exceptions.ResourceNotFound as e:
|
194
194
|
message = _('{resource_type} not found '
|
195
195
|
'({resource_type} id: {resource_id}).').format(
|
@@ -215,7 +215,7 @@ class BaseNeutronDriver(base.AbstractNetworkDriver):
|
|
215
215
|
self.network_proxy, f"{resource_type}s")(**filters)
|
216
216
|
conversion_function = getattr(
|
217
217
|
utils,
|
218
|
-
'convert_
|
218
|
+
f'convert_{resource_type}_to_model')
|
219
219
|
try:
|
220
220
|
# get first item to see if there is at least one resource
|
221
221
|
res_list = [conversion_function(next(resources))]
|
octavia/policies/amphora.py
CHANGED
@@ -17,45 +17,39 @@ from octavia.common import constants
|
|
17
17
|
|
18
18
|
rules = [
|
19
19
|
policy.DocumentedRuleDefault(
|
20
|
-
'{
|
21
|
-
action=constants.RBAC_GET_ALL),
|
20
|
+
f'{constants.RBAC_AMPHORA}{constants.RBAC_GET_ALL}',
|
22
21
|
constants.RULE_API_ADMIN,
|
23
22
|
"List Amphorae",
|
24
23
|
[{'method': 'GET', 'path': '/v2/octavia/amphorae'}]
|
25
24
|
),
|
26
25
|
policy.DocumentedRuleDefault(
|
27
|
-
'{
|
28
|
-
action=constants.RBAC_GET_ONE),
|
26
|
+
f'{constants.RBAC_AMPHORA}{constants.RBAC_GET_ONE}',
|
29
27
|
constants.RULE_API_ADMIN,
|
30
28
|
"Show Amphora details",
|
31
29
|
[{'method': 'GET', 'path': '/v2/octavia/amphorae/{amphora_id}'}]
|
32
30
|
),
|
33
31
|
policy.DocumentedRuleDefault(
|
34
|
-
'{
|
35
|
-
action=constants.RBAC_DELETE),
|
32
|
+
f'{constants.RBAC_AMPHORA}{constants.RBAC_DELETE}',
|
36
33
|
constants.RULE_API_ADMIN,
|
37
34
|
"Delete an Amphora",
|
38
35
|
[{'method': 'DELETE', 'path': '/v2/octavia/amphorae/{amphora_id}'}]
|
39
36
|
),
|
40
37
|
policy.DocumentedRuleDefault(
|
41
|
-
'{
|
42
|
-
action=constants.RBAC_PUT_CONFIG),
|
38
|
+
f'{constants.RBAC_AMPHORA}{constants.RBAC_PUT_CONFIG}',
|
43
39
|
constants.RULE_API_ADMIN,
|
44
40
|
"Update Amphora Agent Configuration",
|
45
41
|
[{'method': 'PUT',
|
46
42
|
'path': '/v2/octavia/amphorae/{amphora_id}/config'}]
|
47
43
|
),
|
48
44
|
policy.DocumentedRuleDefault(
|
49
|
-
'{
|
50
|
-
action=constants.RBAC_PUT_FAILOVER),
|
45
|
+
f'{constants.RBAC_AMPHORA}{constants.RBAC_PUT_FAILOVER}',
|
51
46
|
constants.RULE_API_ADMIN,
|
52
47
|
"Failover Amphora",
|
53
48
|
[{'method': 'PUT',
|
54
49
|
'path': '/v2/octavia/amphorae/{amphora_id}/failover'}]
|
55
50
|
),
|
56
51
|
policy.DocumentedRuleDefault(
|
57
|
-
'{
|
58
|
-
action=constants.RBAC_GET_STATS),
|
52
|
+
f'{constants.RBAC_AMPHORA}{constants.RBAC_GET_STATS}',
|
59
53
|
constants.RULE_API_ADMIN,
|
60
54
|
"Show Amphora statistics",
|
61
55
|
[{'method': 'GET', 'path': '/v2/octavia/amphorae/{amphora_id}/stats'}]
|
@@ -18,38 +18,33 @@ from octavia.common import constants
|
|
18
18
|
|
19
19
|
rules = [
|
20
20
|
policy.DocumentedRuleDefault(
|
21
|
-
'{
|
22
|
-
action=constants.RBAC_GET_ALL),
|
21
|
+
f'{constants.RBAC_AVAILABILITY_ZONE}{constants.RBAC_GET_ALL}',
|
23
22
|
constants.RULE_API_READ,
|
24
23
|
"List Availability Zones",
|
25
24
|
[{'method': 'GET', 'path': '/v2.0/lbaas/availabilityzones'}]
|
26
25
|
),
|
27
26
|
policy.DocumentedRuleDefault(
|
28
|
-
'{
|
29
|
-
action=constants.RBAC_POST),
|
27
|
+
f'{constants.RBAC_AVAILABILITY_ZONE}{constants.RBAC_POST}',
|
30
28
|
constants.RULE_API_ADMIN,
|
31
29
|
"Create an Availability Zone",
|
32
30
|
[{'method': 'POST', 'path': '/v2.0/lbaas/availabilityzones'}]
|
33
31
|
),
|
34
32
|
policy.DocumentedRuleDefault(
|
35
|
-
'{
|
36
|
-
action=constants.RBAC_PUT),
|
33
|
+
f'{constants.RBAC_AVAILABILITY_ZONE}{constants.RBAC_PUT}',
|
37
34
|
constants.RULE_API_ADMIN,
|
38
35
|
"Update an Availability Zone",
|
39
36
|
[{'method': 'PUT',
|
40
37
|
'path': '/v2.0/lbaas/availabilityzones/{availability_zone_id}'}]
|
41
38
|
),
|
42
39
|
policy.DocumentedRuleDefault(
|
43
|
-
'{
|
44
|
-
action=constants.RBAC_GET_ONE),
|
40
|
+
f'{constants.RBAC_AVAILABILITY_ZONE}{constants.RBAC_GET_ONE}',
|
45
41
|
constants.RULE_API_READ,
|
46
42
|
"Show Availability Zone details",
|
47
43
|
[{'method': 'GET',
|
48
44
|
'path': '/v2.0/lbaas/availabilityzones/{availability_zone_id}'}]
|
49
45
|
),
|
50
46
|
policy.DocumentedRuleDefault(
|
51
|
-
'{
|
52
|
-
action=constants.RBAC_DELETE),
|
47
|
+
f'{constants.RBAC_AVAILABILITY_ZONE}{constants.RBAC_DELETE}',
|
53
48
|
constants.RULE_API_ADMIN,
|
54
49
|
"Remove an Availability Zone",
|
55
50
|
[{'method': 'DELETE',
|