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
@@ -103,6 +103,16 @@ class TestPaginationHelper(base.TestCase):
|
|
103
103
|
helper.apply(query_mock, models.LoadBalancer)
|
104
104
|
self.assertEqual(params, helper.filters)
|
105
105
|
|
106
|
+
@mock.patch('octavia.api.common.pagination.request')
|
107
|
+
def test_filter_with_booleans(self, request_mock):
|
108
|
+
params = {'backup': 'True', 'admin_state_up': 'false'}
|
109
|
+
expected_params = {'backup': True, 'enabled': False}
|
110
|
+
helper = pagination.PaginationHelper(params)
|
111
|
+
query_mock = mock.MagicMock()
|
112
|
+
|
113
|
+
helper.apply(query_mock, models.Member)
|
114
|
+
self.assertEqual(expected_params, helper.filters)
|
115
|
+
|
106
116
|
@mock.patch('octavia.api.common.pagination.request')
|
107
117
|
def test_filter_mismatched_params(self, request_mock):
|
108
118
|
params = {
|
@@ -180,11 +190,8 @@ class TestPaginationHelper(base.TestCase):
|
|
180
190
|
self.assertEqual(links[0].rel, "next")
|
181
191
|
self.assertEqual(
|
182
192
|
links[0].href,
|
183
|
-
"{path_url}?limit={limit}&
|
184
|
-
|
185
|
-
limit=params['limit'],
|
186
|
-
marker=member1.id
|
187
|
-
))
|
193
|
+
f"{request_mock.path_url}?limit={params['limit']}&"
|
194
|
+
f"marker={member1.id}")
|
188
195
|
|
189
196
|
@mock.patch('octavia.api.common.pagination.request')
|
190
197
|
def test_make_links_prev(self, request_mock):
|
@@ -200,17 +207,13 @@ class TestPaginationHelper(base.TestCase):
|
|
200
207
|
self.assertEqual(links[0].rel, "previous")
|
201
208
|
self.assertEqual(
|
202
209
|
links[1].href,
|
203
|
-
"{path_url}?limit={limit}&
|
204
|
-
|
205
|
-
limit=params['limit'],
|
206
|
-
marker=member1.id))
|
210
|
+
f"{request_mock.path_url}?limit={params['limit']}&"
|
211
|
+
f"marker={member1.id}")
|
207
212
|
self.assertEqual(links[1].rel, "next")
|
208
213
|
self.assertEqual(
|
209
214
|
links[1].href,
|
210
|
-
"{path_url}?limit={limit}&
|
211
|
-
|
212
|
-
limit=params['limit'],
|
213
|
-
marker=member1.id))
|
215
|
+
f"{request_mock.path_url}?limit={params['limit']}&"
|
216
|
+
f"marker={member1.id}")
|
214
217
|
|
215
218
|
@mock.patch('octavia.api.common.pagination.request')
|
216
219
|
def test_make_links_with_configured_url(self, request_mock):
|
@@ -227,12 +230,46 @@ class TestPaginationHelper(base.TestCase):
|
|
227
230
|
helper = pagination.PaginationHelper(params)
|
228
231
|
links = helper._make_links(model_list)
|
229
232
|
self.assertEqual(links[0].rel, "previous")
|
233
|
+
self.assertEqual(
|
234
|
+
links[0].href,
|
235
|
+
("{base_uri}{path}?limit={limit}&marker={marker}"
|
236
|
+
"&page_reverse=True").format(
|
237
|
+
base_uri=api_base_uri,
|
238
|
+
path=request_mock.path,
|
239
|
+
limit=params['limit'],
|
240
|
+
marker=member1.id
|
241
|
+
))
|
242
|
+
self.assertEqual(links[1].rel, "next")
|
230
243
|
self.assertEqual(
|
231
244
|
links[1].href,
|
232
245
|
"{base_uri}{path}?limit={limit}&marker={marker}".format(
|
233
246
|
base_uri=api_base_uri,
|
234
247
|
path=request_mock.path,
|
235
248
|
limit=params['limit'],
|
249
|
+
marker=member1.id))
|
250
|
+
|
251
|
+
@mock.patch('octavia.api.common.pagination.request')
|
252
|
+
def test_make_links_with_zero_limit(self, request_mock):
|
253
|
+
request_mock.path = "/lbaas/v2/pools/1/members"
|
254
|
+
request_mock.path_url = "http://localhost" + request_mock.path
|
255
|
+
api_base_uri = "https://127.0.0.1"
|
256
|
+
conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
|
257
|
+
conf.config(group='api_settings', api_base_uri=api_base_uri)
|
258
|
+
member1 = models.Member()
|
259
|
+
member1.id = uuidutils.generate_uuid()
|
260
|
+
model_list = [member1]
|
261
|
+
|
262
|
+
params = {'limit': 0, 'marker': member1.id}
|
263
|
+
helper = pagination.PaginationHelper(params)
|
264
|
+
links = helper._make_links(model_list)
|
265
|
+
self.assertEqual(links[0].rel, "previous")
|
266
|
+
self.assertEqual(
|
267
|
+
links[0].href,
|
268
|
+
("{base_uri}{path}?limit={limit}&marker={marker}"
|
269
|
+
"&page_reverse=True").format(
|
270
|
+
base_uri=api_base_uri,
|
271
|
+
path=request_mock.path,
|
272
|
+
limit=None,
|
236
273
|
marker=member1.id
|
237
274
|
))
|
238
275
|
self.assertEqual(links[1].rel, "next")
|
@@ -241,5 +278,38 @@ class TestPaginationHelper(base.TestCase):
|
|
241
278
|
"{base_uri}{path}?limit={limit}&marker={marker}".format(
|
242
279
|
base_uri=api_base_uri,
|
243
280
|
path=request_mock.path,
|
244
|
-
limit=
|
281
|
+
limit=None,
|
282
|
+
marker=member1.id))
|
283
|
+
|
284
|
+
@mock.patch('octavia.api.common.pagination.request')
|
285
|
+
def test_make_links_with_negative_limit(self, request_mock):
|
286
|
+
request_mock.path = "/lbaas/v2/pools/1/members"
|
287
|
+
request_mock.path_url = "http://localhost" + request_mock.path
|
288
|
+
api_base_uri = "https://127.0.0.1"
|
289
|
+
conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
|
290
|
+
conf.config(group='api_settings', api_base_uri=api_base_uri)
|
291
|
+
member1 = models.Member()
|
292
|
+
member1.id = uuidutils.generate_uuid()
|
293
|
+
model_list = [member1]
|
294
|
+
|
295
|
+
params = {'limit': -1, 'marker': member1.id}
|
296
|
+
helper = pagination.PaginationHelper(params)
|
297
|
+
links = helper._make_links(model_list)
|
298
|
+
self.assertEqual(links[0].rel, "previous")
|
299
|
+
self.assertEqual(
|
300
|
+
links[0].href,
|
301
|
+
("{base_uri}{path}?limit={limit}&marker={marker}"
|
302
|
+
"&page_reverse=True").format(
|
303
|
+
base_uri=api_base_uri,
|
304
|
+
path=request_mock.path,
|
305
|
+
limit=None,
|
306
|
+
marker=member1.id
|
307
|
+
))
|
308
|
+
self.assertEqual(links[1].rel, "next")
|
309
|
+
self.assertEqual(
|
310
|
+
links[1].href,
|
311
|
+
"{base_uri}{path}?limit={limit}&marker={marker}".format(
|
312
|
+
base_uri=api_base_uri,
|
313
|
+
path=request_mock.path,
|
314
|
+
limit=None,
|
245
315
|
marker=member1.id))
|
octavia/tests/unit/base.py
CHANGED
@@ -34,7 +34,7 @@ class BaseLocalCSRTestCase(base.TestCase):
|
|
34
34
|
)
|
35
35
|
csr = x509.CertificateSigningRequestBuilder().subject_name(
|
36
36
|
x509.Name([
|
37
|
-
x509.NameAttribute(x509.oid.NameOID.COMMON_NAME,
|
37
|
+
x509.NameAttribute(x509.oid.NameOID.COMMON_NAME, "test"),
|
38
38
|
])).sign(csr_key, hashes.SHA256(), backends.default_backend())
|
39
39
|
self.certificate_signing_request = csr.public_bytes(
|
40
40
|
serialization.Encoding.PEM)
|
@@ -39,13 +39,13 @@ class TestLocalGenerator(local_csr.BaseLocalCSRTestCase):
|
|
39
39
|
ca_cert = ca_cert.not_valid_after(valid_until_datetime)
|
40
40
|
ca_cert = ca_cert.serial_number(1)
|
41
41
|
subject_name = x509.Name([
|
42
|
-
x509.NameAttribute(x509.oid.NameOID.COUNTRY_NAME,
|
42
|
+
x509.NameAttribute(x509.oid.NameOID.COUNTRY_NAME, "US"),
|
43
43
|
x509.NameAttribute(x509.oid.NameOID.STATE_OR_PROVINCE_NAME,
|
44
|
-
|
45
|
-
x509.NameAttribute(x509.oid.NameOID.LOCALITY_NAME,
|
44
|
+
"Oregon"),
|
45
|
+
x509.NameAttribute(x509.oid.NameOID.LOCALITY_NAME, "Springfield"),
|
46
46
|
x509.NameAttribute(x509.oid.NameOID.ORGANIZATION_NAME,
|
47
|
-
|
48
|
-
x509.NameAttribute(x509.oid.NameOID.COMMON_NAME,
|
47
|
+
"Springfield Nuclear Power Plant"),
|
48
|
+
x509.NameAttribute(x509.oid.NameOID.COMMON_NAME, "maggie1"),
|
49
49
|
])
|
50
50
|
ca_cert = ca_cert.subject_name(subject_name)
|
51
51
|
ca_cert = ca_cert.issuer_name(subject_name)
|
@@ -34,9 +34,8 @@ class TestBarbicanManager(base.TestCase):
|
|
34
34
|
self.barbican_endpoint = 'http://localhost:9311/v1'
|
35
35
|
self.secret_uuid = uuid.uuid4()
|
36
36
|
|
37
|
-
self.secret_ref = '{
|
38
|
-
|
39
|
-
)
|
37
|
+
self.secret_ref = (f'{self.barbican_endpoint}/secrets/'
|
38
|
+
f'{self.secret_uuid}')
|
40
39
|
|
41
40
|
self.name = 'My Fancy Cert'
|
42
41
|
self.secret_pkcs12 = secrets.Secret(
|
@@ -39,7 +39,7 @@ class TestBarbicanManager(base.TestCase):
|
|
39
39
|
self.private_key_uuid = uuidutils.generate_uuid()
|
40
40
|
self.private_key_passphrase_uuid = uuidutils.generate_uuid()
|
41
41
|
|
42
|
-
self.container_ref = '{
|
42
|
+
self.container_ref = '{}/containers/{}'.format(
|
43
43
|
self.barbican_endpoint, self.container_uuid
|
44
44
|
)
|
45
45
|
|
@@ -62,13 +62,13 @@ class TestLocalManager(base.TestCase):
|
|
62
62
|
mode = stat.S_IRUSR | stat.S_IWUSR # mode 0600
|
63
63
|
open_mock.assert_has_calls([
|
64
64
|
mock.call(
|
65
|
-
os.path.join('/tmp/{
|
65
|
+
os.path.join(f'/tmp/{cert_id}.crt'), flags, mode),
|
66
66
|
mock.call(
|
67
|
-
os.path.join('/tmp/{
|
67
|
+
os.path.join(f'/tmp/{cert_id}.key'), flags, mode),
|
68
68
|
mock.call(
|
69
|
-
os.path.join('/tmp/{
|
69
|
+
os.path.join(f'/tmp/{cert_id}.int'), flags, mode),
|
70
70
|
mock.call(
|
71
|
-
os.path.join('/tmp/{
|
71
|
+
os.path.join(f'/tmp/{cert_id}.pass'), flags, mode)
|
72
72
|
], any_order=True)
|
73
73
|
|
74
74
|
# Verify the writes were made
|
@@ -98,10 +98,10 @@ class TestLocalManager(base.TestCase):
|
|
98
98
|
# Verify the correct files were opened
|
99
99
|
flags = os.O_RDONLY
|
100
100
|
open_mock.assert_has_calls([
|
101
|
-
mock.call(os.path.join('/tmp/{
|
102
|
-
mock.call(os.path.join('/tmp/{
|
103
|
-
mock.call(os.path.join('/tmp/{
|
104
|
-
mock.call(os.path.join('/tmp/{
|
101
|
+
mock.call(os.path.join(f'/tmp/{cert_id}.crt'), flags),
|
102
|
+
mock.call(os.path.join(f'/tmp/{cert_id}.key'), flags),
|
103
|
+
mock.call(os.path.join(f'/tmp/{cert_id}.int'), flags),
|
104
|
+
mock.call(os.path.join(f'/tmp/{cert_id}.pass'), flags)
|
105
105
|
], any_order=True)
|
106
106
|
|
107
107
|
# The returned data should be a Cert object
|
@@ -117,10 +117,10 @@ class TestLocalManager(base.TestCase):
|
|
117
117
|
|
118
118
|
# Verify the correct files were removed
|
119
119
|
remove_mock.assert_has_calls([
|
120
|
-
mock.call(os.path.join('/tmp/{
|
121
|
-
mock.call(os.path.join('/tmp/{
|
122
|
-
mock.call(os.path.join('/tmp/{
|
123
|
-
mock.call(os.path.join('/tmp/{
|
120
|
+
mock.call(os.path.join(f'/tmp/{cert_id}.crt')),
|
121
|
+
mock.call(os.path.join(f'/tmp/{cert_id}.key')),
|
122
|
+
mock.call(os.path.join(f'/tmp/{cert_id}.int')),
|
123
|
+
mock.call(os.path.join(f'/tmp/{cert_id}.pass'))
|
124
124
|
], any_order=True)
|
125
125
|
|
126
126
|
def test_store_cert(self):
|
@@ -151,8 +151,7 @@ class TestLocalManager(base.TestCase):
|
|
151
151
|
|
152
152
|
# Verify the correct files were opened
|
153
153
|
flags = os.O_RDONLY
|
154
|
-
open_mock.assert_called_once_with('/tmp/{
|
155
|
-
flags)
|
154
|
+
open_mock.assert_called_once_with(f'/tmp/{secret_id}.crt', flags)
|
156
155
|
|
157
156
|
# Test failure path
|
158
157
|
with mock.patch('os.open', open_mock), mock.patch.object(
|
@@ -147,6 +147,7 @@ class TestPrometheusProxyCMD(base.TestCase):
|
|
147
147
|
mock_http.shutdown.assert_called_once()
|
148
148
|
|
149
149
|
@mock.patch('threading.Thread')
|
150
|
+
@mock.patch('http.server.ThreadingHTTPServer.__init__')
|
150
151
|
@mock.patch('http.server.ThreadingHTTPServer.serve_forever')
|
151
152
|
@mock.patch('octavia.amphorae.backends.utils.network_namespace.'
|
152
153
|
'NetworkNamespace.__exit__')
|
@@ -155,12 +156,18 @@ class TestPrometheusProxyCMD(base.TestCase):
|
|
155
156
|
@mock.patch('octavia.cmd.prometheus_proxy.EXIT_EVENT')
|
156
157
|
@mock.patch('octavia.cmd.prometheus_proxy.SignalHandler')
|
157
158
|
def test_main(self, mock_signal_handler, mock_exit_event, mock_netns_enter,
|
158
|
-
mock_netns_exit, mock_serve_forever,
|
159
|
+
mock_netns_exit, mock_serve_forever, mock_server_init,
|
160
|
+
mock_thread):
|
159
161
|
|
160
162
|
mock_exit_event.is_set.side_effect = [False, False, True]
|
161
163
|
mock_netns_enter.side_effect = [Exception('boom'), True]
|
162
164
|
|
165
|
+
mock_server_init.return_value = None
|
166
|
+
|
163
167
|
prometheus_proxy.main()
|
164
168
|
|
165
169
|
mock_signal_handler.assert_called_once()
|
170
|
+
mock_server_init.assert_called_once_with(
|
171
|
+
('127.0.0.1', 9102),
|
172
|
+
prometheus_proxy.PrometheusProxy)
|
166
173
|
mock_serve_forever.assert_called_once()
|