We are tickled pink to announce the release of: neutron-lbaas 9.0.0: OpenStack Networking Load Balancing as a Service This release is part of the newton release series. For more details, please see below. 9.0.0 ^^^^^ LBaaS API v1 has been removed. Do not upgrade before migrating to LBaaS API v2. New Features ************ * Adds support for creating a loadbalancer with a Neutron network id. * Adds an optional "vip_network_id" attribute when creating a loadbalancer. * When creating a loadbalancer, "vip_subnet_id" is optional if a "vip_network_id" is proviced. * If "vip_network_id" is provided the vip will be allocated on a subnet with an available address. An IPv4 subnet will be chosen if possible. * LBaaS API v1 has been removed. Upgrade Notes ************* * MUST migrate to LBaaS v2 before upgrading. Critical Issues *************** * LBaaS API v1 has been removed. Changes in neutron-lbaas 8.0.0.0rc1..9.0.0 ------------------------------------------ 1395f32 Updated from global requirements 10d8a18 Switch upper-constraints and tox_install.sh to stable/newton b5b3bca Update .gitreview for stable/newton 4455759 Allow creating loadbalancer with network_id 7bac9ae Tag the alembic migration revisions for Newton c46100f Expect project_id in API calls 195d3a6 Restore haproxy driver config unit tests d27e842 Update quota tests to register quota resources 00ec2bb Updated from global requirements 7c58e70 Fix string interpolation LOG formatted 1860f20 Enable kvm for neutron-lbaas/Octavia gates d580423 Add special handling for functional tests 30ea768 Use temporary directory for neutron install 2d6ac63 Updated from global requirements b4a3dbe Remove config import unused 4726a8b Cleanup imports in code b32df54 Reno for lbaas v1 removal 15e6936 Fix L7 Policy creation with Octavia driver 7aa3d9f Nuke lbaas v1 4ca423f Add the database v1 to v2 migration script in tools c5dd228 Change assertTrue(isinstance()) by optimal assert 8614790 Add retries upon db error for deleting vip_port 04650ce Updated from global requirements ed3a508 Constrain remaining tox targets 801a6c7 Fix SELECT FOR UPDATE error in postgresql 62e2d76 Remove temporary local HasTenant 56c7669 Allow setting "insecure" in neutron_lbaas.conf ab59666 Add missing "listener_id" attribute to L7 policy cba50ea Enable DeprecationWarning in test environments 78b90b2 Fix typo in the rest_client.py 5c0a688 Remove redundant listener existence check in create_l7policy 0ef9183 Remove internal function validate_integer already implemented in neutron-lib d8b4239 Adding UT for fix of bug 1554464 c5e16e2 Updated from global requirements 47047eb Updated from global requirements f9e791b Updated from global requirements b09d4d2 Delete the "self" when call "_set_degraded" function 60c1c94 Updating imports for services prov_config options c1c4739 Revert "haproxy ns driver: set global haproxy maxconn" d1c7ab6 Replace service type "LOADBALANCER" to "LOADBALANCERV2" 56de368 resource_cleanup method does not delete members 5e31c47 Updated from global requirements 10ecdc8 Add python 3 classifiers 32631f2 devstack: Remove q-lbaasv1 alias e415521 gate_hook: Enable q-lbaas explicitly 9356005 Enable removal of SSL/TLS reference on listener 4cf5d90 Revert "Implements ProcessMonitor in the haproxy driver" e19acae Add integer validation to weight 56795d7 Implements ProcessMonitor in the haproxy driver 0284ff9 Use "--pub-key" instead of "--pub_key" f3e9f0a Fix deprecation warning for multiple context managers part 2 ebaf75b Fix deprecation warning for multiple context managers b0e2085 Use neutron-lib exceptions 56b8a62 haproxy ns driver: set global haproxy maxconn 5048301 Use validators from neutron-lib 70ee41a Correct reraising of exception fb3e6fa Rename DB columns: tenant -> project 54bee20 Use neutron-lib converters feb2ceb Updated from global requirements ad051d6 Driver exceptions overriden by plugin f38b6fa remove unused LOG 5f1127f Removing deprecated quota_items config from tests 7f87f63 Allow tox to be run with python 3 2317364 Set up hooks for the functional job and add test_migrations test b28e049 Fix tempest scenario tests 19510a6 Updated from global requirements e22d200 Add Health Monitor Max Retries Down b5b46ac Use tempest.lib tenants_client bcd0ba3 Remove tempest-lib from test-requirements.txt 9e94d00 Fix LBaaS gate 4ab2f6f Replace old_lb to old_pool in function delete_pool 95942e4 Fix typo on message 7d17f14 Updated from global requirements 3d837ba Fix broken tests. c8a3d8d Updated from global requirements 1110a93 Updating devstack plugin to filter for specific backport ubuntu versions 8f979c4 Updated from global requirements 053d567 Fix subunit trace help 60a625b Use constants from neutron-lib 2f6cd86 Add in missing translation for exception b68c0e2 Refactor gate hooks 4b0dba3 Replace auth_uri option with auth_url in DevStack plugin 41d8f25 Skip the check _check_pool_loadbalancer_match in one condition 0c62695 Remove unused POT file 0f8faac Fix hard-coding of trusty in devstack plugin.sh 41ec2ff Fix test assumptions about IP allocation 58fe349 Preventing listener deletion if it has l7 policy 419915f Updated from global requirements 81e2f5c Remove check_i18n files 0ec8c1c Validate that subnet exists before adding member to pool 42dd67f Updated from global requirements 5cca972 Add agent haproxy driver setup in README.md 4effc9b Preventing pool deletion if pool has healthmonitor d693e6e Add cryptography>=1.0 to requirements.txt 4389ffc Remove repeat call to 'neutron_agent_lbaas_install_agent_packages' f271c8c Fix no such option defined for service_auth d818279 Use --subproject instead of deprecated --service option 55be572 Fixing creation of shared pool eafbfd2 Get Me A LB 69580fa Add neutron-lbaas-dashboard devstack guide in README.md 7dd850d Neutron-LBaaSv2: Shared Pools Scenario Test 9fe9b9e Neutron LBaaS Deprecation Update 0e1df3a Updated from global requirements 25caf6d Updated from global requirements 0b6a3fb Neutron-LBaaS: Fix network_resources path d3820d7 Fixing tests to proper compare dicts. afe44a2 Neutron_LBaaSv2: Update Session Persistence Bug 509fa6d Neutron-LBaaS: Update/Delete Pools Admin Tests c304a53 Neutron-LBaaS: Update/Delete LB Admin Tests 7529338 LBaaS V1 Log error instead of exception 4b68589 Updated port validation to not allow port 0 7752cd1 Switch to using hacking checks from neutron-lib ecbeb82 Updated from global requirements b5c717a Finish to port unit tests to Python 3 06b4036 Port test_db_loadbalancer to Python 3 270ec22 Port even more service tests to Python 3 08e0a0a Port more service unit tests to Python 3 d927195 Port more unit tests to Python 3 c5cbd39 Fix test_quotas 5bcc99d correct tox.ini for coverage 63f4bac Set HTTP status code to 409 for LBs in PENDING* e866e9f Updated from global requirements aa2ae60 Updated from global requirements 94213af Neutron-LBaaS: Updated Incorrect Comments 445e5c9 Don't use zuul-cloner in venv env, for periodic jobs 6357626 Fix doc build if git is absent 64c3e05 Avoid unnecessary debug string evaluation d60f40a Port agent_manager to Python 3 1f55700 Port test_agent and test_agent_api to Python 3 4d93cf3 Port cert_parser to Python 3 5f6794b Put sanity back into lbaas jobs 8fd0466 Move away from locally installed packages 50152db Updated from global requirements 1c9ae7c Fix multiple job failures 19b18f0 Constraint requirements using mitaka upper-constraints.txt file f826804 Update reno for stable/mitaka 2464485 Update devstack plugin for dependent packages eb7a4d4 Update devstack plugin for dependent packages 4075e1c Update .gitreview for stable/mitaka 761b977 correct tox.ini for coverage c1718c6 Add a whitelist of tests passing on Python 3 9a5dcab py3: Replace dict.iteritems() with dict.items() bfbdc32 py3: Use six.moves for import modules fee6177 Fix Python 3 issues f8c6916 Translation: create the locale directory 3f7593e Do not consider listeners without default pool 8d3dd9c Add support for Guru Meditation Reports for LBaaS agents 9fd36c7 Adding releasenotes for shared-pools and L7 Diffstat (except docs and test files) ------------------------------------- .gitreview | 1 + devstack/README.md | 36 +- devstack/files/debs/neutron-lbaas | 1 + devstack/plugin.sh | 77 +- devstack/samples/local.sh | 2 +- devstack/settings | 9 +- neutron_lbaas/agent/agent.py | 4 - neutron_lbaas/agent/agent_manager.py | 3 +- neutron_lbaas/cmd/__init__.py | 29 + neutron_lbaas/cmd/lbaasv2_agent.py | 17 + neutron_lbaas/common/cert_manager/cert_manager.py | 2 + neutron_lbaas/common/keystone.py | 10 +- neutron_lbaas/common/tls_utils/cert_parser.py | 23 +- neutron_lbaas/db/loadbalancer/loadbalancer_db.py | 868 ---------- neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py | 208 ++- neutron_lbaas/db/loadbalancer/models.py | 17 +- .../db/migration/alembic_migrations/env.py | 16 +- .../alembic_migrations/versions/CONTRACT_HEAD | 2 +- .../alembic_migrations/versions/EXPAND_HEAD | 2 +- .../4b4dc6d5d843_rename_tenant_to_project.py | 158 ++ .../newton/contract/e6417a8b114d_drop_v1_tables.py | 47 + ...352f9fe6f_add_healthmonitor_max_retries_down.py | 41 + neutron_lbaas/db/models/head.py | 2 +- neutron_lbaas/drivers/driver_base.py | 25 +- neutron_lbaas/drivers/driver_mixins.py | 71 +- neutron_lbaas/drivers/f5/__init__.py | 0 neutron_lbaas/drivers/f5/driver_v2.py | 130 ++ neutron_lbaas/drivers/haproxy/jinja_cfg.py | 396 +++++ neutron_lbaas/drivers/haproxy/namespace_driver.py | 30 +- .../haproxy/templates/haproxy.loadbalancer.j2 | 29 + .../drivers/haproxy/templates/haproxy_base.j2 | 33 + .../drivers/haproxy/templates/haproxy_proxies.j2 | 94 ++ neutron_lbaas/drivers/logging_noop/driver.py | 8 + .../drivers/netscaler/netscaler_driver_v2.py | 20 +- neutron_lbaas/drivers/octavia/driver.py | 216 ++- .../drivers/octavia/octavia_messaging_consumer.py | 1 + neutron_lbaas/drivers/radware/rest_client.py | 13 +- neutron_lbaas/drivers/radware/v2_driver.py | 13 +- neutron_lbaas/drivers/vmware/edge_driver_v2.py | 3 - .../extensions/healthmonitor_max_retries_down.py | 59 + neutron_lbaas/extensions/l7.py | 12 +- neutron_lbaas/extensions/lb_graph.py | 126 ++ neutron_lbaas/extensions/lb_network_vip.py | 62 + neutron_lbaas/extensions/lbaas_agentscheduler.py | 138 -- neutron_lbaas/extensions/lbaas_agentschedulerv2.py | 8 +- neutron_lbaas/extensions/loadbalancer.py | 521 ------ neutron_lbaas/extensions/loadbalancerv2.py | 56 +- neutron_lbaas/opts.py | 27 +- .../services/loadbalancer/agent/__init__.py | 0 neutron_lbaas/services/loadbalancer/agent/agent.py | 68 - .../services/loadbalancer/agent/agent_api.py | 68 - .../loadbalancer/agent/agent_device_driver.py | 96 -- .../services/loadbalancer/agent/agent_manager.py | 347 ---- .../services/loadbalancer/agent_scheduler.py | 164 -- neutron_lbaas/services/loadbalancer/constants.py | 4 - neutron_lbaas/services/loadbalancer/data_models.py | 104 +- .../services/loadbalancer/drivers/__init__.py | 0 .../loadbalancer/drivers/a10networks/README.txt | 48 - .../loadbalancer/drivers/a10networks/__init__.py | 0 .../loadbalancer/drivers/a10networks/driver_v1.py | 176 --- .../loadbalancer/drivers/abstract_driver.py | 134 -- .../loadbalancer/drivers/common/__init__.py | 0 .../drivers/common/agent_driver_base.py | 444 ------ .../loadbalancer/drivers/haproxy/__init__.py | 0 .../services/loadbalancer/drivers/haproxy/cfg.py | 240 --- .../loadbalancer/drivers/haproxy/jinja_cfg.py | 396 ----- .../drivers/haproxy/namespace_driver.py | 422 ----- .../loadbalancer/drivers/haproxy/plugin_driver.py | 23 - .../haproxy/synchronous_namespace_driver.py | 27 - .../haproxy/templates/haproxy.loadbalancer.j2 | 29 - .../drivers/haproxy/templates/haproxy_base.j2 | 33 - .../drivers/haproxy/templates/haproxy_proxies.j2 | 94 -- .../loadbalancer/drivers/logging_noop/__init__.py | 23 - .../loadbalancer/drivers/netscaler/__init__.py | 0 .../loadbalancer/drivers/netscaler/ncc_client.py | 255 --- .../drivers/netscaler/netscaler_driver.py | 469 ------ .../loadbalancer/drivers/radware/__init__.py | 0 .../loadbalancer/drivers/radware/driver.py | 1114 ------------- .../loadbalancer/drivers/radware/exceptions.py | 42 - .../loadbalancer/drivers/vmware/__init__.py | 0 .../services/loadbalancer/drivers/vmware/db.py | 99 -- .../loadbalancer/drivers/vmware/edge_driver.py | 207 --- .../services/loadbalancer/drivers/vmware/models.py | 57 - neutron_lbaas/services/loadbalancer/plugin.py | 530 +++---- .../v1/api/admin/test_lbaas_agent_scheduler.py | 75 - .../api/admin/test_load_balancer_admin_actions.py | 117 -- .../v2/api/test_health_monitors_non_admin.py | 10 +- .../tempest/v2/api/test_listeners_non_admin.py | 3 - .../tempest/v2/api/test_load_balancers_admin.py | 83 +- .../v2/api/test_load_balancers_non_admin.py | 7 +- .../barbican_auth/test_barbican_acl.py | 2 +- .../unit/db/loadbalancer/test_db_loadbalancer.py | 1660 -------------------- .../unit/db/loadbalancer/test_db_loadbalancerv2.py | 1157 ++++++++++---- .../unit/drivers/common/test_agent_driver_base.py | 9 +- .../drivers/haproxy/sample_configs/__init__.py | 0 .../haproxy/sample_configs/sample_configs.py | 294 ++++ .../unit/drivers/haproxy/test_namespace_driver.py | 12 +- .../logging_noop/test_logging_noop_driver.py | 4 +- .../unit/drivers/octavia/test_octavia_driver.py | 151 +- .../unit/drivers/radware/test_v2_plugin_driver.py | 1025 ++++++------ .../unit/drivers/vmware/test_edge_driver_v2.py | 4 +- .../unit/services/loadbalancer/agent/__init__.py | 0 .../unit/services/loadbalancer/agent/test_agent.py | 47 - .../loadbalancer/agent/test_agent_manager.py | 446 ------ .../unit/services/loadbalancer/agent/test_api.py | 81 - .../unit/services/loadbalancer/drivers/__init__.py | 0 .../loadbalancer/drivers/a10networks/__init__.py | 0 .../drivers/a10networks/test_driver_v1.py | 180 --- .../loadbalancer/drivers/haproxy/__init__.py | 0 .../drivers/haproxy/sample_configs/__init__.py | 0 .../haproxy/sample_configs/sample_configs.py | 294 ---- .../loadbalancer/drivers/haproxy/test_cfg.py | 236 --- .../loadbalancer/drivers/haproxy/test_jinja_cfg.py | 497 ------ .../drivers/haproxy/test_namespace_driver.py | 596 ------- .../loadbalancer/drivers/netscaler/__init__.py | 0 .../drivers/netscaler/test_ncc_client.py | 215 --- .../drivers/netscaler/test_netscaler_driver.py | 803 ---------- .../loadbalancer/drivers/radware/__init__.py | 0 .../drivers/radware/test_plugin_driver.py | 998 ------------ .../loadbalancer/drivers/test_agent_driver_base.py | 749 --------- .../loadbalancer/drivers/test_driver_base.py | 160 -- .../loadbalancer/drivers/vmware/__init__.py | 0 .../drivers/vmware/test_edge_driver.py | 502 ------ .../services/loadbalancer/test_agent_scheduler.py | 224 --- .../loadbalancer/test_loadbalancer_plugin.py | 580 ++----- .../loadbalancer/test_loadbalancer_quota_ext.py | 33 +- ...create-lb-with-network-id-dba0a71878942af7.yaml | 14 + ...-and-shared-pools-support-0e181d9b2383db16.yaml | 40 + releasenotes/notes/remove-v1-c298484337ff1595.yaml | 10 + releasenotes/source/index.rst | 1 + releasenotes/source/mitaka.rst | 6 + requirements.txt | 26 +- setup.cfg | 16 +- test-requirements.txt | 16 +- tools/check_i18n.py | 153 -- tools/check_i18n_test_case.txt | 67 - tools/configure_for_lbaas_func_testing.sh | 51 + tools/database-migration-from-v1-to-v2.py | 547 +++++++ tools/i18n_cfg.py | 97 -- tools/subunit-trace.py | 2 +- tools/tox_install.sh | 39 +- tox.ini | 68 +- 174 files changed, 5835 insertions(+), 18391 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index a591490..74be583 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,3 +7,3 @@ eventlet!=0.18.3,>=0.18.2 # MIT -requests!=2.9.0,>=2.8.1 # Apache-2.0 -netaddr!=0.7.16,>=0.7.12 # BSD -neutron-lib>=0.0.1 # Apache-2.0 +requests>=2.10.0 # Apache-2.0 +netaddr!=0.7.16,>=0.7.13 # BSD +neutron-lib>=0.4.0 # Apache-2.0 @@ -11 +11 @@ SQLAlchemy<1.1.0,>=1.0.10 # MIT -alembic>=0.8.0 # MIT +alembic>=0.8.4 # MIT @@ -13,2 +13,2 @@ six>=1.9.0 # MIT -oslo.config>=3.7.0 # Apache-2.0 -oslo.db>=4.1.0 # Apache-2.0 +oslo.config>=3.14.0 # Apache-2.0 +oslo.db!=4.13.1,!=4.13.2,>=4.10.0 # Apache-2.0 @@ -16 +16,2 @@ oslo.log>=1.14.0 # Apache-2.0 -oslo.messaging>=4.0.0 # Apache-2.0 +oslo.messaging>=5.2.0 # Apache-2.0 +oslo.reports>=0.6.0 # Apache-2.0 @@ -18,3 +19,3 @@ oslo.serialization>=1.10.0 # Apache-2.0 -oslo.service>=1.0.0 # Apache-2.0 -oslo.utils>=3.5.0 # Apache-2.0 -python-barbicanclient>=3.3.0 # Apache-2.0 +oslo.service>=1.10.0 # Apache-2.0 +oslo.utils>=3.16.0 # Apache-2.0 +python-barbicanclient>=4.0.0 # Apache-2.0 @@ -24,2 +25,3 @@ pyOpenSSL>=0.14 # Apache-2.0 -stevedore>=1.5.0 # Apache-2.0 -keystoneauth1>=2.1.0 # Apache-2.0 +stevedore>=1.16.0 # Apache-2.0 +cryptography!=1.3.0,>=1.0 # BSD/Apache-2.0 +keystoneauth1>=2.10.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 68c50a0..3cdcdad 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -7,2 +7,2 @@ coverage>=3.6 # Apache-2.0 -fixtures>=1.3.1 # Apache-2.0/BSD -mock>=1.2 # BSD +fixtures>=3.0.0 # Apache-2.0/BSD +mock>=2.0 # BSD @@ -10,2 +10,2 @@ python-subunit>=0.0.18 # Apache-2.0/BSD -requests-mock>=0.7.0 # Apache-2.0 -sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD +requests-mock>=1.0 # Apache-2.0 +sphinx!=1.3b1,<1.3,>=1.2.1 # BSD @@ -13 +13 @@ oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 -oslo.concurrency>=3.5.0 # Apache-2.0 +oslo.concurrency>=3.8.0 # Apache-2.0 @@ -15 +14,0 @@ oslotest>=1.10.0 # Apache-2.0 -tempest-lib>=0.14.0 # Apache-2.0 @@ -22,3 +21,2 @@ WebTest>=2.0 # MIT -reno>=0.1.1 # Apache2 -# Needed to run DB commands in virtualenvs -PyMySQL>=0.6.2 # MIT License +reno>=1.8.0 # Apache2 +tempest>=12.1.0 # Apache-2.0