We are delighted to announce the release of: neutron 12.0.0: OpenStack Networking This release is part of the queens release series. Download the package from: https://tarballs.openstack.org/neutron/ For more details, please see below. Changes in neutron 11.0.0.0rc1..12.0.0 -------------------------------------- 535b6d2 Compile ovs for ovsfw to avoid ovs-vswitchd core dumps bc54e4e Tag the alembic migration revisions for Queens 25dfaef ovsfw: Update SG rules even if OVSFW Port is not found dc31c21 Update UPPER_CONSTRAINTS_FILE for stable/queens 10e0c20 Update .gitreview for stable/queens 8806477 Fixes using SSL OVSDB connection 6f83466 Allow objects to opt in new engine facade 685596f [Fullstack] Mark security group test as unstable 9bef065 Mock ipv6_utils.is_enabled_and_bind_by_default method 257de15 Add notification for floatingip update/delete 68dcc4d Revert "[Fullstack] Mark test_bw_limit_qos_port_removed as unstable" 892c1ec fix same mechanism driver called twice bug b8b043a Updated from global requirements 163853a Zuul: Remove project name 08108c4 Move Linuxbridge ARP spoofing to nat table PREROUTING chain 9a620f6 This patch changes the CT zone allocation range 906eda4 Revert "Integration of (Distributed) Port Binding OVO" 04efb3b Fix eventlet imports issue e35a0db Minor fix to remove legacy OVSDB IDL connection 725df3e Fix race condition with enabling SG on many ports at once 2c1178c [Fullstack] SG test use not too many fake hosts fef3741 More efficiently clean up OVS ports e7c0ec1 Fix Port OVO filtering based on security groups 703ff85 Add log-tag to haproxy config file c46eb76 Modify link address from http to https b94b976 Log warnings when test fails because of them 8ee41a0 [Fullstack] Clean DSCP mark rule when port removed 4db37df log-api: Don't enable logging for linuxbridge f84781f Add retry decorator update_segment_host_mapping() 90a3361 Fixes minor typo in neutron cb9f4dd Remove deprecated nova_metadata_ip 6bf0788 Adding DSCP mark and inheritance in OVS and LB tunnels outer header 0cd2228 Update the gerrit dashboard 8f6dd26 [Doc][L3][QoS] Enable floating IP qos 0efe1ae Fix _port_arg for security rules with icmp/ipv6-icmp aliases fea188a l3_ha: only pass host into update_port when updating router port bindings 75ed3bc remove neutron.callbacks package 054aa3a Updated from global requirements 0672719 Use Router OVO in metering_db 6024372 Configure log extension for ovs scenario job only 1be8574 Fix ingress bw limit for OVS DPDK ports b026da9 Switch to use directly ovsdbapp.api module a8271e9 [OVS] Fix for cleaning after skipped_devices 5c601be Support filtering port with IP address substring 622a137 ovs-lib: Pass string as udp port to ovsdb f0ff58e Fix mocking of ovsdb connection in UT 66f852f Treat device with no MAC address as not ready ab4143e Remove usage of deprecated idlutils module 71995b2 Remove deprecated method OVSBridge.set_protocols() a40a4b9 [log] [doc] Include logging for security groups d23a9ad Speed up trunk MTU enforcement check 4d018e2 Removed neutron-tempest-full b04790e Fix fwaas v2 configuration doc 0f08b2c Add missing iptable rule in snat ns for centralized fips. 445551e Revert "Use writer for trunk database operations" 661247a Switch rally job from q-* to neutron-* service names c135c56 broken HybridIptablesHelper function override 7f7d65e [Fullstack] Mark test_bw_limit_qos_port_removed as unstable dc5293b [log]: functional test for logging api 7bd8b37 [log] ovs fw logging implementation 8c6512f Use constant 'IS_DEFAULT' from neutron-lib 386ec26 [Fullstack] Change how DSCP marking packets are tested bab1ae8 L3: prevent associating a FIP to a DHCP port 5cb3e50 Cleaned up get_session 2136c95 Log radvd config contents on reload when debug is on ed57c3d ovsfw: Don't create rules if updated port doesn't exist cbee0f9 Use same instance of iptables_manager in L2 agent and extensions ce01b70 [OVS] Shut down the port on changing the admin-state to false d795fc9 Switch to Subnet OVO in ipam_backend_mixin _save_subnet method 0e062a7 [doc] Added update regarding URL difference based on deployment e2ebc7d [trivial fix]fix typos in neutron 1fe66db Moving legacy check and gate jobs cc44e97 test_provisioning_blocks: Network model to OVO b841a7f [Fullstack] Shutdown tcpdump process gracefully 29c5791 Updated from global requirements febeaf5 Integration of (Distributed) Port Binding OVO bfd4994 use callback payloads for BEFORE_READ events 3f1a984 use callback payloads for REQUEST/RESPONSE events 10644ad use callback payloads for _SPAWN events d4c4107 ipam: don't commit IPAllocation while IpamAllocation is rolled back 7b1294a Update gerrit dashboards d198d71 Fix NeutronPrimaryKeyMissing instantiation a9aef9b Improve Qos Policy Rule test 2908070 ovsfw: Create tables for further consumption a2ad162 Introduce rfe-confirmed and rfe-triaged tags d0aaae2 [L3][QoS] L3 agent side Floating IP rate limit 8db724d Fix 1 doc typo b27164f [log]: Devstack plugin for logging api 081870b [log]: Change entry point name of logging plugin 4a7f5d3 Updated from global requirements 8654749 Switch to use _get_subnet_object() in ipam_backend_mixin module e3488f4 Ensure floating IP create does not break 8774209 FIP: update_floatingip_status() to return the updated object 5444440 use l3 api def from neutron-lib 0a4ec17 l3_agentschedulers_db: convert from Agent model to OVO e862d28 Allow __new__ method to accept extra arguments 77fc89b Update some l3-agent log messages ad4e110 Remove _get_subnets_by_cidr from neutron/db/extraroute_db.py 9eb7c3e Fix URL in SR-IOV internals doc b1f0550 Update the documentation links 7d5247b [Fullstack] Additional log of tcpdump stderr output 088e317 Honor both floating_ip_address and subnet_id when creating FIP c43317e [Qos] ingress bandwidth limit by ovs is not accurate 1feab00 Use hexadecimal when adding DSCP rules 9a8a126 Switch to use _get_subnet_object in neutrondb_ipam driver 5da1a6f Tags: harden validations a52f6a2 test_dhcp_rpc_agent_api: convert from Agent model to OVO 4dca0e6 bugs.rst: Add rfe-postponed to the list of tags 8236e83 Allow port create/update by shared nw owners e3ca20f Update network external attribute for RBAC change f44790b Switch to use subnet OVO object in get_subnet 64a2b56 test_metering_plugin: convert from Agent model to OVO d080adf Updated from global requirements 37bd42e Fix error when using protocol number in security groups fa7bc9d doc: Clarify RFE Triaged state a bit af73882 Prevent LBaaS VRRP ports from populating DVR router ARP table aaccce0 test_timestamp: switch to Network OVO 49018b5 test_l3_dvr_db: switch to OVO for Agent 2f7ab54 test_dhcp_agent_scheduler: Network model to OVO 00a2437 test_l3_agent_scheduler: convert from RouterL3AgentBinding model to OVO 046a390 test_l3_agent_scheduler: convert from Agent model to OVO eaf7e65 Move segment deletion back to PRECOMMIT_DELETE ee423e1 [Qos] Fix residues of ovs in ingress bw limit 98dfdc2 Add CREATE_PRECOMMIT notification for Floating IPs f2d449d burst should be set near max-rate a208450 Build metadata_agent.ini reproducibly d00b7dd Remove router_ids argument to auto_schedule_routers() 13a65cf FakeNotifier class 'topic' argument change to 'topics'. 034934a [Fullstack] Log tcpdump output lines in DSCP mark tests 9566810 Integration of Floating IP OVO 364e5db ovs-fw: catches exception from ovsdb 92db1d4 Fix meter-label-rule creation 6ae0fc3 Fix missing backslashes in QoS docs dd3abf8 [Fullstack] Fix destroy of VM fixture 4d97dba Revert "Revert "objects: get, update and delete converted to Subnet OVO usage"" c62d54d Fix HA router initialization exception 139c834 use log api plugin const from neutron-lib 6c437b7 Correctly configure the IPv6 LLA address b24013f Fix DNS connectivity issues with DVR+HA routers and DHCP-HA a253231 [log]: Add driver api and rpc stuff for logging 8fcda21 [L3][QoS] Neutron server side Floating IP QoS d835dd2 [QoS] Add info about rate limiting on router's ports ab8baed docs: Correct various mistakes in QoS doc 4f00ceb fullstack: disable all test_connectivity test cases f0f480b Disable test_dscp_marking_packets fullstack test case 7a61f86 clarify nova prereq for controller install docs 9ed6932 Call update_all_ha_network_port_statuses on agent start 89e0ed9e fullstack: Wait at least 3 minute for agents to report 9f486a2 Router to OVO e2ad828 Remove the ensure_dir 813295f Remove the bundled intree neutron tempest plugin 46613e9 Remove unused variables ‘LOG' 5e08a9b [OVO] Switch to use own registry 6a8f3b9 Add dns-integration setup to devstack plugin 3cf5df0 use agent api def from neutron-lib 6e39155 Added zuulv3 jobs for testing neutron tempest plugin b78b205 Remove neutron tempest plugin jobs from neutron project e6dacad Skip tempest plugin tests on releasenotes changes a661700 use flavors api def from neutron-lib 9043c90 Remove Rodolfo Alonso as QoS bug contact ebe013b use l3 ext gw mode api def from neutron-lib 9958853 Remove setting of version/release from releasenotes 4b807dd Updated from global requirements 284bbce use dns domain ports api def from neutron-lib f442554 Updated from global requirements 4ac4c22 ovsfw: Use multiple priorities in RULES_*_TABLE 237ec30 ovsfw: Merge multiple conjunction flows bcc57a4 Add unit test to validate non DB base core plugin can be loaded 2a44032 use logging api def from neutron-lib 7ccb299 Raise exception when synthetic field invalid f40128b [L3][QoS] Adding L3 rate limit TC lib 605364a Support that an extension extends a sub-resource 7d7ca98 use net mtu api writable def from neutron-lib 238fba1 use net mtu api def from neutron-lib 502e99b use PROVISIONAL_IPV6_PD_PREFIX from neutron-lib e84a7a1 Donot run neutron-tempest-plugin-api job in gate pipeline e774b88 Tempest: Add availability-zone for agent 27b2d05 use network az api def from neutron-lib a2ad894 use addr pairs api def from lib 4e768bc use l3 flavors api def from neutron-lib 5ae7efb use dvr api def from neutron-lib cc5ba37 use qos api def from neutron-lib 973a8d7 use router az api def from neutron-lib 3ad9a25 Added zuulv3 jobs for testing neutron tempest plugin 1470baf Revert "objects: get, update and delete converted to Subnet OVO usage" a82d945 Renamed ovs_vsctl_timeout into ovsdb_timeout 7ff492c Support protocol numbers in security group API 81c0c34 Remove DocImpact info from contributor docs a2c36d7 use ml2 driver api from neutron-lib 2e93640 Remove deprecated cache_url 573134e use l3 ext ha mode api def from neutron-lib bfe947b Skip IPv6 sysctl calls when IPv6 is disabled 69d0047 Do not load default service plugins if core plugin is not DB based 7a72215 use ip allocation api def from neutron-lib 0b5ff24 tests: delete in-use security group 4608144 Change iptables-restore lock interval to 5 per second 04b31bb Fix typo "extention" -> "extension" 675ecb8 Fix typo: allow_address_pair -> allowed_address_pair 3033c94 use project id api def from neutron-lib 99f323e Remove neutron.common.ipv6_utils.is_enabled() 9e67ba5 use core resource api defs from lib c6d8ccb Enable bridge command for openvswitch agent d2b909f Move check_ha_state_for_router() into notification code 83e73e0 test_security_groups: Randomize SG names 37d8729 use pagination api def from neutron-lib cee7f23 use net ip availability api def from neutron-lib 7e798f2 Update section with links to backport/RC potential bugs 7f969fa Use Agent OVO in l3_agentschedulers_db 23a3cc8 RPC callbacks: add hook to register additional resources d8121ea Update link to stable branch policy page 32c757b objects: get, update and delete converted to Subnet OVO usage c6ed3bf use metering api def from neutron-lib 4dce3f5 use l2 adjacency api def from neutron-lib 806cf71 Fullstack: init trunk agent's driver only when necessary 8b381c7 Use Agent OVO in agents_db and test_agents_db 28e8265 Add initialization in StringMatchingFilterObj class 099c9a0 Add some missing mocks in l3-agent tests 5319522 use extra route api def from lib 0e25b40 use FAULT_MAP from neutron-lib c4b4752 Updated from global requirements 93b8a33 [rally] Port input task to the new format. 0c205e2 [Tempest] Testing remote_ip_prefix for security groups ae12745 Add RBAC access_as_external unit tests a869b3e Replace http with https for doc links 51758c8 Adding OVS Offload documentation 943f384 Integration of L3HARouterAgentPortBinding in ml2/drivers/l2pop/db.py 0bbfad2 Reorder checks in apply_filters in db/_model_query 7b82892 Fix callers of get_devices_with_ip() to pass addresses bdda46a tests: Add decorator to mark unstable tests 15c4119 docs: Update supported QoS rule types b834bd5 use external net api def from lib 9dffd9b Fix the wrong usage of new style class in metering fe1c8da Modify the wrong command in config qos doc 45609a1 Correct link in config-ml2.rst 2f9c901 Change QoS configuration manual 1d468ef revert base extension unit test param removal 00f6163 Remove the unused code e88f1e6 use availability zone api def from lib 1b8664f use qos constants from neutron-lib 907d539 tempest: Sprinkle extension checks 1ad2c4f shim l3 exceptions with neutron-lib 6af9b3c Revisit the process on how RFEs are handled 277996b cleanup unit test usage of api extension maps 6c50ad5 Always call iptables-restore with -w if done once 2a47905 Security Groups: Test all protocols names and nums 20d7a2b Updated from global requirements 864f807 consume load_class_by_alias_or_classname from neutron-lib d2e1452 Do not create fip agent port for dvr_no_external node 72b6db9 use dns api def from neutron-lib 2c52a79 use default subnetpool api def from lib 2cea213 Do not try and iterate [None] in l3-agent network_update() 1b7d6da Redundant alias in import statement 7e0d376 shim FAULT_MAP from neutron-lib d7e93c5 Add a new method ha_state_change to L3 agent extension 2a7cf9a create_security_group: Expunge an object selectively 445ce14 _test_security_group_precommit_create_event: Check the result of create d104ec6 Add NULL check before passing to in_() column operator d8fea01 shim ml2 driver_api with neutron-lib's api 3a962e5 trunk: Fix init_handler() agent parameter 7fa05a7 Only create one IPWrapper class instance in _arping() 80085ab Stop arping when IP address gets deleted 7deda6b Add some debug logs to metadata agent 95f1e03 use plugin constants from neutron-lib 4f9a6a8 Notify port_update to agent for status change 6ee6508 Don't pass trailing dash (-) to rand_name 763e55f Add additional tests for subnet filtering and count 0822b0a consume common constants from lib 539d13d Remove release notes from reverted patch 375ec0d Remove argument "watch_log = " 79eef9e Fullstack: Add l3_agent_mode for testing different agent types 7dce312 Fullstack: add ability to specify router scheduler 2f0ffa9 iptables: don't log lock error if we haven't passed -w d8807e2 Wrong path of rpc_api.rst in class docstring ed1c3b0 Checksum-fill proxied metadata replies bb8954a [log]: implement logging agent extension 1cf6806 Add a test csnat port removing in DVR migration 5907b1d Fix wrong OS ENV type 9d74de1 ovs-fw: Remove iptables rules on hybrid ports f571897 tempest: check router interface exists before ssh a789d23 Change OVS agent to update skipped port status to DOWN 2ac329b clarify deferred fixed IP assignment for ports on routed networks cda315c clarify agent file name in config qos doc 40866ac use new payload objects for *_INIT callbacks 06edc99 Update get_l3_agents() scheduler tests 0b1131e Remove ip_lib SubProcessBase._execute() as class method 2d6d64a Switch test_mtu.py to tempest.common.utils.requires_ext 9b80912 Allow to configure DHCP T1 and T2 timers in dnsmasq 4f627b4 Change ip_lib network namespace code to use pyroute2 27fcf86 DVR: Fix unbound fip port migration to bound port b9ecb38 DVR: Fix centralized floatingip with DVR and HA dd57eba Fullstack: add availability zone to host descriptor 60f8048 use synchronized lock decorator from neutron-lib 3a098ea Refactoring db config options 0088ca6 Update the QoS bugs contact 7910c3a Refactor DVR HA migarations DB operations 1e239de Use port object in notifiers/test_nova.py 0456515 br_int: Make removal of DVR flows more strict 5567ef7 Remove dead code in L3 HA scheduler bb6a993 Remove unnecessary IPWrapper() creation 14d71cd Updated from global requirements 8246bcc Update team and bug ownership info 3ea8307 Change metering code to iterate through all L3 agents d739d01 of_native: Use int for comparing datapath ID 70d504f fullstack: Remove ovsdb_interface config opt fdd29a2 Fix the link to the rally docs in README.rst 38b3d4e ml2: fix update_device_up to send lm events with linux bridge da66b19 Replace default subnetpool API tests with UT bb550de Linux Bridge, remove unnecessary logic to retrieve bridge name 8fd1aa9 [Tempest] Scenarios for several sec groups on VM 692a4ae Revert "Fix for race condition during netns creation" 3d1b336 Fix _verify_gateway_port() in multiple subnets b43a1b7 DVR: handle unbound allowed_address_pairs added a380f60 ML2: remove method get_locked_port_and_binding 9a85ce3 Update correct reference for tags. 69b8588 Remove translation of help messages from tests a2d1fe7 Remove get_ip_version from ip_lib d0b6818 Remove deprecated get_random_mac() aab961e Remove deprecated IpNeighCommand.show() 02b33c9 Updated links to dashboards 40ef314 Remove security_groups_provider_updated rpc code 8f49038 rally: switch to new format for context name 45be804 ovs: log config options when all of them are registered 0171854 Ensure default security group before port update 16262d6 gate: don't configure linuxbridge jobs for geneve bc32d85 [Tempest] Check connectivity between VM with different MTU size net fc6e9a7 add doc link validation to release checklist and tox 7bff99a DVR: Always initialize floating IP host c7ad529 make net_helpers functions work on OpenSUSE 3af82c4 use neutron-lib address scope apidef 500ebc1 Deprecate ivs interface driver 0afe2c2 Fix device_owner during DVR and HA migrations de82ded Remove dead versions code 966f405 Allow fullstack to operate on dhclient-script for OpenSUSE fd1403f Fix for race condition during netns creation f8fb73a Dont log about skipping notification in normal case e40ba77 Tweak configure_for_func_testing to work on OpenSUSE 2e254b6 fix broken link in config-agents doc 47f4307 Fix missing content of neutron database creation. 1584a32 Change join relationship between routerport and router 140b998 Add API tests for Tag resource with standard attribute 458d38e Don't assume RPC push object has an ID 653ed38 Update config-sfc documentation bf6a740 Stop using subscribe in l3_db e0f44fe Updated from global requirements 92f1052 DVR: Fix bad arping call in centralized floating IP code c56a8c1 tests: generate unique network ids for L3HARouterVRIdAllocation 59f5e37 Fix documentation for DNS resolver config 03f9ff6 Update link for API extensions da1078c Stop using is_agent_down in agents_db b01d5ae Switch to tempest.common.utils.is_extension_enabled b9d0c54 Fix missing super's skip_checks() 8b5dc9c gate_hook: configure range of GRE ids 62c5afb Switch to tempest.common.utils.requires_ext a3dff97 Delete dead API v2 router code db1058a Switch to Pecan for unit tests e2ea0b4 Drop the web_framework option b7fe6cc Remove run_tests.sh 1bd60fa gate_hook: Switched to $NEUTRON_CORE_PLUGIN_CONF 0dcf3d2 Remove duplicated ICMPv6 RA rule from iptables firewall d09f243 Updated from global requirements cfb3dc5 Fixing hyperlink issue 67b9402 Fixing external hyperlink. 04e23a3 Deprecate ovsdb_interface option 1edd0c7 Don't trigger DVR port update if status the same 777fb2a Remove csnat port when DVR migrated to non-DVR 3e341a9 Fix post gate hook to accommodate for new os-testr 67589fb Allow OS_TEST_TIMEOUT to be configurable from env b184558 ovs mech: bind only if user request switchdev 4833852 Treat lack of segment info in port object as unbound 1b4559a fix missing l2pop config option docs bc5ca57 doc inherit segmentation type for trunking 7adb297 doc for quota details extension 737bba0 Cleanup unused params 4d22832 Remove gw_port expire call fe8107a Pecan: fix logic of hiding authZ failures as 404s 31dc80a Pecan: add plugin pagination/sorting validation d00a50a Refactoring config options for ml2 config opts 444f802 Pecan: Add missing body validations 07bfe6a CountableResource: try count/get functions for all plugins 8c3cb2e DVR: Multiple csnat ports created when RouterPort table update fails 9c062c6 DVR: get_router_cidrs not returning the centralized_floating_ip cidrs 7c7b2d7 OVO for NetworkDhcpAgentBinding 183c82b doc br_netfilter prereq for linux bridge 9f0a0cd Update config-dns-res to use openstack CLI c761a08 OVO for L3HARouter b2a6b90 Add a new method get_router_info to L3 agent extension API 584b756 Allow to disable DNS server announcement per subnet dace619 [Tempest] Creating sec group rule with integer 7279aa3 [Tempest] Testing default security group scenarios f711ad7 Validate security group rules for port ranges 5b0165e Avoid redundant HA port creation during migration b82db0a ovsfw: Fix up port_range and ICMP type/code handling effa128 ovsfw: Fix port_ranges handling d37e974 use qos DriverBase from neutron-lib f1b4339 linuxbridge-agent: add missing sysctl rootwrap entry 156add1 Fix the incorrect doc for class SecurityGroupAgentRpcCallbackMixin 46289c3 Fix cleaning QoS rules for not existing port. 38d058c Fix generation of thousands of DHCP tap interfaces 07ddb11 Match load_rc_for_rally logic to load_rc_hook 566ed77 OVSBridge: use ovs-ofctl with at least OF protocol version x d5b4f24 Document dns_domain for ports attribute 22d6a15 Fix port deletion when dns_integration is enabled 5feac7d Tempest: Fix cleaning of subnets 1d3c404 Pecan: add missing body to delete notify payload 8f3c27c DHCP provisioning block only on port addr update 090a6af Remove vestigate HUDSON_PUBLISH_DOCS reference e7c75d1 update docs to use nova_metadata_host 700d609 Pecan: strip duplicate and empty user fields fb76c4f Pecan: Add missing emulated bulk create method f998e8d test_ha_router: wait until two agents are scheduled d538ea7 update static urls for pike 402d248 Fix to use . to source script files bf36f8c Pecan: set tenant_id field when project_id set e76a575 Pecan: add calls to resync/dirty quota usages afd1995 DVR: Fix agent to process only floatingips that have a host match 41e6f02 Pecan: process filters at end of hook pipeline a521bf0 Make use of -w argument for iptables calls 32d1f40 l3 agent: stop expecting old server when fetching service plugins 1a5b796 fullstack: skip test_mtu_update when DHCP agent is not in rootns 8d2c1bd complete docs for revision number c46ca8a Update link for contribution 3270029 dvr: Don't raise KeyError in _get_floatingips_bound_to_host 7319c84 Revert "DVR: _get_floatingips_bound_to_host throws KeyError" a77fb4e Prioritize tox environment executables for fullstack/functional tests d3c560b update docs for stdattr tag support 019c7ce Integration of Port OVO in db_base_plugin_common.py 15af19b use neutron-lib's OVO exceptions e3d211b API test refactoring about create_project 13eea52 dhcp agent start md-proxy with vrouter id only when has metadata subnet 51ca683 Refactoring agent linux&ovsdb config ac5328d Tempest: change way how QoS policies are cleaned 47fbc61 DVR: _get_floatingips_bound_to_host throws KeyError 2750590 update contributor internals index 35b3e7b Tempest: Fix cleaning of networks after API tests 13ddee8 fix formatting in ubuntu controller install guide 941cb67 Open Queens DB branch db4eddf functional: Remove ovsdb tests 2ab7c23 Updated from global requirements 594d8b8 functional: Fix reference to ovsdb connection 95bbb73 Fix default qos policy when creating network 334a1ed Fix test_keepalived_ipv6_support for Keepalived v1.2.20 8ab3a7d Add network ip availability filtered by project_id d5a3b24 add doc section for ml2 extension drivers 23ef48a Treat Filter as Dict in get_policies b19fb20 Fixes input for netlink-lib functional tests 5b51cd8 Stop using v2 identity API 3103a11 Add stubs for new ovsdbapp API functions a41ce8d tests: Log spawned processes by RootHelperProcess 59adf8b Revert "functional: disable netlink tests" 7e14728 DB migration checklist task for Pike 637734c Fix DefaultSubnetPool API test 7322bd6 Make code follow log translation guideline 2d8ffe2 Stop logging full object in RPC push code daa1c85 releasenotes: Move Pike ignore-notes to a proper file 9df067f Apply network MTU changes to dhcp ports cc69828 Apply network MTU changes to l3 ports 62c1a4b Log policy filters in one line 0389858 Stop logging versions on every agent update 6051792 Update reno for stable/pike e0a2602 Add a target to Sinkhole so it's compatible 9e185bc Allow unprivileged users to get their quota usage 9515c77 DVR: Provide options for DVR North/South routing centralized 34ad023 Fixing test_convert_default_subnetpool_to_non_default c366768 Remove 'persisted dirty' log message 6d5dc86 fullstack: Actually run ovsfw tests 85a3e93 Hook bandit security linter to pep8 target 39a9e09 Add API test for port dns_domain 589d206 Add unit tests for dns_domain for ports 1908829 Add documentation for Linux Bridge and OVS ingress QoS 4a77533 Add port dns_domain processing logic 62503dc tests: don't set description in test_blank_update_clears_association 1d80c96 ovs-fw: Handle only known trusted ports 64b8f78 Correct tag link in README 1865f27 Remove code to debug auto address allocation error 72f7f1e Drop port_delete and port_update debug msgs 789acb3 Removed unnecessary setUp calls in tests e9615d1 Error in docs for configuring dvr router 895756d devstack: Adapt to lib/neutron Diffstat (except docs and test files) ------------------------------------- .gitignore | 2 + .gitreview | 1 + .stestr.conf | 3 + .zuul.yaml | 269 +++++ CONTRIBUTING.rst | 2 +- README.rst | 4 +- TESTING.rst | 7 +- devstack/lib/dns | 7 +- devstack/lib/log | 12 + devstack/lib/ml2 | 13 + devstack/plugin.sh | 30 +- .../contributor/internals/l2_agent_extensions.rst | 11 + .../contributor/internals/l3_agent_extensions.rst | 1 + .../contributor/internals/linuxbridge_agent.rst | 12 +- .../contributor/internals/openvswitch_agent.rst | 2 +- .../contributor/internals/openvswitch_firewall.rst | 247 ++-- .../contributor/internals/quality_of_service.rst | 68 +- .../contributor/internals/sriov_nic_agent.rst | 5 +- .../policies/contributor-onboarding.rst | 8 +- .../contributor/policies/release-checklist.rst | 2 + .../general_feature_support_matrix.ini | 4 +- .../install/compute-install-option1-ubuntu.rst | 14 + .../install/compute-install-option2-ubuntu.rst | 14 + .../install/controller-install-option1-obs.rst | 14 + .../install/controller-install-option1-rdo.rst | 14 + .../install/controller-install-option1-ubuntu.rst | 14 + .../install/controller-install-option2-obs.rst | 14 + .../install/controller-install-option2-rdo.rst | 14 + .../install/controller-install-option2-ubuntu.rst | 14 + etc/api-paste.ini | 2 +- etc/neutron/rootwrap.d/l3.filters | 9 + etc/neutron/rootwrap.d/linuxbridge-plugin.filters | 1 + etc/neutron/rootwrap.d/openvswitch-plugin.filters | 3 + etc/policy.json | 6 +- neutron/_i18n.py | 10 - neutron/agent/agent_extensions_manager.py | 5 +- neutron/agent/common/ip_lib.py | 6 +- neutron/agent/common/ovs_lib.py | 279 +++-- neutron/agent/common/utils.py | 9 +- neutron/agent/dhcp/agent.py | 80 +- neutron/agent/dhcp_agent.py | 5 +- neutron/agent/firewall.py | 11 +- neutron/agent/l2/extensions/fdb_population.py | 29 +- neutron/agent/l2/extensions/qos.py | 15 +- neutron/agent/l2/l2_agent_extensions_manager.py | 9 +- neutron/agent/l3/agent.py | 144 ++- neutron/agent/l3/dvr_edge_ha_router.py | 14 + neutron/agent/l3/dvr_edge_router.py | 21 +- neutron/agent/l3/dvr_fip_ns.py | 28 +- neutron/agent/l3/dvr_local_router.py | 71 +- neutron/agent/l3/dvr_router_base.py | 11 +- neutron/agent/l3/extensions/__init__.py | 0 neutron/agent/l3/extensions/fip_qos.py | 359 ++++++ neutron/agent/l3/ha.py | 12 +- neutron/agent/l3/ha_router.py | 32 +- neutron/agent/l3/item_allocator.py | 5 +- neutron/agent/l3/keepalived_state_change.py | 6 +- neutron/agent/l3/l3_agent_extension.py | 10 + neutron/agent/l3/l3_agent_extension_api.py | 7 +- neutron/agent/l3/l3_agent_extensions_manager.py | 25 +- neutron/agent/l3/namespace_manager.py | 10 +- neutron/agent/l3/namespaces.py | 7 +- neutron/agent/l3/router_info.py | 56 +- neutron/agent/l3/router_processing_queue.py | 7 +- neutron/agent/l3_agent.py | 12 +- neutron/agent/linux/async_process.py | 12 +- neutron/agent/linux/daemon.py | 22 +- neutron/agent/linux/dhcp.py | 109 +- neutron/agent/linux/dibbler.py | 4 +- neutron/agent/linux/external_process.py | 28 +- neutron/agent/linux/interface.py | 41 +- neutron/agent/linux/ip_conntrack.py | 13 +- neutron/agent/linux/ip_lib.py | 180 +-- neutron/agent/linux/ip_link_support.py | 4 +- neutron/agent/linux/ip_monitor.py | 5 +- neutron/agent/linux/ipset_manager.py | 6 +- neutron/agent/linux/iptables_firewall.py | 30 +- neutron/agent/linux/iptables_manager.py | 230 ++-- neutron/agent/linux/keepalived.py | 6 +- neutron/agent/linux/l3_tc_lib.py | 194 ++++ .../agent/linux/openvswitch_firewall/constants.py | 11 +- .../agent/linux/openvswitch_firewall/exceptions.py | 4 + .../agent/linux/openvswitch_firewall/firewall.py | 250 +++-- .../agent/linux/openvswitch_firewall/iptables.py | 96 ++ neutron/agent/linux/openvswitch_firewall/rules.py | 196 +++- neutron/agent/linux/ovsdb_monitor.py | 3 +- neutron/agent/linux/pd.py | 49 +- neutron/agent/linux/pd_driver.py | 17 +- neutron/agent/linux/ra.py | 18 +- neutron/agent/linux/tc_lib.py | 35 +- neutron/agent/linux/utils.py | 6 +- neutron/agent/linux/xenapi_root_helper.py | 3 +- neutron/agent/metadata/agent.py | 21 +- neutron/agent/metadata/driver.py | 20 +- neutron/agent/metadata_agent.py | 1 - neutron/agent/ovsdb/api.py | 32 +- neutron/agent/ovsdb/impl_idl.py | 47 +- neutron/agent/ovsdb/impl_vsctl.py | 25 +- neutron/agent/ovsdb/native/connection.py | 26 + neutron/agent/ovsdb/native/exceptions.py | 28 + neutron/agent/ovsdb/native/idlutils.py | 19 - neutron/agent/resource_cache.py | 6 +- neutron/agent/rpc.py | 10 +- neutron/agent/securitygroups_rpc.py | 54 +- neutron/agent/windows/ip_lib.py | 10 +- neutron/api/api_common.py | 6 +- neutron/api/extensions.py | 52 +- .../api/rpc/agentnotifiers/dhcp_rpc_agent_api.py | 41 +- neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py | 5 +- neutron/api/rpc/agentnotifiers/utils.py | 6 +- neutron/api/rpc/callbacks/resources.py | 12 + neutron/api/rpc/callbacks/version_manager.py | 4 + neutron/api/rpc/handlers/dhcp_rpc.py | 12 +- neutron/api/rpc/handlers/dvr_rpc.py | 4 +- neutron/api/rpc/handlers/l3_rpc.py | 7 +- neutron/api/rpc/handlers/metadata_rpc.py | 2 +- neutron/api/rpc/handlers/resources_rpc.py | 11 +- neutron/api/rpc/handlers/securitygroups_rpc.py | 48 +- neutron/api/v2/attributes.py | 248 +--- neutron/api/v2/base.py | 55 +- neutron/api/v2/resource.py | 16 +- neutron/api/v2/router.py | 106 +- neutron/api/versions.py | 49 +- neutron/callbacks/__init__.py | 0 neutron/callbacks/events.py | 50 - neutron/callbacks/exceptions.py | 19 - neutron/callbacks/manager.py | 20 - neutron/callbacks/registry.py | 24 - neutron/callbacks/resources.py | 33 - neutron/cmd/ipset_cleanup.py | 16 +- neutron/cmd/linuxbridge_cleanup.py | 15 +- neutron/cmd/netns_cleanup.py | 17 +- neutron/cmd/ovs_cleanup.py | 54 +- neutron/cmd/sanity/checks.py | 42 +- neutron/cmd/sanity_check.py | 162 +-- neutron/common/cache_utils.py | 31 +- neutron/common/config.py | 6 +- neutron/common/constants.py | 128 ++- neutron/common/eventlet_utils.py | 6 + neutron/common/exceptions.py | 23 + neutron/common/ipv6_utils.py | 16 +- neutron/common/profiler.py | 18 +- neutron/common/rpc.py | 21 +- neutron/common/utils.py | 89 +- neutron/conf/agent/common.py | 72 ++ neutron/conf/agent/database/agents_db.py | 28 +- neutron/conf/agent/database/agentschedulers_db.py | 48 + neutron/conf/agent/dhcp.py | 6 + neutron/conf/agent/l3/config.py | 13 +- neutron/conf/agent/linux.py | 28 + neutron/conf/agent/metadata/config.py | 2 +- neutron/conf/agent/ovs_conf.py | 15 +- neutron/conf/agent/ovsdb_api.py | 58 + neutron/conf/agent/windows.py | 17 + neutron/conf/cache_utils.py | 31 - neutron/conf/common.py | 6 - neutron/conf/db/__init__.py | 0 neutron/conf/db/dvr_mac_db.py | 35 + neutron/conf/db/extraroute_db.py | 27 + neutron/conf/db/l3_agentschedulers_db.py | 34 + neutron/conf/db/l3_dvr_db.py | 32 + neutron/conf/db/l3_gwmode_db.py | 27 + neutron/conf/db/l3_hamode_db.py | 45 + neutron/conf/db/migration_cli.py | 56 + neutron/conf/plugins/ml2/config.py | 73 ++ neutron/conf/plugins/ml2/drivers/agent.py | 8 + neutron/conf/plugins/ml2/drivers/driver_type.py | 2 +- neutron/conf/plugins/ml2/drivers/linuxbridge.py | 6 +- neutron/conf/plugins/ml2/drivers/ovs_conf.py | 10 +- neutron/conf/services/logging.py | 39 + neutron/core_extensions/qos.py | 8 +- neutron/db/_model_query.py | 5 + neutron/db/_utils.py | 7 +- neutron/db/address_scope_db.py | 18 +- neutron/db/agents_db.py | 213 ++-- neutron/db/agentschedulers_db.py | 190 ++-- neutron/db/allowedaddresspairs_db.py | 25 +- neutron/db/api.py | 21 +- neutron/db/availability_zone/network.py | 9 +- neutron/db/availability_zone/router.py | 14 +- neutron/db/db_base_plugin_common.py | 112 +- neutron/db/db_base_plugin_v2.py | 137 +-- neutron/db/dns_db.py | 59 +- neutron/db/dvr_mac_db.py | 30 +- neutron/db/external_net_db.py | 42 +- neutron/db/extraroute_db.py | 28 +- neutron/db/flavors_db.py | 26 +- neutron/db/ipam_backend_mixin.py | 80 +- neutron/db/ipam_pluggable_backend.py | 30 +- neutron/db/l3_agentschedulers_db.py | 77 +- neutron/db/l3_attrs_db.py | 10 +- neutron/db/l3_db.py | 452 ++++---- neutron/db/l3_dvr_db.py | 279 +++-- neutron/db/l3_dvrscheduler_db.py | 83 +- neutron/db/l3_fip_qos.py | 78 ++ neutron/db/l3_gwmode_db.py | 20 +- neutron/db/l3_hamode_db.py | 196 ++-- neutron/db/metering/metering_db.py | 26 +- neutron/db/metering/metering_rpc.py | 9 +- neutron/db/migration/__init__.py | 4 +- .../alembic_migrations/versions/EXPAND_HEAD | 2 +- .../expand/34af2b5c5a59_add_dns_name_to_port.py | 5 +- ...tributes_to_support_external_dns_integration.py | 24 +- .../a84ccf28f06a_migrate_dns_name_from_port.py | 5 +- ...0f5bef0f87d4_add_qos_minimum_bandwidth_rules.py | 3 +- .../a9c43481023c_extend_ml2_port_bindings.py | 4 +- ...9da_qos_add_direction_to_bw_limit_rule_table.py | 2 +- .../349b6fd605a6_add_dns_domain_to_portdnses.py | 5 +- .../expand/7d32f979895f_add_mtu_for_networks.py | 4 + .../versions/queens/expand/594422d373ee_fip_qos.py | 48 + neutron/db/migration/cli.py | 55 +- neutron/db/models/dns.py | 4 +- neutron/db/models/l3.py | 12 +- neutron/db/network_dhcp_agent_binding/models.py | 2 +- neutron/db/network_ip_availability_db.py | 2 + neutron/db/provisioning_blocks.py | 11 +- neutron/db/qos/models.py | 23 +- neutron/db/quota/driver.py | 4 +- neutron/db/rbac_db_mixin.py | 3 + neutron/db/securitygroups_db.py | 17 +- neutron/db/securitygroups_rpc_base.py | 33 +- neutron/db/segments_db.py | 5 +- neutron/db/standard_attr.py | 16 +- neutron/debug/commands.py | 4 +- neutron/debug/debug_agent.py | 8 +- neutron/debug/shell.py | 10 +- neutron/extensions/address_scope.py | 110 +- neutron/extensions/agent.py | 94 +- neutron/extensions/allowedaddresspairs.py | 116 +- neutron/extensions/availability_zone.py | 95 +- neutron/extensions/default_subnetpools.py | 43 +- neutron/extensions/dhcpagentscheduler.py | 10 +- neutron/extensions/dns.py | 249 +--- neutron/extensions/dns_domain_ports.py | 43 +- neutron/extensions/dvr.py | 52 +- neutron/extensions/external_net.py | 47 +- neutron/extensions/extraroute.py | 58 +- neutron/extensions/flavors.py | 203 +--- neutron/extensions/ip_allocation.py | 41 +- neutron/extensions/ip_substring_port_filtering.py | 23 + .../extensions/ip_substring_port_filtering_lib.py | 64 ++ neutron/extensions/l2_adjacency.py | 36 +- neutron/extensions/l3.py | 185 +-- neutron/extensions/l3_ext_gw_mode.py | 54 +- neutron/extensions/l3_ext_ha_mode.py | 66 +- neutron/extensions/l3_flavors.py | 39 +- neutron/extensions/l3agentscheduler.py | 20 +- neutron/extensions/logging.py | 88 +- neutron/extensions/metering.py | 110 +- neutron/extensions/netmtu.py | 34 +- neutron/extensions/netmtu_writable.py | 44 +- neutron/extensions/network_availability_zone.py | 41 +- neutron/extensions/network_ip_availability.py | 58 +- neutron/extensions/pagination.py | 33 +- neutron/extensions/project_id.py | 33 +- neutron/extensions/qos.py | 159 +-- neutron/extensions/qos_bw_limit_direction.py | 16 +- neutron/extensions/qos_default.py | 7 +- neutron/extensions/qos_fip.py | 57 + neutron/extensions/qos_rule_type_details.py | 7 +- neutron/extensions/quotasv2.py | 5 +- neutron/extensions/quotasv2_detail.py | 8 +- neutron/extensions/router_availability_zone.py | 41 +- neutron/extensions/tag.py | 4 +- neutron/extensions/tag_ext.py | 8 +- neutron/extensions/tagging.py | 6 +- neutron/extensions/vlantransparent.py | 4 +- neutron/ipam/driver.py | 3 - neutron/ipam/drivers/neutrondb_ipam/driver.py | 22 +- neutron/manager.py | 24 +- neutron/neutron_plugin_base_v2.py | 7 + neutron/notifiers/batch_notifier.py | 5 +- neutron/notifiers/nova.py | 24 +- neutron/objects/address_scope.py | 3 +- neutron/objects/agent.py | 54 +- neutron/objects/auto_allocate.py | 3 +- neutron/objects/base.py | 226 +++- neutron/objects/common_types.py | 21 +- neutron/objects/db/api.py | 75 +- neutron/objects/exceptions.py | 62 - neutron/objects/flavor.py | 7 +- neutron/objects/floatingip.py | 4 +- neutron/objects/ipam.py | 7 +- neutron/objects/l3_hamode.py | 82 ++ neutron/objects/l3agent.py | 3 +- neutron/objects/logapi/logging_resource.py | 3 +- neutron/objects/metering.py | 5 +- neutron/objects/network.py | 81 +- neutron/objects/plugins/ml2/flatallocation.py | 3 +- neutron/objects/plugins/ml2/geneveallocation.py | 5 +- neutron/objects/plugins/ml2/greallocation.py | 5 +- neutron/objects/plugins/ml2/vlanallocation.py | 3 +- neutron/objects/plugins/ml2/vxlanallocation.py | 5 +- .../objects/port/extensions/allowedaddresspairs.py | 3 +- .../objects/port/extensions/data_plane_status.py | 3 +- neutron/objects/port/extensions/extra_dhcp_opt.py | 3 +- neutron/objects/port/extensions/port_security.py | 4 +- neutron/objects/ports.py | 66 +- neutron/objects/provisioning_blocks.py | 3 +- neutron/objects/qos/binding.py | 21 +- neutron/objects/qos/policy.py | 97 +- neutron/objects/qos/qos_policy_validator.py | 2 +- neutron/objects/qos/rule.py | 19 +- neutron/objects/qos/rule_type.py | 12 +- neutron/objects/quota.py | 12 +- neutron/objects/rbac_db.py | 42 +- neutron/objects/router.py | 91 +- neutron/objects/securitygroup.py | 10 +- neutron/objects/servicetype.py | 3 +- neutron/objects/stdattrs.py | 33 + neutron/objects/subnet.py | 19 +- neutron/objects/subnetpool.py | 10 +- neutron/objects/tag.py | 3 +- neutron/objects/trunk.py | 12 +- neutron/objects/utils.py | 7 +- neutron/opts.py | 76 +- neutron/pecan_wsgi/app.py | 6 +- neutron/pecan_wsgi/controllers/quota.py | 3 +- neutron/pecan_wsgi/controllers/resource.py | 17 +- neutron/pecan_wsgi/controllers/root.py | 5 +- neutron/pecan_wsgi/controllers/utils.py | 60 +- neutron/pecan_wsgi/hooks/__init__.py | 2 + neutron/pecan_wsgi/hooks/body_validation.py | 15 +- neutron/pecan_wsgi/hooks/notifier.py | 28 +- neutron/pecan_wsgi/hooks/policy_enforcement.py | 22 +- neutron/pecan_wsgi/hooks/quota_enforcement.py | 14 +- neutron/pecan_wsgi/hooks/translation.py | 9 +- neutron/pecan_wsgi/hooks/userfilters.py | 53 + neutron/plugins/common/constants.py | 82 +- neutron/plugins/common/utils.py | 34 +- neutron/plugins/ml2/config.py | 72 -- neutron/plugins/ml2/db.py | 37 +- neutron/plugins/ml2/driver_api.py | 791 ------------- neutron/plugins/ml2/driver_context.py | 14 +- .../ml2/drivers/agent/_agent_manager_base.py | 11 +- neutron/plugins/ml2/drivers/agent/_common_agent.py | 48 +- neutron/plugins/ml2/drivers/agent/capabilities.py | 2 +- neutron/plugins/ml2/drivers/helpers.py | 5 +- neutron/plugins/ml2/drivers/l2pop/db.py | 185 ++- neutron/plugins/ml2/drivers/l2pop/mech_driver.py | 36 +- .../ml2/drivers/linuxbridge/agent/arp_protect.py | 67 +- .../ml2/drivers/linuxbridge/agent/common/utils.py | 5 +- .../agent/extension_drivers/qos_driver.py | 29 +- .../agent/linuxbridge_agent_extension_api.py | 32 + .../linuxbridge/agent/linuxbridge_neutron_agent.py | 179 +-- .../linuxbridge/mech_driver/mech_linuxbridge.py | 5 +- .../drivers/macvtap/agent/macvtap_neutron_agent.py | 39 +- .../drivers/macvtap/mech_driver/mech_macvtap.py | 24 +- neutron/plugins/ml2/drivers/mech_agent.py | 8 +- .../drivers/mech_sriov/agent/eswitch_manager.py | 22 +- .../agent/extension_drivers/qos_driver.py | 9 +- .../ml2/drivers/mech_sriov/agent/pci_lib.py | 18 +- .../drivers/mech_sriov/agent/sriov_nic_agent.py | 50 +- .../drivers/mech_sriov/mech_driver/mech_driver.py | 20 +- .../ml2/drivers/openvswitch/agent/common/config.py | 2 + .../drivers/openvswitch/agent/common/constants.py | 9 +- .../agent/extension_drivers/qos_driver.py | 36 +- .../plugins/ml2/drivers/openvswitch/agent/main.py | 4 - .../openvswitch/agent/openflow/br_cookie.py | 3 + .../openvswitch/agent/openflow/native/br_int.py | 8 +- .../openvswitch/agent/openflow/native/ofswitch.py | 4 +- .../agent/openflow/native/ovs_bridge.py | 22 +- .../agent/openflow/native/ovs_ryuapp.py | 3 +- .../openvswitch/agent/openflow/ovs_ofctl/br_int.py | 7 +- .../agent/openflow/ovs_ofctl/ofswitch.py | 4 +- .../openvswitch/agent/ovs_dvr_neutron_agent.py | 72 +- .../drivers/openvswitch/agent/ovs_neutron_agent.py | 266 +++-- .../openvswitch/mech_driver/mech_openvswitch.py | 29 +- neutron/plugins/ml2/drivers/type_flat.py | 18 +- neutron/plugins/ml2/drivers/type_geneve.py | 6 +- neutron/plugins/ml2/drivers/type_gre.py | 7 +- neutron/plugins/ml2/drivers/type_local.py | 9 +- neutron/plugins/ml2/drivers/type_tunnel.py | 16 +- neutron/plugins/ml2/drivers/type_vlan.py | 16 +- neutron/plugins/ml2/drivers/type_vxlan.py | 7 +- .../plugins/ml2/extensions/data_plane_status.py | 2 +- neutron/plugins/ml2/extensions/dns_integration.py | 304 +++-- neutron/plugins/ml2/extensions/port_security.py | 5 +- neutron/plugins/ml2/extensions/qos.py | 2 +- neutron/plugins/ml2/managers.py | 155 +-- neutron/plugins/ml2/models.py | 6 +- neutron/plugins/ml2/plugin.py | 201 ++-- neutron/plugins/ml2/rpc.py | 23 +- neutron/policy.py | 10 +- neutron/privileged/agent/linux/ip_lib.py | 32 + neutron/privileged/agent/linux/netlink_lib.py | 4 +- neutron/quota/__init__.py | 16 +- neutron/quota/resource.py | 61 +- neutron/quota/resource_registry.py | 12 +- neutron/scheduler/base_resource_filter.py | 5 +- neutron/scheduler/dhcp_agent_scheduler.py | 52 +- neutron/scheduler/l3_agent_scheduler.py | 55 +- neutron/server/rpc_eventlet.py | 7 +- neutron/server/wsgi_eventlet.py | 5 +- neutron/service.py | 27 +- neutron/services/auto_allocate/db.py | 47 +- .../externaldns/drivers/designate/driver.py | 16 +- neutron/services/flavors/flavors_plugin.py | 2 +- neutron/services/l3_router/l3_router_plugin.py | 21 +- .../service_providers/driver_controller.py | 4 +- neutron/services/logapi/agent/__init__.py | 0 neutron/services/logapi/agent/log_extension.py | 139 +++ neutron/services/logapi/common/constants.py | 29 + neutron/services/logapi/common/db_api.py | 261 +++++ neutron/services/logapi/common/exceptions.py | 9 + neutron/services/logapi/common/validators.py | 4 +- neutron/services/logapi/drivers/base.py | 74 +- neutron/services/logapi/drivers/manager.py | 78 +- .../logapi/drivers/openvswitch/__init__.py | 0 .../services/logapi/drivers/openvswitch/driver.py | 46 + .../logapi/drivers/openvswitch/log_ryuapp.py | 38 + .../logapi/drivers/openvswitch/ovs_firewall_log.py | 462 ++++++++ neutron/services/logapi/logging_plugin.py | 18 + neutron/services/logapi/rpc/__init__.py | 0 neutron/services/logapi/rpc/agent.py | 45 + neutron/services/logapi/rpc/server.py | 69 ++ neutron/services/metering/agents/metering_agent.py | 27 +- .../metering/drivers/iptables/iptables_driver.py | 21 +- neutron/services/metering/drivers/utils.py | 9 +- neutron/services/metering/metering_plugin.py | 4 +- neutron/services/provider_configuration.py | 12 +- neutron/services/qos/drivers/base.py | 162 --- neutron/services/qos/drivers/linuxbridge/driver.py | 11 +- neutron/services/qos/drivers/manager.py | 12 +- neutron/services/qos/drivers/openvswitch/driver.py | 11 +- neutron/services/qos/drivers/sriov/driver.py | 13 +- neutron/services/qos/qos_consts.py | 56 - neutron/services/qos/qos_plugin.py | 6 +- neutron/services/revisions/revision_plugin.py | 6 +- neutron/services/segments/db.py | 5 +- neutron/services/segments/plugin.py | 27 +- neutron/services/service_base.py | 9 +- neutron/services/tag/tag_plugin.py | 2 +- neutron/services/timestamp/timestamp_db.py | 5 +- neutron/services/trunk/drivers/base.py | 2 +- .../trunk/drivers/linuxbridge/agent/driver.py | 9 +- .../drivers/linuxbridge/agent/trunk_plumber.py | 7 +- .../trunk/drivers/openvswitch/agent/driver.py | 15 +- .../drivers/openvswitch/agent/ovsdb_handler.py | 48 +- .../drivers/openvswitch/agent/trunk_manager.py | 6 +- .../services/trunk/drivers/openvswitch/driver.py | 5 +- neutron/services/trunk/plugin.py | 12 +- neutron/services/trunk/rpc/server.py | 9 +- neutron/services/trunk/rules.py | 81 +- .../exclusive_resources/resource_allocator.py | 9 +- .../l2/extensions/test_ovs_agent_qos_extension.py | 2 +- .../functional/agent/l3/extensions/__init__.py | 0 .../agent/l3/extensions/test_fip_qos_extension.py | 251 +++++ .../functional/agent/l3/test_legacy_router.py | 18 +- .../functional/agent/l3/test_namespace_manager.py | 3 +- .../linux/openvswitch_firewall/test_iptables.py | 102 ++ .../functional/agent/linux/test_netlink_lib.py | 36 +- .../functional/agent/ovsdb/native/__init__.py | 0 .../agent/ovsdb/native/test_connection.py | 45 - .../functional/pecan_wsgi/test_controllers.py | 100 +- .../scheduler/test_dhcp_agent_scheduler.py | 43 +- .../scheduler/test_l3_agent_scheduler.py | 8 +- .../l3_router/test_l3_dvr_ha_router_plugin.py | 28 +- .../l3_router/test_l3_dvr_router_plugin.py | 493 ++++++-- .../functional/services/logapi/test_logging.py | 158 +++ .../tempest/api/admin/test_agent_management.py | 90 -- .../tempest/api/admin/test_dhcp_agent_scheduler.py | 108 -- .../test_extension_driver_port_security_admin.py | 35 - .../api/admin/test_external_network_extension.py | 196 ---- .../api/admin/test_floating_ips_admin_actions.py | 91 -- .../tempest/api/admin/test_l3_agent_scheduler.py | 85 -- .../tempest/api/admin/test_quotas_negative.py | 175 --- .../tempest/api/admin/test_routers_flavors.py | 104 -- .../api/admin/test_shared_network_extension.py | 464 -------- .../tempest/api/test_address_scopes_negative.py | 92 -- .../tempest/api/test_auto_allocated_topology.py | 117 -- .../api/test_extension_driver_port_security.py | 150 --- .../tempest/api/test_floating_ips_negative.py | 67 -- .../tempest/api/test_network_ip_availability.py | 166 --- .../api/test_network_ip_availability_negative.py | 29 - .../tempest/api/test_security_groups_negative.py | 71 -- .../tempest/api/test_service_type_management.py | 25 - .../services/network/json/network_client.py | 5 +- .../agent/l3/test_fip_rule_priority_allocator.py | 3 - .../unit/agent/l3/test_l3_agent_extension_api.py | 43 +- .../unit/agent/l3/test_router_processing_queue.py | 12 +- .../linux/openvswitch_firewall/test_firewall.py | 105 +- .../linux/openvswitch_firewall/test_iptables.py | 114 ++ .../agent/linux/openvswitch_firewall/test_rules.py | 197 +++- .../unit/agent/linux/test_iptables_firewall.py | 147 ++- .../unit/agent/linux/test_iptables_manager.py | 164 ++- .../unit/agent/ovsdb/native/test_connection.py | 61 + .../rpc/agentnotifiers/test_dhcp_rpc_agent_api.py | 25 +- .../api/rpc/callbacks/consumer/test_registry.py | 3 - .../unit/api/rpc/handlers/test_resources_rpc.py | 4 +- .../api/rpc/handlers/test_securitygroups_rpc.py | 5 - .../unit/extensions/test_availability_zone.py | 7 +- .../unit/extensions/test_default_subnetpools.py | 80 +- .../extensions/test_network_ip_availability.py | 23 + .../extensions/test_router_availability_zone.py | 13 - .../objects/extensions/test_standardattributes.py | 3 +- .../ml2/drivers/agent/test__agent_manager_base.py | 3 - .../ml2/drivers/agent/test__common_agent.py | 4 +- .../plugins/ml2/drivers/agent/test_capabilities.py | 4 +- .../unit/plugins/ml2/drivers/base_type_tunnel.py | 30 +- .../unit/plugins/ml2/drivers/l2pop/test_db.py | 47 +- .../plugins/ml2/drivers/l2pop/test_mech_driver.py | 11 +- .../agent/extension_drivers/test_qos_driver.py | 41 +- .../drivers/linuxbridge/agent/test_arp_protect.py | 168 +++ .../agent/test_linuxbridge_agent_extension_api.py | 33 + .../agent/test_linuxbridge_neutron_agent.py | 109 +- .../unit/plugins/ml2/drivers/mech_fake_agent.py | 5 +- .../agent/extension_drivers/test_qos_driver.py | 4 +- .../ml2/drivers/mech_sriov/agent/test_pci_lib.py | 18 +- .../mech_driver/test_mech_sriov_nic_switch.py | 35 +- .../unit/plugins/ml2/drivers/mechanism_logger.py | 39 +- .../unit/plugins/ml2/drivers/mechanism_test.py | 24 +- .../agent/extension_drivers/test_qos_driver.py | 19 +- .../agent/openflow/native/test_br_int.py | 20 +- .../agent/openflow/native/test_ovs_bridge.py | 21 +- .../agent/openflow/ovs_ofctl/test_br_int.py | 16 +- .../openvswitch/agent/openflow/test_br_cookie.py | 6 + .../openvswitch/agent/test_ovs_neutron_agent.py | 132 ++- .../drivers/openvswitch/agent/test_ovs_tunnel.py | 25 +- .../mech_driver/test_mech_openvswitch.py | 24 +- .../unit/plugins/ml2/drivers/test_type_flat.py | 24 +- .../unit/plugins/ml2/drivers/test_type_geneve.py | 3 +- .../unit/plugins/ml2/drivers/test_type_gre.py | 3 +- .../unit/plugins/ml2/drivers/test_type_local.py | 2 +- .../unit/plugins/ml2/drivers/test_type_vlan.py | 38 +- .../unit/plugins/ml2/drivers/test_type_vxlan.py | 3 +- .../ml2/extensions/test_data_plane_status.py | 8 +- .../plugins/ml2/extensions/test_dns_integration.py | 593 ++++++---- .../unit/plugins/ml2/test_ext_portsecurity.py | 8 +- .../unit/plugins/ml2/test_extension_driver_api.py | 14 +- .../unit/plugins/ml2/test_tracked_resources.py | 20 +- .../unit/scheduler/test_dhcp_agent_scheduler.py | 149 ++- .../unit/scheduler/test_l3_agent_scheduler.py | 215 ++-- .../service_providers/test_driver_controller.py | 2 +- .../services/logapi/agent/test_log_extension.py | 131 +++ .../unit/services/logapi/common/test_db_api.py | 266 +++++ .../unit/services/logapi/common/test_validators.py | 4 +- .../logapi/drivers/openvswitch/__init__.py | 0 .../drivers/openvswitch/test_ovs_firewall_log.py | 323 ++++++ .../unit/services/logapi/drivers/test_manager.py | 49 + .../unit/services/logapi/test_logging_plugin.py | 46 +- .../metering/agents/test_metering_agent.py | 4 + .../services/metering/drivers/test_iptables.py | 40 +- .../unit/services/metering/test_metering_plugin.py | 19 +- .../unit/services/qos/drivers/test_manager.py | 21 +- .../services/revisions/test_revision_plugin.py | 12 +- .../unit/services/test_provider_configuration.py | 2 +- .../trunk/drivers/openvswitch/test_driver.py | 13 +- neutron/wsgi.py | 20 +- playbooks/legacy/neutron-fullstack/post.yaml | 80 ++ playbooks/legacy/neutron-fullstack/run.yaml | 54 + playbooks/legacy/neutron-functional/post.yaml | 80 ++ playbooks/legacy/neutron-functional/run.yaml | 54 + .../legacy/neutron-grenade-dvr-multinode/post.yaml | 15 + .../legacy/neutron-grenade-dvr-multinode/run.yaml | 47 + .../legacy/neutron-grenade-multinode/post.yaml | 15 + .../legacy/neutron-grenade-multinode/run.yaml | 47 + playbooks/legacy/neutron-grenade/post.yaml | 15 + playbooks/legacy/neutron-grenade/run.yaml | 57 + playbooks/legacy/neutron-rally-neutron/post.yaml | 41 + playbooks/legacy/neutron-rally-neutron/run.yaml | 175 +++ .../post.yaml | 15 + .../neutron-tempest-dvr-ha-multinode-full/run.yaml | 63 ++ playbooks/legacy/neutron-tempest-dvr/post.yaml | 15 + playbooks/legacy/neutron-tempest-dvr/run.yaml | 44 + .../legacy/neutron-tempest-linuxbridge/post.yaml | 15 + .../legacy/neutron-tempest-linuxbridge/run.yaml | 57 + .../neutron-tempest-multinode-full/post.yaml | 15 + .../legacy/neutron-tempest-multinode-full/run.yaml | 64 ++ playbooks/legacy/neutron-tempest-ovsfw/post.yaml | 15 + playbooks/legacy/neutron-tempest-ovsfw/run.yaml | 48 + rally-jobs/README.rst | 8 +- rally-jobs/extra/trunk_scenario.setup | 2 +- rally-jobs/neutron-neutron.yaml | 585 +++++----- rally-jobs/plugins/trunk_scenario.py | 2 +- .../add-availability-zone-4440cf00be7c54ba.yaml | 2 +- .../add-dns-domain-to-ports-f71359d75909a2d5.yaml | 5 + .../add-dscp-for-tunneling-03e28fe7c2f34e86.yaml | 15 + ...dhcp_dnsmasq_t1t2_options-3cef427d8109c165.yaml | 11 + ...eate_update_shared_owners-2a57b1c72d91ace2.yaml | 7 + .../bug-1311040-dhcp-no-dns-09291c23e2ce800a.yaml | 16 + ...ommon-agent-extension-api-3fd06ff67329200a.yaml | 12 + ...-physical_device_mappings-67dd3317181eb513.yaml | 6 - ...cate-ivs-interface-driver-b68e06a470c65ccb.yaml | 5 + ...deprecate-ovsdb-interface-b7e7cc5b036e9ef9.yaml | 6 + ...ingip-with-new-agent-type-05361f1f78853cf7.yaml | 21 + ...command-openvswitch-agent-d07c0b59ea9f864f.yaml | 9 + releasenotes/notes/fip-qos-52926bce81c3f8bb.yaml | 4 + .../fix-ovsdb-ssl-connection-4058caf4fdcb33ab.yaml | 8 + ...group-protocol-by-numbers-48afb97ede961716.yaml | 8 + ...-substring-port-filtering-f5c3d89c4a91e867.yaml | 4 + ...agent-api-get-router-info-93c316a792a9d87f.yaml | 4 + ...xtensions-ha-state-change-f50ae363a53b0f18.yaml | 5 + .../notes/noneutronversions-fbbdb98f350767d8.yaml | 8 + .../rename-ovs-vsctl-timeout-9df1967c47f394c0.yaml | 6 + ...ty-group-port-range-check-73114bdcde459e53.yaml | 5 + .../web_framework_removed-6e4c5c7ca506523a.yaml | 6 + releasenotes/source/conf.py | 11 +- releasenotes/source/index.rst | 1 + releasenotes/source/ocata.rst | 2 + releasenotes/source/pike.rst | 8 + releasenotes/source/unreleased.rst | 2 - requirements.txt | 60 +- setup.cfg | 9 +- test-requirements.txt | 24 +- tools/configure_for_func_testing.sh | 9 + tools/deploy_rootwrap.sh | 2 +- tools/install_venv.py | 2 +- tools/misc-sanity-checks.sh | 12 - tox.ini | 21 +- 876 files changed, 22439 insertions(+), 21641 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index fc46849..b2cf2d0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6 +6 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 -Paste # MIT +Paste>=2.0.2 # MIT @@ -12 +12 @@ pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD -httplib2>=0.7.5 # MIT +httplib2>=0.9.1 # MIT @@ -14,2 +14,2 @@ Jinja2!=2.9.0,!=2.9.1,!=2.9.2,!=2.9.3,!=2.9.4,>=2.8 # BSD License (3 clause) -keystonemiddleware>=4.12.0 # Apache-2.0 -netaddr!=0.7.16,>=0.7.13 # BSD +keystonemiddleware>=4.17.0 # Apache-2.0 +netaddr>=0.7.18 # BSD @@ -17 +17 @@ netifaces>=0.10.4 # MIT -neutron-lib>=1.9.0 # Apache-2.0 +neutron-lib>=1.13.0 # Apache-2.0 @@ -23 +23 @@ WebOb>=1.7.1 # MIT -keystoneauth1>=3.1.0 # Apache-2.0 +keystoneauth1>=3.3.0 # Apache-2.0 @@ -25 +25 @@ alembic>=0.8.10 # MIT -six>=1.9.0 # MIT +six>=1.10.0 # MIT @@ -27,17 +27,17 @@ stevedore>=1.20.0 # Apache-2.0 -oslo.cache>=1.5.0 # Apache-2.0 -oslo.concurrency>=3.8.0 # Apache-2.0 -oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0 -oslo.context>=2.14.0 # Apache-2.0 -oslo.db>=4.24.0 # Apache-2.0 -oslo.i18n!=3.15.2,>=2.1.0 # Apache-2.0 -oslo.log>=3.22.0 # Apache-2.0 -oslo.messaging!=5.25.0,>=5.24.2 # Apache-2.0 -oslo.middleware>=3.27.0 # Apache-2.0 -oslo.policy>=1.23.0 # Apache-2.0 -oslo.privsep!=1.17.0,>=1.9.0 # Apache-2.0 -oslo.reports>=0.6.0 # Apache-2.0 -oslo.rootwrap>=5.0.0 # Apache-2.0 -oslo.serialization!=2.19.1,>=1.10.0 # Apache-2.0 -oslo.service>=1.10.0 # Apache-2.0 -oslo.utils>=3.20.0 # Apache-2.0 -oslo.versionedobjects>=1.17.0 # Apache-2.0 +oslo.cache>=1.26.0 # Apache-2.0 +oslo.concurrency>=3.25.0 # Apache-2.0 +oslo.config>=5.1.0 # Apache-2.0 +oslo.context>=2.19.2 # Apache-2.0 +oslo.db>=4.27.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.middleware>=3.31.0 # Apache-2.0 +oslo.policy>=1.30.0 # Apache-2.0 +oslo.privsep>=1.23.0 # Apache-2.0 +oslo.reports>=1.18.0 # Apache-2.0 +oslo.rootwrap>=5.8.0 # Apache-2.0 +oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 +oslo.service!=1.28.1,>=1.24.0 # Apache-2.0 +oslo.utils>=3.33.0 # Apache-2.0 +oslo.versionedobjects>=1.31.2 # Apache-2.0 @@ -45,2 +45,2 @@ osprofiler>=1.4.0 # Apache-2.0 -ovs>=2.7.0 # Apache-2.0 -ovsdbapp>=0.4.0 # Apache-2.0 +ovs>=2.8.0 # Apache-2.0 +ovsdbapp>=0.8.0 # Apache-2.0 @@ -48 +48 @@ psutil>=3.2.2 # BSD -pyroute2>=0.4.17 # Apache-2.0 (+ dual licensed GPL2) +pyroute2>=0.4.21;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) @@ -51,3 +51,3 @@ weakrefmethod>=1.0.2;python_version=='2.7' # PSF -python-novaclient>=9.0.0 # Apache-2.0 -python-designateclient>=1.5.0 # Apache-2.0 -os-xenapi>=0.2.0 # Apache-2.0 +python-novaclient>=9.1.0 # Apache-2.0 +python-designateclient>=2.7.0 # Apache-2.0 +os-xenapi>=0.3.1 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 3db1b10..5b087c9 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -10,4 +10,4 @@ flake8-import-order==0.12 # LGPLv3 -mock>=2.0 # BSD -python-subunit>=0.0.18 # Apache-2.0/BSD -sphinx>=1.6.2 # BSD -openstackdocstheme>=1.16.0 # Apache-2.0 +mock>=2.0.0 # BSD +python-subunit>=1.0.0 # Apache-2.0/BSD +sphinx!=1.6.6,>=1.6.2 # BSD +openstackdocstheme>=1.18.1 # Apache-2.0 @@ -15,3 +15,2 @@ oslosphinx>=4.7.0 # Apache-2.0 -testrepository>=0.0.18 # Apache-2.0/BSD -testtools>=1.4.0 # MIT -testresources>=0.2.4 # Apache-2.0/BSD +testtools>=2.2.0 # MIT +testresources>=2.0.0 # Apache-2.0/BSD @@ -19,3 +18,3 @@ testscenarios>=0.4 # Apache-2.0/BSD -WebTest>=2.0 # MIT -oslotest>=1.10.0 # Apache-2.0 -os-testr>=0.8.0 # Apache-2.0 +WebTest>=2.0.27 # MIT +oslotest>=3.2.0 # Apache-2.0 +os-testr>=1.0.0 # Apache-2.0 @@ -24 +23 @@ pylint==1.4.5 # GPLv2 -reno!=2.3.1,>=1.8.0 # Apache-2.0 +reno>=2.5.0 # Apache-2.0 @@ -27,2 +26 @@ PyMySQL>=0.7.6 # MIT License -tempest>=16.1.0 # Apache-2.0 -bashate>=0.2 # Apache-2.0 +bashate>=0.5.1 # Apache-2.0