We are ecstatic to announce the release of: neutron 17.0.0: OpenStack Networking This release is part of the victoria release series. The source is available from: https://opendev.org/openstack/neutron Download the package from: https://tarballs.openstack.org/neutron/ Please report issues through: https://bugs.launchpad.net/neutron/+bugs For more details, please see below. Changes in neutron 16.0.0.0rc1..17.0.0 -------------------------------------- 0562335908 Fix dhcp_release when client_id is specified 341401d916 Add source_ip_prefix and destination_ip_prefix to metering label rules f25f05959a [OVN] update_port should not remove values from external_ids a88f5438b9 Migrate tempest jobs to Focal 685903e099 Update TOX_CONSTRAINTS_FILE for stable/victoria d861efcd92 Update .gitreview for stable/victoria 0817c42799 ovn: Document gap about IPv6 PD in OVN 0a785e90c3 [OVN] Fix get/update/delete of non-OVN agents 2a12737d18 [OVN] Zuul: Copy OVSDB logs and DBs 4b89e87959 [ovn]: Use assertCountEqual instead of assertEqual when appropriate f2643f27fb [OVN] Fix test_add_interface_in_use negative test 7e116fe70e Revert "Updating the pecan version requirement" 3cae952b72 [OVN] Updates to tools/migrate_names.txt a1d89e6f0e Remove install unnecessary packages 53625d0bcc Bump neutron-lib version to 2.6.0 4b30dc2330 ovn migration: Fix neutron server container name f3a8e1547d [OVN][OVS] Different metadata_workers default based on driver a84462f698 ovn: Always use UTC for Hash ring timestamps db4ff00175 Bump eventlet/oslo.messaging requirements d4ae3f75a5 Change "propagate_uplink_status" default value to True 1d13b20c94 [OVN] Updates to tools/migrate_names.txt 3f30727c0a Use metadata constants from n-lib bd1467b47c Granular metering data in neutron-metering-agent 30747a5aac Revert "Squash alchemy Liberty branch" 0c6ea20ba5 [ovn]: port forwarding -- move documentation to better place 0deec6621e [ovn]: port forwarding -- functional tests for maintenance task 7f494fa3ae Show cmd detail when execute linux command failed 4216e43f96 [OVN] Do not fail to when deleting PG if it's already gone 6fc24afd9a Use MagicMock for Connection object 72b3fc5745 Move pylint disable comment to an effective place ca36dbde10 Rename networking-ovn-metadata-agent to neutron-ovn-metadata-agent 40918cdb9b [OVN] Gap: Add QoS minimum bandwidth allocation in Placement API a818c41c25 metadata-ipv6: Accept link local address in X-Forwarded-For a1f4ee3ade metadata-ipv6: Router namespace a0b18d553d metadata-ipv6: DHCP namespace 5a39be9cb8 Fix R1720 pylint error in test_utils 827c5878d3 Simplify OVN Agent API implementation b64a9c177f Force ncat install for functional/fullstack jobs e1582e39a1 Don't directly access the in-memory DB for NB_Global row 3ae3c080db Disable "no-value-for-parameter" pep8 error in DictModel eafa4ae6c8 Switch to new enginefacade in uplink_status_propagation UT module 5b4630913e Switch to new engine facade in OVN trunk driver module 671c3978a1 Bump some lower constraints for Focal migration 513c3652b4 Update IPv6 Prefix Delegation docs 68ec29abf0 [OVN] Use the OVN DevStack module a08893368a Don't raise FileNotFoundError during disabling keepalived 7fd2725cb1 Do not skip ports with ofport unset or invalid a4e04a7f8b Fix get_ipv6_llas method in the interface driver 81d375d39a Handle properly existing LLA address during l3 agent restart 1dddbbfc92 [OVN] Use the Chassis_Private table for agents healthcheck 13b894288e Fix deletion of subnet_id from pd_subnets 055036ba2b Improve terminology in the Neutron tree b0c6cb35e7 Announce deprecation of `remote_ip_prefix` in metering label rules ee50f7cfcf Raise minimal greenlet version 5eca44bfa8 Ensure fip ip rules deleted when fip removed 6a9fce39d6 "round" may bump 1 second to 2 if sleep takes more than 1.49 sec 7abe0ee34c Add 'keepalived_use_no_track' config option dd20cab371 Support Address Group CRUD as extensions 361b485318 [ovn]: port forwarding -- feature support under ovn_db_sync 7f551db9be [OVN] Update sample local.conf to support segments 3000f3c541 Promote -uwsgi jobs to be gating 95247da614 Bump neutron-lib version to 2.5.0 d74f409c82 [ovn]: port forwarding -- core changes e92193d246 Updating the pecan version requirement cc54a1c38e Fix port can not be created with the sg of other project 5f9b5dd861 port_forwarding: validate args before invoking db update (cont.) cebdd77af8 Bump pylint version to support python 3.8 4ad21fd23a migration: Restart OVS after setting protocols e5ce193189 Support pyroute2 0.5.13 31a95c085f Use ebtables-legacy on Ubuntu Focal ce1eebbf57 Bump oslo.privsep to 2.3.0 63322d12e4 Add "neutron" devstack plugin to all tempest jobs c9242f9a88 Allow RBAC on Neutron quotas 6723f4a485 Clean up some of the OVN agent API methods 38c7fd7cef Fix validation of IPv6 subnets with external RAs 605de6d968 [ovn]: port forwarding -- Functional test for IDL changes 68e5e1b8fe Specify C shared library in Pyroute2 namespace context 0c55ab9c78 [Functional] Add logging to the check test file function 17f2ba3afb [ovn] Use normalized remote prefix IPs in OVN driver e2060a2f0b [ovn]: port forwarding -- documentation ddd5832323 Remove "six" library fc5a8ee1b8 Use "replace" to remove a section of a string 3bc718e1a0 Change some tempest tests to explicitly use ML2/OVS 2172f19e76 [Trivial]Add missing space between words 597bb0d187 [ovn]: port forwarding -- IDL changes 6da9936814 Remove "vf_management" and "vf_extended_management" checks d0c9cc4c8f Remove DbBasePluginCommon._get_subnet unused method fe440bdd6b [ovn]: gracefully handle logical switch ports with tag set to None 8c4b23f812 [OVN] Extra DHCP options validation: Log invalid options b11dd3836e Remove some unnecessary usages of verify() afd63d0b36 ovn migration: Support stack name 164755264b [OVN] Bump OVN version to v20.06.1 8d1512afb0 [OVN] Allow IP allocation with different segments for OVN service ports 294720fcd2 Fix neutron-ovn-tempest-ovs-master-fedora job 9df1ca82c5 [OVN] Add segments to ML2_SUPPORTED_API_EXTENSIONS ccbebfeacc [OVN] Fix logic issue while deleting port with QoS a418d55bc2 ovn-migration-mtu: Support migrating MTU of GRE networks c6574321ba ovn-migration-mtu: Support providing project/user domain by name f0be5f1a83 Squash alchemy Liberty branch bc99e56515 Import "oslo_config.cfg" before "eventlet" 0eebd002cc [OVS][FW] Remote SG IDs left behind when a SG is removed f379740348 port_forwarding: validate args before invoking db update 39ac4247c5 Remove timecost profiling for port get_objects de4c10882f Set OVS manager command timeout and inactiviy probe e7df43395c [OVN] DevStack: Make the transition of DevStack module easier 61bf68de31 [ovn]: port forwarding -- extend support for OVN usage (cont.) c1a77ef8b7 Ensure drop flows on br-int at agent startup for DVR too 7a56b8f3bc String to byte conversion should provide the encoding type 7ebd1d16eb Install python-openvswitch from PyPI using requirements 57f89ae777 Stop disabling peakmem_tracker 554b5c2267 Support gateway which is not in subnet CIDR in ha_router 622714b63e Optionally use admin powers when deleting DNS records 34b6833caa Remove tempest-integrated-networking job from neutron queue b2b40b6a8c [OVN] Use new distributed device_owner for OVN distributed services da45bbbff4 Auto-delete dhcp ports on segment delete a3ecaf6a10 Better document router requirements for IPv6 5a0693da8d Increase singlenode tempest jobs' timeout to 10800 seconds db6ebd22e1 Update cirros image to cirros-0.5.1-x86_64 globally 193df8279d [OVN] Stop using neutron_tempest_plugin in OVN singlenode job fb2806f808 [OVN] Unify OVN/OVS compilation 7a427bcd2a Remove _router_exists method b52e2e6f16 Migrate "ethtool" to oslo.privsep 38286dbd2e [DVR] Related routers should be included if are requested 75970c4cda Fix pep8 job f43f5dc64f Use network.external DB model parameter when creating a floating IP 24b379ad4d Implement "BridgeDevice" with Pyroute2 6fa6e4135c Relocate _delete_expired_default_network_segment_ranges 528e0d382e [OVN] Fix devstack module for OpenSuse aa6491a9d9 migration: Use ansible-inventory to parse tripleo inventory 8dee0d9a4e [L3] Delete DvrFipGatewayPortAgentBindings after no gw ports 5ce0595803 Set process name for agents 0ffaac1db2 Use the correct value for the DHCP client port number 206ce24676 [OVN] Allow use of ovn-sync mechanism driver 4c04e60d45 Config privsep in the macvtap agent ebd5480e90 Fix metadata address usage 598e0376c6 [OVN] Wait for WaitForDataPathBindingCreateEvent event in functional tests 3ac63422ea Improve log message when port losts its vlan tag e94511cd25 Add config option ``http_retries`` 72d95d40d4 Provide integer number to arping "-w" parameter 3754bba806 Validate that snat namespace exits in _create_dvr_gateway 58d1d0dbdd [OVN] Fix db-sync-util Traceback when port security not enabled 0e597a36d3 ovn-migration: Remove docker references e661a6b641 [OVN] rename get_port_groups to get_sg_port_groups 72f39226e0 Update neutron-dynamic-routing lieutenants 2bb514f2d7 L3 agent scheduler should return a valid index if manual scheduling f14a1b332d [OVN] Add router availability zones documentation fb44416c05 Deprecate use_veth_interconnection config option 1e9a3bffd2 [Fullstack] SG test - first wait until all vms can ping each other a42d0d0301 Trivial: Change Health-check from filter to app_factory d669dff1dc [OVN] Add support for router availability zones ed56429548 DhcpFilter should always return a valid index if "force_scheduling" b64d934964 Stop installing Octavia in OVN jobs e2d1c2869a [OVS] Make QoS OVS agent deletion operations more resilient 7019c5cf50 Make _ensure_default_security_group method atomic 56f519f472 [OVN] Load segments plugin in case not loaded in maintanance task c646978f1b Add singlenode tempest job with neutron-lib from master branch 0f4db58773 Enable bridge debugging services on the tempest and grenade jobs e3e1d994d8 [OVN] Updates to tools/migrate_names.txt 94d6e38fa0 Fix the wrong value for QoS rate conversion to bytes/s 5fdfd4cbfc [L3] Check agent gateway port robustly e09d4d6dd0 [OVN] Avoid unnecessary DB writes during agent liveness check 0c1818fbb0 Migrate "netstat" to oslo.privsep 86e90bfce2 Add ensure-tox in functional job 2592fdb584 Move "get_cdll" to a common place in privileged.agent.linux d086058895 ovn: Use newer OVS b2748250f1 Remove unneeded argment in "_read_leases_file_leases" 8eb4955bb6 Fixes dnsmasq host file parsing with "addr6_list" 90212b12cd Do not block connection between br-int and br-phys on startup 8c3441e856 Change service_plugins documentation in QoS to steevedore entries 3df1679658 Use unittest.mock instead of mock 8913461aa9 Refactor assertEqual statement that includes 'True' 954f2f28da Configure privsep in SR-IOV agent 4d198aa68c Use correct device_owner prefix in functional tests 26f6b90930 [OVN] OVN driver to adapt to enable_distributed_floating_ip changes 397a5177bd Fix a typo in the OVN manual install guide 7143f2be1f Remove "find" rootwrap filter 96f3b37b43 Make neutron functional uwsgi jobs usable by other projects. e748f3f2d8 ovn: Remove UpdateACLsCommand b9c428a2db ovn: Add TODO to remove Port Groups migration d0daa49d6e [OVN] List a few missing feature parity gaps a83d1bf5ae Remove OVN floating IP deletion of associated LSP 9cbbd8de53 ovn: Remove is_port_groups_supported() code 998b22b383 Implement "RouterInfo.update_routing_table" with Pyroute2 483f468fdd [OVN] Create localnet port for each created segment e332054d63 Migrate "dhcp_release" to oslo.privsep eb46081150 port_forwarding: extend support for OVN usage (cont.) cd721a7dcb Make DVR router support FLAT network for ovs-agent 4be0baa8cd Bump oslo.log to version 4.2.1 795aa6b9fa Limit ml2_vlan_allocations.vlan_id value in DB backend ea13f2e83f Sync the dns-assignment with the actual designate dns-domain 559ae06bdf [OVN] Override notify_nova config in neutron-ovn-db-sync-util 236a0c4081 Stop to use the __future__ module. dc655cabcb Remove OVO unneeded compatibility conversions d8eac6fa50 Fix iptables rules comments e6023ecb48 [OVN] Don't set virtual port type on ports with similar addresses 178227c8b6 Make NeutronOvsdbIdl singleton d57735ae0f Fix Traceback when running neutron-ipset-cleanup tool 1a3811448d Bump oslo.log to version 4.1.2 edfe7daf04 No rpc_response_max_timeout in LB-agent 132261aa70 [OVN] Updates to tools/migrate_names.txt 0402337c15 Fix ssh to nodes during ML2/OVS to ML2/OVN migration a32464464d [OVN] Blacklist test_port_security_macspoofing_port test c5d8fd6329 Use pyroute2 for SRIOV VF commands 57fc472b33 Remove translation sections from setup.cfg 2a16944453 Mock command execution in "test_hybrid_plug_flag_based_on_firewall" UT 45482e300a Don't check if any bridges were recrected when OVS was restarted 91f0bf3c85 [DVR] Reconfigure re-created physical bridges for dvr routers bd5c98e25b Mock command execution in "test_iptables.TestHelper" UTs 60723a48f8 Remove unnecessary check if agent object from db is not None f6010f6042 [OVN] Enhance port's extra DHCP options support 7f40e626d6 Delete segment RPs when network is deleted e748e01656 [Fullstack] Mark security groups test as unstable dcd2e79c00 ovn: Fix use_new_ovn_repository ee47dd9770 All Neutron ML2 drivers use Allocation/Endpoints OVO 4f10c3bd3f Remove usage of six.text_type and six.string_type a2a2301675 Remove usage of six.PY2 08a60f7483 Remove usage of six.add_metaclass 231529e85f [OVN] DOC Migration Strategy: Adjust formatting in code-block f5c3910771 ovn: Override clean_hash_ring for sync util 8ddf794b8d ovn: Enable DVR for multinode jobs 2d1cd99311 [OVN][DOC] Update path to L3RouterPlugin 9b1ea6cd75 ovn: Enable debugging services on subnodes d46228b0b3 Switch to newer openstackdocstheme and reno versions 162c5572df Fix broken unit tests related to ovsdbapp indexing 8411bfb83a Promote functional uwsgi job to be voting 30d573d5ab Allow usage of legacy 3rd-party interface drivers 9760f123aa Catch additional invalid mock import statement 21405378f0 Fix neutron-ovn-db-sync-util issues a2561fa480 Add sg name in after delete event kwargs ccb0cddd4a Fix mock.patch.stopall issue with ovsdbapp 740ab628f4 Remove usage of the "firewall_driver" in the neutron server faead08d8f Fix neutron tests 63c45b3766 Ensure that stale flows are cleaned from phys_bridges 1f018514d7 Optimize QoS bound objects queries 4d5b9a62b9 ovn-migration: Stop ml2/ovs agents before installing OVN resources 9ae865a5b5 Add Rocky milestone tag for alembic migration revisions 52e3fee5ef Switch to hacking 3.0.1 0e8ebf133d Remove unneeded DB register retrieval and refresh in network update 0ba08d7eb4 Skip OVS module compilation for kernels newer than 5.5 09bf28aa88 Time port fetches c05bac8c40 Set class ovsdb_conection to None 0a4b95eec2 Fix some pep8 errors e0e3086b46 Default OVN_BRANCH and OVS_BRANCH to latest stable 8cfe41fa6b Add "qos_policy_id" field to "FloatingIP" OVO 11838a2bc5 Workaround for TCP checksum issue with ovs-dpdk and veth pair 102c442bcf port_forwarding: extend support for OVN usage ba16d2fc74 [ovn] devstack needs to support openflow15 f951871430 Use dhcp-host tag support when supported 8268222968 Update QoS docs with info about OVN driver c9eeb5debd [OVN] Bump up transaction timeout for functional tests 98b326f0e4 [ci] Fix several rally task arguments 8b234d8786 [OVN]: Make _delete_port() more error-resilent 18dd0d4e55 Fix ovn-db-sync-util after removing l3 ovsdb connection f1cc1bb281 [ovn]: Fix l3_plugin.add_router_interface to comply with RouterPluginBase 6b360d2343 Report L3 extensions enabled in the L3 agent's config 518b623d7e Open Victoria DB branch e4228cfa34 Add OSP16.1 choice to migration plugin spec bc2a23a36a Migrate neutron grenade jobs to be native Zuul v3 aae5d0a38a Imported Translations from Zanata 8b4ae58414 Add py38 package metadata ec7a5aa516 Monkey patch original current_thread _active 8126f88894 Complete removal of dependency on the "mock" package d7c23431ad [ovn]: Create neutron_pg_drop Port Group on init b8b7a73a95 Fix dhcpv6-statefull typo b522f7d726 Optimize subnet retrieval during CIDR validation f8718e9b23 Remove unused method "_make_fixed_ip_dict" 133200014b Add a /healthcheck URL d8ff7d58f2 [OVN] Documentation: SR-IOV guide for OVN 01b9e1106d Install "wmi" library in "win32" systems e53dd36498 migration: Use ForceNeutronDriverUpdate when migrating 76a2f8b33e [ovn] Add PortBinding delete event for external ports e07b6d8108 Revising log with wrong network_id when create port failed 76fa308ca9 ensure default security group exists when filter by project_id 7594bb0627 Remove the dependency on the "mock" package 4fb505891e Updates for python3.8 bfeb52b975 migration: Replace paunch with podman and ip commands 8ec41570a9 [OVN] Enable test_multicast_between_vms_on_same_network 591adfee97 [OVN][metadata] Adding ERROR trace upon unexpected data ef2260441d [OVN] Do not delete port's revision on RowNotFound 09ef333be3 Imported Translations from Zanata 12b9149e20 Not remove the running router when MQ is unreachable 783441ef1f Bump default tox env from py37 to py38 7f5772df61 Add Python3 victoria unit tests 09114ffda3 Update master for stable/ussuri 31fa9ada75 [OVN] Update sample local.conf to support QoS for OVN b02c09c332 Remove some native openflow driver 'deferred' code 94bb20fb65 Remove redundant implementation of "get_projects" in NetworkRBAC 7718cc0a6f Start ovs if ovn-northd is enabled 8fd3e884c7 windows: fix terminating processes 0493af3399 Add Octavia file in devstack/lib 08d0e6e734 Switch to new engine facade in revision plugin's UT f11707e180 Switch to new engine facade in ML2 unit tests modules Diffstat (except docs and test files) ------------------------------------- .gitreview | 1 + .pylintrc | 3 +- HACKING.rst | 3 + TESTING.rst | 18 +- babel.cfg | 2 - devstack/lib/octavia | 45 + devstack/lib/ovn_agent | 829 ------------------- devstack/lib/ovs | 65 +- devstack/ovn-compute-local.conf.sample | 6 +- devstack/ovn-local.conf.sample | 20 +- devstack/ovn-vtep-local.conf.sample | 6 +- devstack/plugin.sh | 32 +- .../contributor/internals/openvswitch_agent.rst | 2 +- .../internals/ovn/acl_optimizations.rst | 186 ----- .../internals/ovn/l3_ha_rescheduling.rst | 28 +- .../contributor/internals/ovn/port_forwarding.rst | 106 +++ .../contributor/testing/ci_scenario_jobs.rst | 19 +- etc/api-paste.ini | 6 + etc/neutron/rootwrap.d/dhcp.filters | 3 - etc/neutron/rootwrap.d/l3.filters | 1 + etc/neutron/rootwrap.d/netns-cleanup.filters | 12 - lower-constraints.txt | 55 +- neutron/__init__.py | 10 +- neutron/agent/common/async_process.py | 3 +- neutron/agent/common/ovs_lib.py | 64 +- neutron/agent/common/resource_processing_queue.py | 36 +- neutron/agent/dhcp/agent.py | 63 +- neutron/agent/dhcp_agent.py | 3 +- neutron/agent/firewall.py | 5 +- neutron/agent/l2/extensions/fdb_population.py | 4 +- neutron/agent/l2/extensions/qos.py | 4 +- neutron/agent/l3/agent.py | 8 +- neutron/agent/l3/dvr_edge_ha_router.py | 4 +- neutron/agent/l3/dvr_edge_router.py | 10 +- neutron/agent/l3/dvr_fip_ns.py | 3 + neutron/agent/l3/dvr_local_router.py | 30 +- neutron/agent/l3/ha.py | 32 +- neutron/agent/l3/ha_router.py | 51 +- neutron/agent/l3/keepalived_state_change.py | 9 +- neutron/agent/l3/router_info.py | 38 +- neutron/agent/l3_agent.py | 3 +- neutron/agent/linux/bridge_lib.py | 48 +- neutron/agent/linux/daemon.py | 3 +- neutron/agent/linux/dhcp.py | 172 ++-- neutron/agent/linux/dibbler.py | 6 +- neutron/agent/linux/external_process.py | 4 +- neutron/agent/linux/interface.py | 35 +- neutron/agent/linux/ip_lib.py | 30 +- neutron/agent/linux/ip_link_support.py | 108 --- neutron/agent/linux/iptables_firewall.py | 31 +- neutron/agent/linux/iptables_manager.py | 7 +- neutron/agent/linux/keepalived.py | 15 +- neutron/agent/linux/l3_tc_lib.py | 4 +- .../agent/linux/openvswitch_firewall/firewall.py | 152 +++- .../agent/linux/openvswitch_firewall/iptables.py | 1 + neutron/agent/linux/pd.py | 72 +- neutron/agent/linux/pd_driver.py | 5 +- neutron/agent/linux/ra.py | 7 +- neutron/agent/linux/tc_lib.py | 28 +- neutron/agent/linux/utils.py | 4 +- neutron/agent/metadata/agent.py | 72 +- neutron/agent/metadata/driver.py | 69 +- neutron/agent/ovn/metadata/agent.py | 88 +- neutron/agent/ovn/metadata/ovsdb.py | 6 +- neutron/agent/ovn/metadata/server.py | 29 +- neutron/agent/ovsdb/impl_idl.py | 4 +- neutron/agent/ovsdb/native/connection.py | 2 +- neutron/agent/ovsdb/native/helpers.py | 11 +- neutron/agent/securitygroups_rpc.py | 2 + neutron/agent/windows/utils.py | 19 +- neutron/api/api_common.py | 2 +- neutron/api/extensions.py | 15 +- neutron/api/rpc/callbacks/resource_manager.py | 4 +- neutron/api/rpc/handlers/securitygroups_rpc.py | 2 +- neutron/cmd/eventlet/agents/dhcp.py | 7 + neutron/cmd/eventlet/agents/l3.py | 7 + neutron/cmd/eventlet/agents/metadata.py | 7 + neutron/cmd/eventlet/agents/ovn_metadata.py | 7 + .../eventlet/plugins/linuxbridge_neutron_agent.py | 7 + .../cmd/eventlet/plugins/macvtap_neutron_agent.py | 7 + neutron/cmd/eventlet/plugins/ovs_neutron_agent.py | 7 + .../eventlet/plugins/sriov_nic_neutron_agent.py | 7 + neutron/cmd/eventlet/services/metering_agent.py | 7 + neutron/cmd/ipset_cleanup.py | 2 + neutron/cmd/netns_cleanup.py | 22 +- neutron/cmd/ovn/migration_mtu.py | 61 +- neutron/cmd/ovn/neutron_ovn_db_sync_util.py | 29 +- neutron/cmd/runtime_checks.py | 14 +- neutron/cmd/sanity/checks.py | 43 +- neutron/cmd/sanity_check.py | 27 - neutron/cmd/upgrade_checks/base.py | 5 +- neutron/cmd/upgrade_checks/checks.py | 43 +- neutron/common/_constants.py | 10 + neutron/common/coordination.py | 11 +- neutron/common/eventlet_utils.py | 7 + neutron/common/ovn/acl.py | 212 +---- neutron/common/ovn/constants.py | 120 ++- neutron/common/ovn/extensions.py | 17 +- neutron/common/ovn/hash_ring_manager.py | 9 +- neutron/common/ovn/utils.py | 111 ++- neutron/common/utils.py | 50 ++ neutron/conf/agent/l3/config.py | 6 + neutron/conf/agent/l3/ha.py | 10 +- neutron/conf/agent/metadata/config.py | 5 +- neutron/conf/common.py | 10 +- neutron/conf/db/migration_cli.py | 2 +- .../ml2/drivers/mech_sriov/mech_sriov_conf.py | 3 +- .../ml2/drivers/openvswitch/mech_ovs_conf.py | 3 +- neutron/conf/plugins/ml2/drivers/ovs_conf.py | 4 + neutron/conf/policies/__init__.py | 7 +- neutron/conf/policies/quotas.py | 64 ++ neutron/conf/services/metering_agent.py | 8 + neutron/core_extensions/base.py | 5 +- neutron/db/address_group_db.py | 124 +++ neutron/db/agents_db.py | 3 +- neutron/db/agentschedulers_db.py | 20 +- neutron/db/db_base_plugin_common.py | 18 +- neutron/db/db_base_plugin_v2.py | 30 +- neutron/db/ipam_backend_mixin.py | 35 +- neutron/db/ipam_pluggable_backend.py | 20 +- neutron/db/l3_agentschedulers_db.py | 19 +- neutron/db/l3_db.py | 45 +- neutron/db/l3_dvr_db.py | 13 +- neutron/db/l3_dvrscheduler_db.py | 19 +- neutron/db/l3_hamode_db.py | 7 +- neutron/db/metering/metering_db.py | 60 +- neutron/db/migration/__init__.py | 2 + .../alembic_migrations/versions/EXPAND_HEAD | 2 +- .../rocky/expand/867d39095bf4_port_forwarding.py | 5 + .../expand/d8bdf05313f4_add_in_use_to_subnet.py | 5 + .../expand/1ea5dab0897a_add_address_group.py | 53 ++ ...221_propagate_uplink_status_defaults_to_true.py | 36 + ..._destination_ip_prefix_neutron_metering_rule.py | 38 + ...dfe425060830_limit_vlan_allocation_id_values.py | 55 ++ .../fd6107509ccd_ovn_distributed_device_owner.py | 52 ++ neutron/db/migration/autogen.py | 15 +- neutron/db/migration/cli.py | 6 +- neutron/db/models/address_group.py | 41 + neutron/db/models/metering.py | 2 + neutron/db/models/ovn.py | 5 +- neutron/db/models/plugins/ml2/vlanallocation.py | 12 +- neutron/db/models/uplink_status_propagation.py | 2 +- neutron/db/network_ip_availability_db.py | 7 +- neutron/db/securitygroups_db.py | 27 +- neutron/extensions/address_group.py | 80 ++ neutron/extensions/address_scope.py | 4 +- neutron/extensions/agent.py | 4 +- neutron/extensions/availability_zone.py | 4 +- neutron/extensions/dhcpagentscheduler.py | 4 +- neutron/extensions/dvr.py | 4 +- neutron/extensions/floating_ip_port_forwarding.py | 5 +- neutron/extensions/floatingip_pools.py | 4 +- neutron/extensions/l3.py | 4 +- neutron/extensions/l3_conntrack_helper.py | 5 +- neutron/extensions/l3agentscheduler.py | 4 +- neutron/extensions/logging.py | 4 +- neutron/extensions/metering.py | 5 +- .../metering_source_and_destination_fields.py | 42 + neutron/extensions/network_availability_zone.py | 4 +- neutron/extensions/network_segment_range.py | 5 +- neutron/extensions/qos.py | 4 +- neutron/extensions/quotasv2.py | 33 +- neutron/extensions/router_availability_zone.py | 4 +- neutron/extensions/securitygroup.py | 6 +- neutron/extensions/segment.py | 4 +- neutron/extensions/tagging.py | 4 +- neutron/hacking/checks.py | 102 ++- neutron/ipam/driver.py | 10 +- neutron/ipam/drivers/neutrondb_ipam/driver.py | 15 +- neutron/ipam/requests.py | 13 +- neutron/locale/de/LC_MESSAGES/neutron.po | 26 +- neutron/locale/es/LC_MESSAGES/neutron.po | 14 +- neutron/locale/fr/LC_MESSAGES/neutron.po | 14 +- neutron/locale/it/LC_MESSAGES/neutron.po | 14 +- neutron/locale/ja/LC_MESSAGES/neutron.po | 14 +- neutron/locale/ko_KR/LC_MESSAGES/neutron.po | 13 +- neutron/locale/pt_BR/LC_MESSAGES/neutron.po | 13 +- neutron/locale/ru/LC_MESSAGES/neutron.po | 13 +- neutron/locale/zh_CN/LC_MESSAGES/neutron.po | 13 +- neutron/locale/zh_TW/LC_MESSAGES/neutron.po | 13 +- neutron/manager.py | 7 +- neutron/neutron_plugin_base_v2.py | 4 +- neutron/notifiers/ironic.py | 3 +- neutron/notifiers/nova.py | 1 + neutron/objects/__init__.py | 1 + neutron/objects/address_group.py | 65 ++ neutron/objects/base.py | 10 +- neutron/objects/metering.py | 32 +- neutron/objects/network.py | 17 - neutron/objects/network_segment_range.py | 3 +- .../port/extensions/uplink_status_propagation.py | 5 +- neutron/objects/ports.py | 34 +- neutron/objects/qos/binding.py | 28 +- neutron/objects/qos/policy.py | 28 +- neutron/objects/qos/qos_policy_validator.py | 2 +- neutron/objects/qos/rule.py | 4 +- neutron/objects/qos/rule_type.py | 8 - neutron/objects/rbac.py | 4 +- neutron/objects/rbac_db.py | 10 +- neutron/objects/router.py | 56 +- neutron/objects/subnet.py | 20 +- neutron/objects/trunk.py | 7 - neutron/opts.py | 2 + neutron/pecan_wsgi/controllers/root.py | 3 +- neutron/plugins/ml2/db.py | 34 +- .../ml2/drivers/agent/_agent_manager_base.py | 8 +- neutron/plugins/ml2/drivers/helpers.py | 8 + .../drivers/l2pop/rpc_manager/l2population_rpc.py | 8 +- .../drivers/linuxbridge/agent/common/constants.py | 3 - .../linuxbridge/agent/linuxbridge_neutron_agent.py | 13 +- .../drivers/macvtap/agent/macvtap_neutron_agent.py | 5 +- neutron/plugins/ml2/drivers/mech_agent.py | 29 +- .../drivers/mech_sriov/agent/common/exceptions.py | 8 - .../drivers/mech_sriov/agent/eswitch_manager.py | 35 +- .../agent/extension_drivers/qos_driver.py | 15 +- .../ml2/drivers/mech_sriov/agent/pci_lib.py | 158 +--- .../drivers/mech_sriov/agent/sriov_nic_agent.py | 18 +- .../drivers/mech_sriov/mech_driver/mech_driver.py | 8 +- .../drivers/openvswitch/agent/common/constants.py | 21 +- .../openvswitch/agent/openflow/native/br_int.py | 37 +- .../openvswitch/agent/openflow/native/br_phys.py | 8 +- .../openvswitch/agent/openflow/native/br_tun.py | 23 - .../openvswitch/agent/openflow/native/ofswitch.py | 3 +- .../openvswitch/agent/ovs_dvr_neutron_agent.py | 79 +- .../drivers/openvswitch/agent/ovs_neutron_agent.py | 146 ++-- .../openvswitch/mech_driver/mech_openvswitch.py | 24 +- neutron/plugins/ml2/drivers/ovn/agent/__init__.py | 0 .../plugins/ml2/drivers/ovn/agent/neutron_agent.py | 140 ++++ .../ml2/drivers/ovn/mech_driver/mech_driver.py | 313 ++++--- .../ml2/drivers/ovn/mech_driver/ovsdb/api.py | 101 +-- .../ml2/drivers/ovn/mech_driver/ovsdb/commands.py | 333 +------- .../ovn/mech_driver/ovsdb/extensions/qos.py | 11 +- .../drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py | 78 +- .../drivers/ovn/mech_driver/ovsdb/maintenance.py | 78 +- .../drivers/ovn/mech_driver/ovsdb/ovn_client.py | 411 ++++------ .../drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py | 417 +++++----- .../drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py | 64 +- neutron/plugins/ml2/drivers/type_tunnel.py | 102 +-- neutron/plugins/ml2/drivers/type_vlan.py | 15 +- neutron/plugins/ml2/extensions/dns_integration.py | 2 + neutron/plugins/ml2/managers.py | 2 +- neutron/plugins/ml2/plugin.py | 32 +- neutron/policy.py | 3 +- neutron/privileged/__init__.py | 9 + neutron/privileged/agent/linux/__init__.py | 32 + neutron/privileged/agent/linux/dhcp.py | 48 ++ neutron/privileged/agent/linux/ethtool.py | 31 + neutron/privileged/agent/linux/ip_lib.py | 104 ++- neutron/privileged/agent/linux/utils.py | 42 + neutron/profiling/profiled_decorator.py | 4 +- neutron/quota/__init__.py | 3 +- neutron/quota/resource_registry.py | 7 +- neutron/scheduler/base_resource_filter.py | 4 +- neutron/scheduler/base_scheduler.py | 41 +- neutron/scheduler/dhcp_agent_scheduler.py | 20 +- neutron/scheduler/l3_agent_scheduler.py | 4 +- neutron/scheduler/l3_ovn_scheduler.py | 4 +- neutron/services/conntrack_helper/plugin.py | 2 +- neutron/services/externaldns/driver.py | 4 +- .../externaldns/drivers/designate/driver.py | 22 +- neutron/services/logapi/agent/log_extension.py | 4 +- neutron/services/logapi/drivers/base.py | 1 + .../logapi/drivers/openvswitch/ovs_firewall_log.py | 1 + neutron/services/metering/agents/metering_agent.py | 162 +++- .../services/metering/drivers/abstract_driver.py | 33 +- .../metering/drivers/iptables/iptables_driver.py | 235 +++++- neutron/services/metering/metering_plugin.py | 100 ++- neutron/services/network_segment_range/plugin.py | 3 +- neutron/services/ovn_l3/exceptions.py | 21 + neutron/services/ovn_l3/plugin.py | 87 +- neutron/services/portforwarding/callbacks.py | 28 + neutron/services/portforwarding/constants.py | 23 + .../services/portforwarding/drivers/__init__.py | 0 .../portforwarding/drivers/ovn/__init__.py | 0 .../services/portforwarding/drivers/ovn/driver.py | 278 +++++++ neutron/services/portforwarding/pf_plugin.py | 107 ++- neutron/services/qos/drivers/ovn/driver.py | 2 + neutron/services/segments/db.py | 3 +- neutron/services/segments/plugin.py | 51 +- neutron/services/trunk/drivers/ovn/trunk_driver.py | 5 +- neutron/services/trunk/plugin.py | 5 +- neutron/services/trunk/rpc/server.py | 5 +- neutron/services/trunk/rules.py | 2 +- .../l2/extensions/test_ovs_agent_qos_extension.py | 2 +- .../l3/extensions/qos/test_fip_qos_extension.py | 3 +- .../extensions/test_conntrack_helper_extension.py | 3 +- .../l3/extensions/test_gateway_ip_qos_extension.py | 3 +- .../extensions/test_port_forwarding_extension.py | 2 +- .../agent/l3/test_keepalived_state_change.py | 8 +- .../functional/agent/l3/test_legacy_router.py | 2 +- .../functional/agent/l3/test_metadata_proxy.py | 6 +- .../functional/agent/l3/test_namespace_manager.py | 3 +- .../functional/agent/linux/bin/ipt_binname.py | 7 +- .../functional/agent/linux/test_async_process.py | 3 +- .../functional/agent/linux/test_bridge_lib.py | 38 +- .../functional/agent/linux/test_keepalived.py | 2 + .../functional/agent/linux/test_process_monitor.py | 3 +- .../agent/ovn/metadata/test_metadata_agent.py | 64 +- .../functional/agent/ovsdb/native/test_helpers.py | 53 ++ .../functional/cmd/test_linuxbridge_cleanup.py | 3 +- .../functional/pecan_wsgi/test_controllers.py | 3 +- .../ovn/mech_driver/ovsdb/extensions/test_qos.py | 3 +- .../drivers/ovn/mech_driver/ovsdb/test_impl_idl.py | 124 ++- .../ovn/mech_driver/ovsdb/test_maintenance.py | 289 ++++++- .../ovn/mech_driver/ovsdb/test_ovn_db_resources.py | 163 ++-- .../ovn/mech_driver/ovsdb/test_ovn_db_sync.py | 309 +++---- .../ovn/mech_driver/ovsdb/test_ovsdb_monitor.py | 20 +- .../drivers/ovn/mech_driver/test_mech_driver.py | 219 ++++- .../privileged/agent/linux/test_ip_lib.py | 27 + .../privileged/agent/linux/test_tc_lib.py | 8 +- .../privileged/agent/linux/test_utils.py | 39 + .../conntrack_helper/test_conntrack_helper.py | 2 +- .../l3_router/test_l3_dvr_ha_router_plugin.py | 5 +- .../l3_router/test_l3_dvr_router_plugin.py | 57 +- .../functional/services/logapi/test_logging.py | 2 +- .../functional/services/ovn_l3/test_plugin.py | 4 +- .../portforwarding/test_port_forwarding.py | 3 +- .../openvswitch/agent/test_ovsdb_handler.py | 2 +- .../openvswitch/agent/test_trunk_manager.py | 2 +- .../functional/services/trunk/rpc/test_server.py | 2 +- .../unit/agent/common/test_placement_report.py | 3 +- .../agent/common/test_resource_processing_queue.py | 110 +-- .../agent/l2/extensions/test_fdb_population.py | 5 +- .../agent/l2/test_l2_agent_extensions_manager.py | 3 +- .../unit/agent/l3/extensions/qos/test_base.py | 3 +- .../agent/l3/extensions/qos/test_gateway_ip.py | 2 +- .../agent/l3/extensions/test_conntrack_helper.py | 2 +- .../agent/l3/extensions/test_port_forwarding.py | 3 +- .../unit/agent/l3/extensions/test_snat_log.py | 3 +- .../unit/agent/l3/test_l3_agent_extension_api.py | 2 +- .../linux/openvswitch_firewall/test_firewall.py | 199 ++++- .../linux/openvswitch_firewall/test_iptables.py | 5 +- .../agent/linux/openvswitch_firewall/test_rules.py | 3 +- .../unit/agent/linux/test_external_process.py | 2 +- .../unit/agent/linux/test_iptables_firewall.py | 11 +- .../unit/agent/linux/test_iptables_manager.py | 33 +- .../unit/agent/linux/test_xenapi_root_helper.py | 3 +- .../unit/agent/ovsdb/native/test_connection.py | 2 +- .../unit/agent/test_agent_extensions_manager.py | 3 +- .../rpc/agentnotifiers/test_dhcp_rpc_agent_api.py | 2 +- .../rpc/agentnotifiers/test_l3_rpc_agent_api.py | 2 +- .../api/rpc/callbacks/consumer/test_registry.py | 2 +- .../api/rpc/callbacks/test_resource_manager.py | 2 +- .../unit/api/rpc/callbacks/test_version_manager.py | 2 +- .../unit/api/rpc/handlers/test_resources_rpc.py | 3 +- .../api/rpc/handlers/test_securitygroups_rpc.py | 3 +- .../unit/cmd/ovn/test_neutron_ovn_db_sync_util.py | 31 + .../unit/common/ovn/test_hash_ring_manager.py | 4 +- .../unit/extensions/test_default_subnetpools.py | 8 +- .../test_expose_port_forwarding_in_fip.py | 3 +- .../extensions/test_floating_ip_port_forwarding.py | 3 +- .../unit/extensions/test_network_segment_range.py | 3 +- .../extensions/test_uplink_status_propagation.py | 3 +- .../ipam/drivers/neutrondb_ipam/test_driver.py | 3 +- .../unit/objects/test_network_segment_range.py | 2 +- .../ml2/drivers/agent/test__common_agent.py | 3 +- .../plugins/ml2/drivers/agent/test_capabilities.py | 3 +- .../unit/plugins/ml2/drivers/base_type_tunnel.py | 8 +- .../l2pop/rpc_manager/l2population_rpc_base.py | 3 +- .../l2pop/rpc_manager/test_l2population_rpc.py | 3 +- .../unit/plugins/ml2/drivers/l2pop/test_db.py | 7 +- .../plugins/ml2/drivers/l2pop/test_mech_driver.py | 2 +- .../agent/extension_drivers/test_qos_driver.py | 2 +- .../drivers/linuxbridge/agent/test_arp_protect.py | 3 +- .../agent/test_linuxbridge_agent_extension_api.py | 2 +- .../agent/test_linuxbridge_neutron_agent.py | 13 +- .../macvtap/agent/test_macvtap_neutron_agent.py | 7 +- .../ml2/drivers/macvtap/test_macvtap_common.py | 3 +- .../agent/extension_drivers/test_qos_driver.py | 17 +- .../mech_sriov/agent/test_eswitch_manager.py | 47 +- .../ml2/drivers/mech_sriov/agent/test_pci_lib.py | 189 ++--- .../mech_sriov/agent/test_sriov_nic_agent.py | 10 +- .../mech_driver/test_mech_sriov_nic_switch.py | 28 +- .../agent/extension_drivers/test_qos_driver.py | 2 +- .../ml2/drivers/openvswitch/agent/fake_oflib.py | 2 +- .../agent/openflow/native/ovs_bridge_test_base.py | 3 +- .../agent/openflow/native/test_br_int.py | 116 ++- .../agent/openflow/native/test_br_phys.py | 8 +- .../agent/openflow/native/test_br_tun.py | 2 +- .../agent/openflow/native/test_ofswitch.py | 3 +- .../agent/openflow/native/test_ovs_bridge.py | 4 +- .../openvswitch/agent/openflow/test_br_cookie.py | 2 +- .../ml2/drivers/openvswitch/agent/ovs_test_base.py | 2 +- .../agent/test_ovs_agent_extension_api.py | 2 +- .../openvswitch/agent/test_ovs_capabilities.py | 2 +- .../openvswitch/agent/test_ovs_neutron_agent.py | 190 +++-- .../drivers/openvswitch/agent/test_ovs_tunnel.py | 9 +- .../mech_driver/test_mech_openvswitch.py | 60 +- .../ovn/mech_driver/ovsdb/extensions/test_qos.py | 8 + .../drivers/ovn/mech_driver/ovsdb/test_commands.py | 293 +------ .../ovn/mech_driver/ovsdb/test_impl_idl_ovn.py | 82 +- .../ovn/mech_driver/ovsdb/test_maintenance.py | 35 +- .../ovn/mech_driver/ovsdb/test_ovn_db_sync.py | 218 ++--- .../ovn/mech_driver/ovsdb/test_ovsdb_monitor.py | 32 +- .../drivers/ovn/mech_driver/test_mech_driver.py | 905 +++++++++++++++------ .../unit/plugins/ml2/drivers/test_type_vlan.py | 3 +- .../ml2/extensions/test_data_plane_status.py | 2 +- .../plugins/ml2/extensions/test_dns_integration.py | 6 +- .../plugins/ml2/extensions/test_port_security.py | 3 +- .../test_tag_ports_during_bulk_creation.py | 2 +- .../extensions/test_uplink_status_propagation.py | 2 +- .../unit/plugins/ml2/test_extension_driver_api.py | 3 +- .../unit/plugins/ml2/test_tracked_resources.py | 3 +- .../unit/privileged/agent/linux/test_ip_lib.py | 35 +- .../privileged/agent/linux/test_netlink_lib.py | 2 +- .../unit/privileged/agent/linux/test_utils.py | 76 ++ .../unit/scheduler/test_dhcp_agent_scheduler.py | 2 +- .../unit/scheduler/test_l3_agent_scheduler.py | 2 +- .../unit/services/conntrack_helper/test_plugin.py | 2 +- .../service_providers/test_driver_controller.py | 3 +- .../unit/services/logapi/agent/l3/test_base.py | 3 +- .../services/logapi/agent/test_log_extension.py | 3 +- .../unit/services/logapi/common/test_db_api.py | 3 +- .../services/logapi/common/test_sg_callback.py | 3 +- .../services/logapi/common/test_sg_validate.py | 3 +- .../services/logapi/common/test_snat_validate.py | 3 +- .../unit/services/logapi/common/test_validators.py | 3 +- .../drivers/openvswitch/test_ovs_firewall_log.py | 3 +- .../unit/services/logapi/drivers/test_manager.py | 3 +- .../unit/services/logapi/test_logging_plugin.py | 3 +- .../metering/agents/test_metering_agent.py | 24 +- .../services/metering/drivers/test_iptables.py | 109 ++- .../unit/services/metering/test_metering_plugin.py | 280 ++++++- .../services/network_segment_range/test_plugin.py | 2 +- .../unit/services/placement_report/test_plugin.py | 2 +- .../services/portforwarding/drivers/__init__.py | 0 .../portforwarding/drivers/ovn/__init__.py | 0 .../portforwarding/drivers/ovn/test_driver.py | 381 +++++++++ .../unit/services/portforwarding/test_pf_plugin.py | 174 +++- .../qos/drivers/openvswitch/test_driver.py | 2 +- .../unit/services/qos/drivers/ovn/test_driver.py | 2 +- .../unit/services/qos/drivers/test_manager.py | 3 +- .../services/revisions/test_revision_plugin.py | 2 +- .../unit/services/test_provider_configuration.py | 2 +- .../trunk/drivers/linuxbridge/agent/test_driver.py | 3 +- .../linuxbridge/agent/test_trunk_plumber.py | 3 +- .../trunk/drivers/openvswitch/agent/test_driver.py | 2 +- .../openvswitch/agent/test_ovsdb_handler.py | 5 +- .../openvswitch/agent/test_trunk_manager.py | 2 +- .../trunk/drivers/openvswitch/test_driver.py | 2 +- .../trunk/drivers/ovn/test_trunk_driver.py | 3 +- .../services/trunk/seg_types/test_validators.py | 2 +- neutron/wsgi.py | 3 +- playbooks/configure_ebtables.yaml | 5 + playbooks/configure_functional_job.yaml | 4 + .../legacy/neutron-grenade-dvr-multinode/post.yaml | 15 - .../legacy/neutron-grenade-dvr-multinode/run.yaml | 60 -- .../legacy/neutron-grenade-multinode/post.yaml | 15 - .../legacy/neutron-grenade-multinode/run.yaml | 60 -- plugin.spec | 1 + rally-jobs/task-neutron.yaml | 8 +- ...ttp_retries-config-option-b81dd29c03ba8c6a.yaml | 6 + ...without-link_up-parameter-27f8310eb1e1910a.yaml | 10 + ...ption-from-neutron-server-920564ec77503631.yaml | 9 + ...epalived-vrrp-healt-check-f23ed7c853151484.yaml | 6 +- ...se_no_track-config-option-4fa10304ee2960e6.yaml | 7 + .../notes/bug-1671448-bfba96e42c7f2dbe.yaml | 6 + .../notes/bug-1875981-ec32d8c3918b0dd4.yaml | 6 + ...efix-metering-label-rules-5203f681d2fce058.yaml | 7 + ...port-flat-network-for-ovs-fdf8c3eb461426ec.yaml | 9 + ...k-issue-with-dnsmasq-2.81-c95a46e4f4459bd1.yaml | 6 + .../fix-port-dns-assignment-9d916d77522abd65.yaml | 6 + ...ngips-port-forwarding-ovn-8f8981922dd4c4ab.yaml | 6 + .../improve-terminology-d69d7549b79dff5d.yaml | 10 + ...it_vlan_allocations_in_db-93083c6c4923403a.yaml | 8 + ...ypes-configurable-for-ovs-fc73422daffd42b0.yaml | 4 +- ...es-configurable-for-sriov-094f7663e8975e9b.yaml | 4 +- .../notes/metadata-ipv6-b3607f6932da7226.yaml | 39 + .../ovn-metadata_workers-1121334593ce9829.yaml | 12 + ...router-availability-zones-03a802ee19689474.yaml | 6 + ...k_status_defaults_to_true-644d8e4e3cb2d155.yaml | 5 + .../setproctitle_agents-47d7957688f0365d.yaml | 16 + ...y-group-port-check-in-api-d1fd84d9663e04ab.yaml | 2 +- releasenotes/source/conf.py | 13 +- releasenotes/source/index.rst | 1 + .../source/locale/fr/LC_MESSAGES/releasenotes.po | 90 ++ .../locale/ko_KR/LC_MESSAGES/releasenotes.po | 103 +++ releasenotes/source/ussuri.rst | 6 + requirements.txt | 28 +- roles/legacy_ebtables/tasks/main.yaml | 16 + setup.cfg | 15 +- test-requirements.txt | 13 +- tools/configure_for_func_testing.sh | 27 +- tools/install_venv.py | 1 - tools/install_venv_common.py | 2 - tools/list_moved_globals.py | 2 - tools/migrate_names.txt | 37 +- .../infrared/tripleo-ovn-migration/main.yml | 10 +- .../roles/prepare-migration/tasks/main.yml | 22 +- .../tripleo_environment/ovn_migration.sh | 61 +- .../playbooks/ovn-migration.yml | 8 + .../playbooks/reduce-dhcp-renewal-time.yml | 9 +- .../playbooks/roles/migration/defaults/main.yml | 11 - .../roles/migration/tasks/cleanup-dataplane.yml | 51 +- .../playbooks/roles/migration/tasks/sync-dbs.yml | 12 +- .../roles/migration/templates/activate-ovn.sh.j2 | 11 +- .../roles/migration/templates/clone-br-int.sh.j2 | 2 +- .../playbooks/roles/stop-agents/defaults/main.yml | 3 + .../playbooks/roles/stop-agents/tasks/cleanup.yml | 21 + .../playbooks/roles/stop-agents/tasks/main.yml | 18 + .../playbooks/roles/stop-agents/vars/main.yml | 19 + .../templates/generate-ovn-extras.sh.j2 | 1 + tools/pip_install_src_modules.sh | 2 +- tox.ini | 35 +- zuul.d/base.yaml | 15 + zuul.d/grenade.yaml | 92 ++- zuul.d/project.yaml | 42 +- zuul.d/rally.yaml | 2 +- zuul.d/tempest-multinode.yaml | 76 +- zuul.d/tempest-singlenode.yaml | 176 ++-- 738 files changed, 13888 insertions(+), 8420 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 875fc4ba82..2d59616b67 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11 +11 @@ decorator>=3.4.0 # BSD -eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT +eventlet>=0.21.0 # MIT @@ -19 +19 @@ netifaces>=0.10.4 # MIT -neutron-lib>=2.2.0 # Apache-2.0 +neutron-lib>=2.6.0 # Apache-2.0 @@ -21 +21 @@ python-neutronclient>=6.7.0 # Apache-2.0 -tenacity>=4.4.0 # Apache-2.0 +tenacity>=6.0.0 # Apache-2.0 @@ -26 +25,0 @@ alembic>=0.8.10 # MIT -six>=1.10.0 # MIT @@ -31,5 +30,5 @@ oslo.config>=5.2.0 # Apache-2.0 -oslo.context>=2.19.2 # Apache-2.0 -oslo.db>=4.37.0 # Apache-2.0 -oslo.i18n>=3.15.3 # Apache-2.0 -oslo.log>=3.36.0 # Apache-2.0 -oslo.messaging>=5.29.0 # Apache-2.0 +oslo.context>=2.20.0 # Apache-2.0 +oslo.db>=4.44.0 # Apache-2.0 +oslo.i18n>=3.20.0 # Apache-2.0 +oslo.log>=4.2.1 # Apache-2.0 +oslo.messaging>=7.0.0 # Apache-2.0 @@ -38 +37 @@ oslo.policy>=1.30.0 # Apache-2.0 -oslo.privsep>=1.32.0 # Apache-2.0 +oslo.privsep>=2.3.0 # Apache-2.0 @@ -41 +40 @@ oslo.rootwrap>=5.8.0 # Apache-2.0 -oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 +oslo.serialization>=2.25.0 # Apache-2.0 @@ -44 +43 @@ oslo.upgradecheck>=0.1.0 # Apache-2.0 -oslo.utils>=3.33.0 # Apache-2.0 +oslo.utils>=4.4.0 # Apache-2.0 @@ -49 +48 @@ ovs>=2.8.0 # Apache-2.0 -ovsdbapp>=1.0.0 # Apache-2.0 +ovsdbapp>=1.3.0 # Apache-2.0 @@ -51 +50 @@ psutil>=3.2.2 # BSD -pyroute2>=0.5.7;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) +pyroute2>=0.5.13;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) @@ -60,0 +60 @@ tooz>=1.58.0 # Apache-2.0 +wmi>=1.4.9;sys_platform=='win32' # MIT diff --git a/test-requirements.txt b/test-requirements.txt index 43d563a78f..b3ae967883 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4 +4 @@ -hacking>=1.1.0,<1.2.0 # Apache-2.0 +hacking>=3.0.1,<3.1.0 # Apache-2.0 @@ -9,2 +8,0 @@ flake8-import-order==0.12 # LGPLv3 -pycodestyle>=2.0.0 # MIT -mock>=3.0.0 # BSD @@ -18 +16 @@ stestr>=1.0.0 # Apache-2.0 -reno>=2.5.0 # Apache-2.0 +reno>=3.1.0 # Apache-2.0 @@ -20,4 +18,3 @@ ddt>=1.0.1 # MIT -astroid==1.6.5;python_version<"3.0" # LGPLv2.1 -astroid==2.1.0;python_version>="3.0" # LGPLv2.1 -pylint==1.9.2;python_version<"3.0" # GPLv2 -pylint==2.2.0;python_version>="3.0" # GPLv2 +astroid==2.3.3 # LGPLv2.1 +pylint==2.4.4 # GPLv2 +isort==4.3.21 # MIT