We are ecstatic to announce the release of: octavia 7.0.0: OpenStack Octavia Scalable Load Balancer as a Service This release is part of the victoria release series. The source is available from: https://opendev.org/openstack/octavia Download the package from: https://pypi.org/project/octavia Please report issues through: https://storyboard.openstack.org/#!/project/908 For more details, please see below. Changes in octavia 6.0.0..7.0.0 ------------------------------- cb7d5133 Ensure install of diskimage-create.sh requirements f3eff29c Ignore DELETED amphorae when performing certificate rotation 70079d86 Fix building Ubuntu 20.04 focal amphorae 7839ffd5 Followup Remove haproxy_check_script for UDP-only 9453701f Fixes API list handling of unscoped tokens 6a3a81b6 Add a requirements.txt check job 6c8c4f18 Fix requirements.txt for Victoria 89d5e9fc Fix backend certificate file paths a6a4001f Fix AttributeError on TLS-enabled pool provisioning 8cd7a6b9 Update protocol combination api-ref for PROXYV2 16f9d2eb Fix image build when installing agent from package eb9e9dc7 Switch grenade to run the octavia smoke tests 0ce9add9 Remove haproxy_check_script for UDP-only LBs 59c4ad48 Drop diskimage-builder from root requirements.txt a446c04f Revert pyroute2 workaround 66f3a63f Fix amphora failover when VRRP port is missing befa0734 Bump taskflow version 04b18e4d Add amphora delete support to amphorav2 driver 639c1175 Add SCTP support in API 4260d8a7 Update grenade job to run one smoke test df3f5890 Fix the lower-constraints job for focal 9649c916 Add a release note about HAProxy 2.0 5092597f Refactoring amphora stats driver interface d3885cac Fix the tls_cipher_prohibit_list release note 29a2ec71 Deprecate the Spares Pool feature for removal in X 7fe78c59 Add proxy v2 protocol support 781647ab Add an upgrade check for YAML oslo policy file 78d84154 Preupgrade check for amphorav2 provider 59dcdd9a Add amphora delete API 1a3b56a0 Add support for nftables ea0bbd27 Add amphora image tag capability to Octavia flavors a422e5a2 Introduce an image driver interface de2fe22f Add HTTP/2 over TLS support to amphora provider 460566e3 Add requirements for jobboard drivers d5fe092a Update amphora v2 for the failover refactor 6b182b50 Add missing log line for finishing amp operations 6df1ce8e Fix user permission for WSGI configuration Task: 35692 Story: 2006172 b6f6c142 Fix API sort key for complex columns f3b5e6e1 Switch to live from noop drivers 472427a7 Change tls_ciphers init in Pool API classes a5f0524f Add ALPN support for TLS-terminated HTTPS LBs 9fb58eb9 Fix invalid DOWN status when updating a UDP pool dcda7213 Add DIB element octavia-lib 17c856db Set CentOS amphora image size back to default value bf3d5372 Fix new pylint errors d1da0c1c Correct a typo in the document db180bf8 [Amphorav2] Healthmonitor operation minor fixes 2e2464d7 Increase the devstack secuirty group rules quota e45937a4 Ensure xtrace is enabled in devstack plugin f2cda017 Add a message for the amphora image size 7d6322ae Switch back to using git for the agent ref 9097c575 Clarify the current status of Octavia in README bb9b30be Allow amphorav2 to run without jobboard 611af600 Set Grub timeout to 0 for fast boot times 6b3580d9 Add octavia-amphora-image-build-live jobs fa1c5ef6 Set amphora-agent build-only packages 13fe928c Add line terminator to certificate list file dac24cd7 Update devstack plugin 81f06616 Correct a typo in the document d093cbb3 Fix listener tls_versions and tls_ciphers clearing fa284d2c [AmphoraV2] Fix l7policy/l7rule quota decrement bb4f50f7 Fix operational status for disabled UDP listeners b2948795 Install ppc64-diag in ppc64le amphora images 08fad749 Fix accepting 'insert_headers' when unsupported 9df5f75d Fix amphora image build jobs d15cccff Change amphora statistics to use deltas 51b93c00 Workaround broken pyroute2 0.5.13 01541ade [Trivial]Add missing space between words f9f00277 Fix haproxy user flow log format substitution 259f19ec Add some details on enable_anti_affinity option f4305e03 Fix memory consumption issues with default connection_limit ae6f3443 Fix missing dependency in amphora create flow d0a38baf Use octavia nodeset in octavia-grenade 1072263b Add non-voting octavia-v2-dsvm-scenario-centos-8 7890f0d9 Remove blacklist terminology in the Octavia tree 77f5c389 Add a router to the lb-mgmt-net for slaac 10365350 Switch from unittest2 compat methods to Python 3.x methods f6a66d86 Remove deprecated status_update_threads option 40731e57 Fix neutron subnet lookup ignoring endpoint_type 41c628a0 Fix missing params in amphora base and noop driver cd52cce7 Remove amp_ssH_access_allowed option 33d28b07 Remove amp_image_id option 89123c0f Add missing reload method in amphora noop driver 3ef4a75a fix(elements): fix nf_conntrack sysctl param names 83946336 Prioritize policy validation d8d722b5 diskimage-create compatible with ShellCheck. 955bb884 Refactor the failover flows e7735571 Update the API audit map 18887f5f Fix API audit CADF audit map for failover action 3ee9bc0d Fix listener API's test_create* assertions f26ab8b9 add the verify for the session e5951ced Use uwsgi binary from path c176cf60 Fix error on devstack cleanup 8119b214 Cap jsonschema 3.2.0 as the minimal version 66a67ba5 Clarify health monitor behavior 958c3a18 Improve terminology in an old spec file 76616f35 Fix some typos in the explanatory notes 6cce3a72 Use unittest.mock instead of mock de69b2c7 Remove all deprecated driver code that moved to octavia-lib fafabad0 Switch oslo.policy over to yaml f97a89de Fix UDP pool transform in LVS driver 9e070e6e Fix listener update with SNI certificates 5d919131 Add quota support to octavia's l7policy and l7rule 611880cd Fixed typo in upgrade section c2ff9bce Update the feature matrix for new features 630a4e6a Fix batch member create for v1 amphora driver 270b973b Add minimum TLS version option in octavia.conf d031596b Add a periodic fast forward upgrade job 9a6da864 Add TLS version configuration for pools 6aad5d8b Add TLS version configuration for listeners 0deff256 Change default tox envs from python37 to python3 bf460618 Stop to use the __future__ module. 9bee93b2 trivial fix a84bf7d8 Fix test_barbican_legacy for Python 3.8 7c96e455 Fixed a bug: replace 'startwith' with 'startswith' acc38391 Workaround peer name starting with hyphen 59831f46 Fix the grenade plugin to also upgrade octavia-lib 4a0ecd0e Add warning when running simple_server acb4d7b4 Switch to newer openstackdocstheme and reno versions b54f373c Fix getting user neutron client d0f02330 Make sure devstack aborts if DIB fails 6354f92e Fix netcat option in udp_check.sh for CentOS/RHEL 2f610b95 Remove translation sections from setup.cfg 9a1d6d35 Fix E741 pep8 errors 8b8965bd Migrate grenade job to native Zuul v3 85f5b818 Add TLS cipher blacklist to octavia.conf 0056b517 Remove deprecated exception classes 526b1584 Add py38 package metadata 707c70d9 Add Python3 master unit tests a5806960 Update master for stable/ussuri fe771a45 Fix healthmanager not update amphora health when LB disable 5ee26a20 Fix Octavia unit tests for python 3.8 a720f76c Remove Babel requirement 70f5df1e Update cirros image to cirros-0.5.1-x86_64 Diffstat (except docs and test files) ------------------------------------- .gitignore | 1 + README.rst | 10 +- api-ref/source/conf.py | 28 +- api-ref/source/index.rst | 12 +- api-ref/source/parameters.yaml | 88 +- api-ref/source/v2/amphora.inc | 43 + api-ref/source/v2/examples/amphora-delete-curl | 1 + api-ref/source/v2/examples/listener-create-curl | 2 +- .../v2/examples/listener-create-request.json | 4 +- .../v2/examples/listener-create-response.json | 4 +- .../source/v2/examples/listener-show-response.json | 4 +- api-ref/source/v2/examples/listener-update-curl | 2 +- .../v2/examples/listener-update-request.json | 4 +- .../v2/examples/listener-update-response.json | 4 +- .../v2/examples/listeners-list-response.json | 4 +- api-ref/source/v2/examples/pool-create-curl | 2 +- .../source/v2/examples/pool-create-request.json | 3 +- .../source/v2/examples/pool-create-response.json | 3 +- api-ref/source/v2/examples/pool-show-response.json | 3 +- api-ref/source/v2/examples/pool-update-curl | 2 +- .../source/v2/examples/pool-update-request.json | 3 +- .../source/v2/examples/pool-update-response.json | 3 +- .../source/v2/examples/pools-list-response.json | 3 +- api-ref/source/v2/examples/quota-update-curl | 2 +- .../source/v2/examples/quota-update-request.json | 4 +- .../source/v2/examples/quota-update-response.json | 4 +- .../v2/examples/quotas-defaults-response.json | 4 +- .../source/v2/examples/quotas-list-response.json | 4 +- .../source/v2/examples/quotas-show-response.json | 4 +- api-ref/source/v2/general.inc | 77 +- api-ref/source/v2/healthmonitor.inc | 2 +- api-ref/source/v2/l7policy.inc | 4 +- api-ref/source/v2/listener.inc | 12 + api-ref/source/v2/pool.inc | 9 +- api-ref/source/v2/quota.inc | 10 + babel.cfg | 2 - devstack/README.md | 2 +- devstack/plugin.sh | 102 +- devstack/samples/singlenode/local.sh | 2 +- devstack/settings | 5 +- devstack/upgrade/settings | 6 - devstack/upgrade/upgrade.sh | 1 + diskimage-create/README.rst | 12 + diskimage-create/diskimage-create.sh | 134 +- diskimage-create/requirements.txt | 1 - .../feature-matrix-healthmonitor.ini | 8 + .../feature-classification/feature-matrix-lb.ini | 8 + .../feature-matrix-listener.ini | 32 + .../feature-classification/feature-matrix-pool.ini | 44 +- .../75-amphora-agent-install | 6 +- elements/amphora-agent/package-installs.yaml | 17 +- elements/amphora-agent/pkg-map | 13 +- .../post-install.d/10-enable-network-scripts | 4 + .../post-install.d/90-remove-build-deps | 5 +- .../static/usr/local/bin/udp-masquerade.sh | 81 ++ .../post-install.d/20-haproxy-tune-kernel | 5 +- elements/octavia-lib/README.rst | 24 + elements/octavia-lib/element-deps | 2 + .../76-octavia-lib-install | 17 + .../post-install.d/89-remove-build-deps | 12 + elements/octavia-lib/source-repository-octavia-lib | 2 + etc/audit/octavia_api_audit_map.conf.sample | 7 +- etc/octavia.conf | 101 +- etc/policy/README.rst | 6 +- etc/policy/admin_or_owner-policy.json | 11 - etc/policy/admin_or_owner-policy.yaml | 18 + etc/policy/octavia-policy-generator.conf | 4 +- httpd/octavia-api.conf | 2 +- lower-constraints.txt | 30 +- .../backends/agent/api_server/amphora_info.py | 74 +- .../backends/agent/api_server/keepalived.py | 4 + .../backends/agent/api_server/keepalivedlvs.py | 11 +- .../backends/agent/api_server/loadbalancer.py | 39 +- .../amphorae/backends/agent/api_server/osutils.py | 16 +- .../amphorae/backends/agent/api_server/server.py | 9 +- .../api_server/templates/plug_port_ethX.conf.j2 | 4 +- .../api_server/templates/plug_vip_ethX.conf.j2 | 4 +- .../rh_plug_port_eth_ifdown_local.conf.j2 | 4 +- .../templates/rh_plug_port_eth_ifup_local.conf.j2 | 4 +- octavia/amphorae/backends/agent/api_server/util.py | 79 +- .../backends/health_daemon/health_daemon.py | 162 ++- octavia/amphorae/backends/utils/haproxy_query.py | 5 +- .../amphorae/backends/utils/ip_advertisement.py | 183 +++ .../amphorae/backends/utils/keepalivedlvs_query.py | 43 +- .../amphorae/backends/utils/network_namespace.py | 50 + octavia/amphorae/backends/utils/network_utils.py | 83 ++ octavia/amphorae/backends/utils/udp_check.sh | 14 +- octavia/amphorae/driver_exceptions/exceptions.py | 4 +- octavia/amphorae/drivers/driver_base.py | 117 +- octavia/amphorae/drivers/haproxy/exceptions.py | 9 +- .../amphorae/drivers/haproxy/rest_api_driver.py | 107 +- octavia/amphorae/drivers/health/heartbeat_udp.py | 643 +++++++-- .../amphorae/drivers/keepalived/jinja/jinja_cfg.py | 2 +- .../drivers/keepalived/vrrp_rest_driver.py | 81 +- octavia/amphorae/drivers/noop_driver/driver.py | 62 +- octavia/api/common/pagination.py | 24 +- octavia/api/common/types.py | 40 +- .../api/drivers/amphora_driver/flavor_schema.py | 4 + octavia/api/drivers/amphora_driver/v1/driver.py | 44 +- octavia/api/drivers/amphora_driver/v2/driver.py | 44 +- octavia/api/drivers/data_models.py | 58 - octavia/api/drivers/driver_agent/driver_updater.py | 42 +- octavia/api/drivers/exceptions.py | 41 - octavia/api/drivers/noop_driver/driver.py | 4 +- octavia/api/drivers/utils.py | 45 +- octavia/api/healthcheck/healthcheck_plugins.py | 4 +- octavia/api/root_controller.py | 27 +- octavia/api/v2/controllers/__init__.py | 6 +- octavia/api/v2/controllers/amphora.py | 36 +- .../v2/controllers/availability_zone_profiles.py | 18 +- octavia/api/v2/controllers/availability_zones.py | 16 +- octavia/api/v2/controllers/base.py | 14 +- octavia/api/v2/controllers/flavor_profiles.py | 20 +- octavia/api/v2/controllers/flavors.py | 14 +- octavia/api/v2/controllers/health_monitor.py | 66 +- octavia/api/v2/controllers/l7policy.py | 39 +- octavia/api/v2/controllers/l7rule.py | 51 +- octavia/api/v2/controllers/listener.py | 83 +- octavia/api/v2/controllers/load_balancer.py | 106 +- octavia/api/v2/controllers/member.py | 28 +- octavia/api/v2/controllers/pool.py | 106 +- octavia/api/v2/controllers/provider.py | 12 +- octavia/api/v2/controllers/quotas.py | 4 +- octavia/api/v2/types/listener.py | 15 + octavia/api/v2/types/pool.py | 26 +- octavia/api/v2/types/quotas.py | 8 +- octavia/certificates/common/auth/barbican_acl.py | 4 +- octavia/certificates/generator/local.py | 12 +- octavia/certificates/manager/barbican.py | 2 +- octavia/certificates/manager/barbican_legacy.py | 2 +- octavia/certificates/manager/castellan_mgr.py | 2 +- octavia/certificates/manager/local.py | 13 +- octavia/cmd/agent.py | 2 +- octavia/cmd/api.py | 4 + octavia/cmd/status.py | 89 +- octavia/common/base_taskflow.py | 11 +- octavia/common/clients.py | 35 +- octavia/common/config.py | 168 ++- octavia/common/constants.py | 105 +- octavia/common/context.py | 2 +- octavia/common/data_models.py | 39 +- octavia/common/exceptions.py | 30 +- .../jinja/haproxy/combined_listeners/jinja_cfg.py | 52 +- .../combined_listeners/templates/haproxy.cfg.j2 | 4 +- .../haproxy/combined_listeners/templates/macros.j2 | 70 +- .../jinja/haproxy/split_listeners/jinja_cfg.py | 4 +- octavia/common/jinja/lvs/jinja_cfg.py | 4 +- octavia/common/jinja/lvs/templates/base.j2 | 4 + octavia/common/keystone.py | 2 +- octavia/common/policy.py | 8 +- octavia/common/stats.py | 10 +- octavia/common/tls_utils/cert_parser.py | 32 +- octavia/common/utils.py | 27 +- octavia/common/validate.py | 130 +- octavia/compute/compute_base.py | 8 +- octavia/compute/drivers/noop_driver/driver.py | 41 +- octavia/compute/drivers/nova_driver.py | 122 +- .../healthmanager/health_drivers/update_db.py | 551 -------- octavia/controller/queue/v1/consumer.py | 4 +- octavia/controller/queue/v1/endpoints.py | 4 + octavia/controller/queue/v2/consumer.py | 13 +- octavia/controller/queue/v2/endpoints.py | 10 +- octavia/controller/worker/task_utils.py | 2 +- octavia/controller/worker/v1/controller_worker.py | 568 +++++--- .../controller/worker/v1/flows/amphora_flows.py | 766 +++++----- .../controller/worker/v1/flows/l7policy_flows.py | 2 + octavia/controller/worker/v1/flows/l7rule_flows.py | 2 + .../worker/v1/flows/load_balancer_flows.py | 450 +++++- .../worker/v1/tasks/amphora_driver_tasks.py | 226 ++- octavia/controller/worker/v1/tasks/cert_task.py | 2 +- .../controller/worker/v1/tasks/compute_tasks.py | 94 +- .../controller/worker/v1/tasks/database_tasks.py | 200 ++- .../controller/worker/v1/tasks/lifecycle_tasks.py | 6 +- .../controller/worker/v1/tasks/network_tasks.py | 221 ++- octavia/controller/worker/v1/tasks/retry_tasks.py | 74 + octavia/controller/worker/v2/controller_worker.py | 549 +++++--- .../controller/worker/v2/flows/amphora_flows.py | 786 ++++++----- octavia/controller/worker/v2/flows/flow_utils.py | 47 +- .../controller/worker/v2/flows/l7policy_flows.py | 2 + octavia/controller/worker/v2/flows/l7rule_flows.py | 2 + .../controller/worker/v2/flows/listener_flows.py | 14 +- .../worker/v2/flows/load_balancer_flows.py | 503 +++++-- octavia/controller/worker/v2/flows/pool_flows.py | 9 +- .../worker/v2/taskflow_jobboard_driver.py | 3 +- .../worker/v2/tasks/amphora_driver_tasks.py | 273 ++-- octavia/controller/worker/v2/tasks/cert_task.py | 2 +- .../controller/worker/v2/tasks/compute_tasks.py | 102 +- .../controller/worker/v2/tasks/database_tasks.py | 276 +++- .../controller/worker/v2/tasks/lifecycle_tasks.py | 6 +- .../controller/worker/v2/tasks/network_tasks.py | 256 +++- octavia/controller/worker/v2/tasks/retry_tasks.py | 73 + octavia/db/migration/alembic_migrations/env.py | 2 - ...994dd3ec2_add_listener_alpn_protocols_column.py | 35 + .../32e5c35b26a8_add_l7policy_and_l7rule_quota.py | 40 + .../versions/8b47b2546312_sctp_support.py | 46 + .../d3c8a090f3de_add_pool_tls_versions_column.py} | 25 +- ...493ae5f9a7_add_listener_tls_versions_column.py} | 25 +- .../e6ee84f0abf3_add_proxy_v2_pool_protocol.py | 43 + octavia/db/models.py | 36 +- octavia/db/prepare.py | 27 +- octavia/db/repositories.py | 212 ++- octavia/distributor/drivers/noop_driver/driver.py | 6 +- octavia/hacking/checks.py | 17 + .../health_drivers => image}/__init__.py | 0 .../health_drivers => image/drivers}/__init__.py | 0 octavia/image/drivers/glance_driver.py | 69 + octavia/image/drivers/noop_driver/__init__.py | 0 octavia/image/drivers/noop_driver/driver.py | 43 + .../update_base.py => image/image_base.py} | 19 +- octavia/network/base.py | 52 + octavia/network/data_models.py | 16 +- .../drivers/neutron/allowed_address_pairs.py | 351 +++-- octavia/network/drivers/neutron/base.py | 35 +- octavia/network/drivers/neutron/utils.py | 45 +- octavia/network/drivers/noop_driver/driver.py | 73 +- octavia/opts.py | 3 +- octavia/policies/amphora.py | 7 + octavia/statistics/__init__.py | 0 octavia/statistics/drivers/__init__.py | 0 .../drivers/logger.py} | 18 +- octavia/statistics/drivers/update_db.py | 43 + octavia/statistics/stats_base.py | 60 + .../backend/agent/api_server/test_keepalivedlvs.py | 24 +- .../backend/agent/api_server/test_server.py | 81 +- .../api/drivers/driver_agent/test_driver_agent.py | 2 +- .../functional/api/v2/test_availability_zones.py | 2 +- .../backends/agent/api_server/test_amphora_info.py | 2 +- .../agent/api_server/test_haproxy_compatibility.py | 8 +- .../backends/agent/api_server/test_keepalived.py | 2 +- .../agent/api_server/test_keepalivedlvs.py | 2 +- .../backends/agent/api_server/test_loadbalancer.py | 50 +- .../backends/agent/api_server/test_osutils.py | 2 +- .../backends/agent/api_server/test_plug.py | 26 +- .../backends/agent/api_server/test_util.py | 130 +- .../backends/agent/test_agent_jinja_cfg.py | 2 +- .../backends/health_daemon/test_envelope.py | 2 +- .../backends/health_daemon/test_health_daemon.py | 225 ++- .../backends/health_daemon/test_health_sender.py | 2 +- .../amphorae/backends/utils/test_haproxy_query.py | 2 +- .../backends/utils/test_ip_advertisement.py | 212 +++ .../backends/utils/test_keepalivedlvs_query.py | 76 +- .../backends/utils/test_network_namespace.py | 116 ++ .../amphorae/backends/utils/test_network_utils.py | 140 ++ .../amphorae/drivers/haproxy/test_exceptions.py | 52 + .../drivers/haproxy/test_rest_api_driver_0_5.py | 78 +- .../drivers/haproxy/test_rest_api_driver_1_0.py | 63 +- .../drivers/haproxy/test_rest_api_driver_common.py | 83 ++ .../amphorae/drivers/health/test_heartbeat_udp.py | 1478 +++++++++++++++++++- .../drivers/keepalived/jinja/test_jinja_cfg.py | 2 +- .../drivers/keepalived/test_vrrp_rest_driver.py | 50 +- .../test_noop_amphoraloadbalancer_driver.py | 35 +- .../amphora_driver/v1/test_amphora_driver.py | 35 +- .../amphora_driver/v2/test_amphora_driver.py | 53 +- .../drivers/driver_agent/test_driver_listener.py | 2 +- .../drivers/driver_agent/test_driver_updater.py | 78 +- .../unit/api/drivers/test_provider_noop_agent.py | 2 +- .../unit/api/drivers/test_provider_noop_driver.py | 4 +- .../certificates/common/auth/test_barbican_acl.py | 2 +- .../unit/certificates/generator/test_local.py | 2 +- .../unit/certificates/manager/test_barbican.py | 2 +- .../certificates/manager/test_barbican_legacy.py | 39 +- .../certificates/manager/test_castellan_mgr.py | 2 +- .../haproxy/combined_listeners/test_jinja_cfg.py | 466 +++++- .../haproxy/split_listeners/test_jinja_cfg.py | 2 +- .../common/jinja/logging/test_logging_jinja_cfg.py | 2 +- .../unit/common/jinja/lvs/test_lvs_jinja_cfg.py | 26 +- .../unit/common/jinja/test_user_data_jinja_cfg.py | 2 +- .../sample_configs/sample_configs_combined.py | 62 +- .../compute/drivers/test_compute_noop_driver.py | 8 +- .../health_drivers/test_update_base.py | 38 - .../healthmanager/health_drivers/test_update_db.py | 1414 ------------------- .../healthmanager/test_health_manager.py | 2 +- .../controller/housekeeping/test_house_keeping.py | 6 +- .../unit/controller/queue/v1/test_consumer.py | 2 +- .../unit/controller/queue/v1/test_endpoints.py | 7 +- .../unit/controller/queue/v2/test_consumer.py | 2 +- .../unit/controller/queue/v2/test_endpoints.py | 7 +- .../controller/worker/test_amphora_rate_limit.py | 2 +- .../unit/controller/worker/test_task_utils.py | 2 +- .../worker/v1/flows/test_amphora_flows.py | 215 ++- .../worker/v1/flows/test_health_monitor_flows.py | 2 +- .../worker/v1/flows/test_l7policy_flows.py | 2 +- .../worker/v1/flows/test_l7rule_flows.py | 2 +- .../worker/v1/flows/test_listener_flows.py | 2 +- .../worker/v1/flows/test_load_balancer_flows.py | 238 +++- .../worker/v1/flows/test_member_flows.py | 2 +- .../controller/worker/v1/flows/test_pool_flows.py | 2 +- .../worker/v1/tasks/test_amphora_driver_tasks.py | 288 +++- .../worker/v1/tasks/test_compute_tasks.py | 82 +- .../worker/v1/tasks/test_database_tasks.py | 36 +- .../worker/v1/tasks/test_database_tasks_quota.py | 95 +- .../worker/v1/tasks/test_lifecycle_tasks.py | 2 +- .../controller/worker/v1/tasks/test_model_tasks.py | 2 +- .../worker/v1/tasks/test_network_tasks.py | 416 +++++- .../controller/worker/v1/tasks/test_retry_tasks.py | 47 + .../controller/worker/v1/test_controller_worker.py | 993 ++++++++++--- .../worker/v2/flows/test_amphora_flows.py | 169 ++- .../worker/v2/flows/test_health_monitor_flows.py | 2 +- .../worker/v2/flows/test_l7policy_flows.py | 2 +- .../worker/v2/flows/test_l7rule_flows.py | 2 +- .../worker/v2/flows/test_listener_flows.py | 10 +- .../worker/v2/flows/test_load_balancer_flows.py | 276 +++- .../worker/v2/flows/test_member_flows.py | 2 +- .../controller/worker/v2/flows/test_pool_flows.py | 5 +- .../worker/v2/tasks/test_amphora_driver_tasks.py | 313 ++++- .../worker/v2/tasks/test_compute_tasks.py | 79 +- .../worker/v2/tasks/test_database_tasks.py | 39 +- .../worker/v2/tasks/test_database_tasks_quota.py | 128 +- .../worker/v2/tasks/test_lifecycle_tasks.py | 2 +- .../worker/v2/tasks/test_network_tasks.py | 438 +++++- .../controller/worker/v2/tasks/test_retry_tasks.py | 47 + .../controller/worker/v2/test_controller_worker.py | 1041 +++++++++++--- .../unit/image/drivers/test_image_noop_driver.py | 39 + .../drivers/neutron/test_allowed_address_pairs.py | 480 ++++++- .../unit/network/drivers/neutron/test_base.py | 2 +- .../unit/network/drivers/neutron/test_utils.py | 3 +- .../network/drivers/test_network_noop_driver.py | 58 +- .../drivers/test_logger.py} | 28 +- .../unit/statistics/drivers/test_update_db.py | 78 ++ .../unit/volume/drivers/test_cinder_driver.py | 2 +- .../unit/volume/drivers/test_volume_noop_driver.py | 2 +- octavia/volume/drivers/cinder_driver.py | 10 +- octavia/volume/drivers/noop_driver/driver.py | 4 +- playbooks/image-build/run.yaml | 7 +- .../legacy/grenade-devstack-octavia/post.yaml | 19 - playbooks/legacy/grenade-devstack-octavia/run.yaml | 62 - .../Add-proxy-protocol-v2-90e4f5bf76138c69.yaml | 4 + ...a-health-when-LB-disabled-46a4fb295c6d0850.yaml | 6 + ...d-amphora-alpn-h2-support-dfa9a86b2c06f354.yaml | 6 + .../notes/add-amphora-delete-69badba140f7b228.yaml | 4 + ...hora-image-tag-capability-ba2ea034bc01ab48.yaml | 7 + releasenotes/notes/add-c9b9401b831efb25.yaml | 10 + ...olicy-and-l7rule-to-quota-4b873c77f1e608e6.yaml | 3 + ...listener-tls-alpn-support-3056fb01b418c88f.yaml | 9 + .../add-nftables-support-c86a89c420f6a42a.yaml | 4 + ...support-for-sctp-protocol-152444b211ab2188.yaml | 5 + .../allow-invisible-subnets-e30b0b5fbd216294.yaml | 2 +- .../deprecating-spares-pool-9f92787ec9809a78.yaml | 11 + ...d-member-tls-enabled-pool-cc77bfa320aaf659.yaml | 5 + ...ailover-missing-vrrp-port-9b5f13b9951b7edb.yaml | 5 + ...ner-update-sni-containers-6595c52e2de1f621.yaml | 8 + .../notes/fix-api-sort-key-337f342d5cdce432.yaml | 5 + ...ix-audit-map-for-failover-e63390399da6841d.yaml | 5 + ...ix-barbican-client-verfiy-689be1b9389bd1d8.yaml | 5 + ...sable-udp-listener-status-3d34a5596e62da1c.yaml | 6 + ...versions-ciphers-clearing-4e987ee17d6b6e79.yaml | 8 + ...amphora-create-dependency-a954ded0d260d462.yaml | 5 + ...ix-peer-name-prefix-hypen-e74a87e9a01b4f4c.yaml | 10 + ...header-insertion-mismatch-e3aeb5f5fee0348b.yaml | 5 + ...enabled-pool-provisioning-e3adb987244a025a.yaml | 4 + .../notes/fix-udp-only-lbs-c4ca42106fc1e2bb.yaml | 5 + ...nstable-UDP-health-status-ba32690b83a9641b.yaml | 7 + .../get-all-unscoped-token-61da95856bc662e0.yaml | 10 + .../improve-terminology-8ddacb4458c74d57.yaml | 9 + .../jobboard-enable-option-5132e372c446d6de.yaml | 8 + .../notes/min-tls-version-8e2856fb055ece2c.yaml | 6 + ...ction_limit-config-option-3ed9f0ed6ec2b514.yaml | 18 + .../notes/pool-tls-versions-37f8036eb29ffeee.yaml | 7 + ...end-haproxy-2.x-for-http2-697416c486e36840.yaml | 6 + .../refactor_failover_flow-9efcd854240f71ad.yaml | 11 + ...ve-amp-ssh-access-allowed-e11dc011637b21dd.yaml | 6 + .../remove-amp_image_id-12a88bae6518455b.yaml | 6 + ...ove-status_update_threads-85a8b0307a04c164.yaml | 6 + ...drivers-interface-changes-c8f2bf3b02eec767.yaml | 17 + .../switch-to-live-drivers-cbae7c60eafa0f3e.yaml | 6 + .../tls-cipher-prohibit-list-b5a23ca38149f3b8.yaml | 6 + .../tls-versions-listeners-59cecde77e0238a0.yaml | 14 + releasenotes/source/conf.py | 8 +- releasenotes/source/index.rst | 1 + releasenotes/source/ussuri.rst | 6 + requirements.txt | 24 +- setup.cfg | 34 +- specs/template.rst | 2 +- specs/version0.5/network-driver-interface.rst | 2 +- test-requirements.txt | 2 +- tools/coding-checks.sh | 2 +- tools/create_flow_docs.py | 45 +- tools/flow-list-v2.txt | 32 + tools/flow-list.txt | 3 +- tools/misc-sanity-checks.sh | 6 +- tox.ini | 31 +- zuul.d/jobs.yaml | 134 +- zuul.d/projects.yaml | 46 +- 448 files changed, 20503 insertions(+), 7516 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 050e01d5..2f4f194f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8 +8 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 -SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT +SQLAlchemy>=1.2.19 # MIT @@ -10 +9,0 @@ SQLAlchemy-Utils>=0.30.11 -Babel!=2.4.0,>=2.3.4 # BSD @@ -21 +20 @@ oslo.context>=2.19.2 # Apache-2.0 -oslo.db>=4.27.0 # Apache-2.0 +oslo.db[mysql]>=8.3.0 # Apache-2.0 @@ -24 +23 @@ oslo.log>=3.36.0 # Apache-2.0 -oslo.messaging>=6.3.0 # Apache-2.0 +oslo.messaging>=12.4.0 # Apache-2.0 @@ -33 +31,0 @@ pyasn1-modules>=0.0.6 # BSD -PyMySQL>=0.7.6 # MIT License @@ -38 +36 @@ python-cinderclient>=3.3.0 # Apache-2.0 -pyOpenSSL>=17.1.0 # Apache-2.0 +pyOpenSSL>=19.1.0 # Apache-2.0 @@ -41,2 +39 @@ Jinja2>=2.10 # BSD License (3 clause) -taskflow>=4.1.0 # Apache-2.0 -diskimage-builder>=2.24.0 # Apache-2.0 +taskflow>=4.4.0 # Apache-2.0 @@ -46,3 +43,2 @@ distro>=1.2.0 # Apache-2.0 -jsonschema>=2.6.0 # MIT -debtcollector>=1.19.0 # Apache-2.0 -octavia-lib>=2.0.0 # Apache-2.0 +jsonschema>=3.2.0 # MIT +octavia-lib>=2.2.0 # Apache-2.0 @@ -51,0 +48 @@ setproctitle>=1.1.10 # BSD +python-dateutil>=2.7.0 # BSD @@ -55,3 +52,2 @@ Flask!=0.11,>=0.10 # BSD -netifaces>=0.10.4 # MIT -cryptography>=2.1 # BSD/Apache-2.0 -pyroute2>=0.4.21;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) +cryptography>=3.0 # BSD/Apache-2.0 +pyroute2>=0.5.14;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) diff --git a/test-requirements.txt b/test-requirements.txt index 7d827764..9231bb60 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -20 +20 @@ tempest>=17.1.0 # Apache-2.0 -sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD +sphinx>=2.0.0,!=2.1.0 # BSD
participants (1)
-
no-reply@openstack.org