[neutron] neutron 10.0.0 (ocata)
We high-spiritedly announce the release of: neutron 10.0.0: OpenStack Networking This release is part of the ocata release series. Download the package from: https://tarballs.openstack.org/neutron/ For more details, please see below. 10.0.0 ^^^^^^ Hyper-V Neutron Agent has been fully decomposed from Neutron. Therefore, the *neutron.plugins.hyperv.agent.security_groups_driver.H yperVSecurityGroupsDriver* firewall driver has been deleted. Update the *neutron_hyperv_agent.conf* / *neutron_ovs_agent.conf* files on the Hyper-V nodes to use *hyperv.neutron.security_groups_driver.HyperVSecurityGroupsDriver*, which is the networking_hyperv security groups driver. New Features ************ * Middleware was added to parse the "X-Forwarded-Proto" HTTP header or the Proxy protocol in order to help Neutron respond with the correct URL references when it's put behind a TLS proxy such as "haproxy". This adds "http_proxy_to_wsgi" middleware to the pipeline. This middleware is disabled by default, but can be enabled via a configuration option in the "[oslo_middleware]" group. * The Linux Bridge agent now supports QoS DSCP marking rules. * Keepalived VRRP health check functionality to enable verification of connectivity from the "master" router to all gateways. Activation of this feature enables gateway connectivity validation and rescheduling of the "master" router to another node when connectivity is lost. If all routers lose connectivity to the gateways, the election process will be repeated round-robin until one of the routers restores its gateway connection. In the mean time, all of the routers will be reported as "master". * Linux Bridge driver now supports QoS egress minimum bandwidth limit rules. * Add a new configuration section, "[placement]", with two new options that allow to make "segments" plugin to use the "Compute" placement ReST API. This API allows to influence node placement of instances based on availability of IPv4 addresses in routed networks. The first option, *region_name*, indicates the placement region to use. This option is useful if keystone manages more than one region. The second option, *endpoint_type*, determines the type of a placement endpoint to use. This endpoint will be looked up in the keystone catalog and should be one of "public", "internal" or "admin". * Designate driver can now use Keystone v3 authentication options. "The "[designate]" section now accepts the "auth_type" option, as well as other "keystoneauth" options (e.g. "auth_url", "username", "user_domain_name", "password", "project_name", "project_domain_name")." * Resource tag mechanism now supports subnet, port, subnetpool and router resources. * A new mechanism has been added to the "neutron-netns-cleanup" tool that allows to kill processes listening on any "Unix" or network socket within a namespace. The new mechanism will try to kill those processes gracefully using the "SIGTERM" signal and, if they refuse to die, then the "SIGKILL" signal will be sent to each remaining process to ensure a proper cleanup. * The QoS driver architecture has been refactored to overcome several previous limitations, the main one was the coupling of QoS details into the mechanism drivers, and the next one was the need of configuration knobs to enable each specific notification driver, that will be handled automatically from now on. * The "created_at" and "updated_at" resource fields now include a timezone indicator at the end. Because this is a change in field format, the old "timestamp_core" extension has been removed and replaced with a "standard-attr-timestamp" extension. * Initial support for "oslo.privsep" has been added. Most external commands are still executed using "oslo.rootwrap". * vhost-user reconnect is a mechanism which allows a vhost-user frontend to reconnect to a vhost-user backend in the event the backend terminates either as a result of a graceful shutdown or a crash. This allows a VM utilising a vhost-user interface to reconnect automatically to the backend e.g. Open vSwitch without requiring the VM to reboot. In this release, support was added to the neutron Open vSwitch agent and "ml2" driver for vhost-user reconnect. Known Issues ************ * In kernels < 3.19 "net.ipv4.ip_nonlocal_bind" sysctl option was not isolated to network namespace scope. L3 HA sets this option to zero to avoid sending gratuitous ARPs for IP addresses that were removed while processing. If this happens, then gratuitous ARPs will be sent. It may populate ARP cache tables of peer machines with wrong MAC addresses. Upgrade Notes ************* * The "api-paste.ini" configuration file for the paste pipeline was updated to add the "http_proxy_to_wsgi" middleware. * The "dhcp_domain" DHCP agent configuration option was deprecated in Liberty cycle, and now is no longer used. The "dns_domain" option should be used instead. * On upgrade, IPv6 addresses in DHCP namespaces that have been created dynamically via SLAAC will be removed, and static IPv6 addresses will be added instead. * Update the *neutron_hyperv_agent.conf* / *neutron_ovs_agent.conf* files on the Hyper-V nodes to use *hyperv.neutron.security_groups_driver.HyperVSecurityGroupsDriver*, which is the networking_hyperv security groups driver. * A new option "ha_keepalived_state_change_server_threads" has been added to configure the number of concurrent threads spawned for keepalived server connection requests. Higher values increase the CPU load on the agent nodes. The default value is half of the number of CPUs present on the node. This allows operators to tune the number of threads to suit their environment. With more threads, simultaneous requests for multiple HA routers state change can be handled faster. * Obsolete "oslo.messaging.notify.drivers" entrypoints that were left in tree for backwards compatibility with pre-Icehouse releases have been removed. Those are "neutron.openstack.common.notifier.log_notifier", "neutron.openstack.common.notifier.no_op_notifier", "neutron.openstack.common.notifier.test_notifier", "neutron.openstack.common.notifier.rpc_notifier2", "neutron.openstack.common.notifier.rpc_notifier". Use values provided by "oslo.messaging" library to configure notification drivers. * The "advertise_mtu" option is removed. Now Neutron always uses all available means to advertise MTUs to instances (including DHCPv4 and IPv6 RA). * The "min_l3_agents_per_router" configuration option was deprecated in Newton cycle and removed in Ocata. HA routers no longer require a minimal number of L3 agents to be created, although obviously they require at least two L3 agents to provide HA guarantees. The rationale for the removal of the option is the case a router was created just when an agent was not operational. The creation of the router will now succeed, and when a second agent resumes operation the router will be scheduled to it providing HA. * After upgrade, a macvtap agent without physical_interface_mappings configured can not be started. Specify a valid mapping to be able to start and use the macvtap agent. * The "timestamp_core" extension has been removed and replaced with the "standard-attr-timestamp" extension. Resources will still have timestamps in the "created_at" and "updated_at" fields, but timestamps will have time zone info appended to the end to be consistent with other OpenStack projects. Deprecation Notes ***************** * Configuration options "kernel_hz" and "tbf_latency" in "[qos]" section have been removed due to being no longer used. * The "physical_device_mappings" option is deprecated and will be removed in Pike. PCI device validation is done in Nova, controlled via the "pci_whitelist" configuration option. Therefore it is redundant to validate it in Neutron with "physical_device_mappings". * The L3 agent "send_arp_for_ha configuration" option is deprecated and will be removed in Pike. The functionality will remain, and the agent will send three gratuitious ARPs whenever a new floating IP is configured. * The "iptables" firewall driver will no longer enable bridge firewalling in next versions of Neutron. If your distribution overrides the default value for any of relevant sysctl settings ("net.bridge.bridge-nf-call-arptables", "net.bridge.bridge-nf-call- ip6tables", and "net.bridge.bridge-nf-call-iptables") then make sure you set them back to upstream kernel default ("1") using /etc/sysctl.conf or /etc/sysctl.d/* configuration files. * notification_drivers from [qos] section has been deprecated. It will be removed in a future release. Bug Fixes ********* * There is a race condition when adding ports in DHCP namespaces where an IPv6 address could be dynamically created via SLAAC from a Router Advertisement sent from the L3 agent, leading to a failure to start the DHCP agent. This bug has been fixed, but care must be taken on an upgrade dealing with any potentially stale dynamic addresses. For more information, see bug 1627902 (https://launchpad.net/bugs/1627902). * Versions of "keepalived" < 1.2.20 don't send gratuitous ARPs when keepalived process receives a "SIGHUP" signal. These versions are not packaged in some Linux distributions like Red Hat Enterprise Linux 7, CentOS 7, or Ubuntu Xenial. Not sending gratuitous ARPs may lead to peer ARP cache tables containing wrong entries about floating IP addresses until those entries are invalidated. To fix that scenario, Neutron now sends gratuitous ARPs for all new IP addresses that appear on non-HA interfaces in router namespaces. This behavior simulates behavior of new versions of "keepalived". Other Notes *********** * Due to changes in internal L3 logic, a server crash/backend failure during FIP creation may leave dangling ports attached on external networks. These ports can be identified by a "PENDING" "device_id" parameter. While those ports can also be removed by admins, the "neutron-server" service will now also trigger periodic (approximately once in 10 minutes) cleanup to address the issue. * The "allow_pagination" and "allow_sorting" configuration options are now removed. Now, sorting and pagination are always enabled for plugins that support the features. * vhost-user reconnect requires dpdk 16.07 and qemu 2.7 and openvswitch 2.6 to function. if an older qemu is used, reconnect will not be available but vhost-user will still function. Changes in neutron 9.0.0.0rc1..10.0.0 ------------------------------------- 339855f Clean up ovsdb-native's use of verify() 0eb59ef Invert device_owner to avoid filtering too much 54a3dd6 Switch to 'subquery' for 1-M relationships ae74f0a DVR: Look at all SNAT ports for a subnet match 8905397 Pecan: Fix tags handling for pecan 7d372b6 Update UPPER_CONSTRAINTS_FILE for stable/ocata 0eb7bf9 Revert "Linux Bridge: driver support for QoS egress minimum bandwidth" c93215f Update devref for enhanced tag mechanism 365ad91 Skip reading config files from neutron.conf.d for the namespace proxy 0fb35ea Use only_contrib option for nova_client calls 7d04882 Improve tunnel_sync 48e1b42 DVR: Add static routes to FIP namespace a264318 Update .gitreview for stable/ocata f7b1fc6 Terminate macvtap agent when physical_interface_mapping config not present fbf40fe Enhance tag mechanism 0dad0bc Tag the alembic migration revisions for Ocata 1e1e7a8 Add Loki service plugin for optional DB havoc 33129f2 Use bytes for python3 friendly os.write 8aa7a46 Updated from global requirements c88debc Use addCleanup instead of tearDown b53291a Remove --omit argument in run_tests.sh f3a2266 Integration of Provisioning Block OVO. 185d6cb Add support for Keepalived VRRP health check 5c5badf Use socket.AF_INET6 in ip_lib tests 792cc0f Update bug triaging policy for documentation 95ce333 Remove duplicated and unused code in iptables_firewall 7b5f01c Add IPv6 Prefix Delegation support for DVR b61b630 Fix port update for service subnets 49e84a7 Update in-tree code to use new neighbour functions e5320e7 functional: Check for processes only if there are any 1182508 Fix link in QoS devref 10bfa69 Clear conntrack entries without zones if CT zones are not used cd38886 Fix iptables rules for Prefix Delegated subnets 3a1873f policies: Replace Joe's graphite graphs with Grafana 4750112 Init privsep on l3 agent start afab7c6 Display deprecation warning in test only once a502c96 Kill the metadata proxy process unconditionally 38de22b Always acquire network.id lock in dhcp port update b6d9a3f Fix WaitTimeout string representations 8d3f216 Addressing L3 HA keepalived failures in functional tests 6ce47f1 Stop passing datapath as 'may_exist' argument 4c636bd Retry on routerport delete race c148edb Do not raise an error deleting neighbour entry 7872508 [Live Migration] Extend ml2_port_binding table 26128ac Fix some pylint errors in IPAM tests faf80b9 Use weakrefs for common_db_mixin callbacks 9645877 Add bulk pull OVO interface 750c491 Handle attempt to enable br_netfilter in namespace 59727be Check arg type for SegmentTypeDriver functions 8a79090 Add missing port UPDATE event to ML2 28d2e69 Fixes to allow OVO deserializion of ports/networks 7915b4a Add missing module-level SUBNET ref 829b39b ovsfw: Refresh OFPort when necessary 4fe3d27 Fix a bad docstring in provisioning blocks module 38c1812 Transition qos notification driver into qos driver 271a4ff OVS: merge the required OpenFlow version rather than replace f8a224a Adjust psutil usage for psutil > 2 318650a Allow all migration of routers c7dd0ab Set access_policy for messaging's dispatcher 72154cc Elminate join for network owner filter 519d7cc Always add unique sort keys when sorting 1bcdc29 Allow the other nic to allocate VMs post PCI-PT VM creation. d7a6827 Change neighbour commands to use pyroute2 5cbdd10 Routed networks IPv4 inventory in Nova GRP af6b9b3 Correctly set project_name 7d99bf0 Break circular import with use of common_types d5c07fe ovsfw: Support protocol numbers instead of just tcp and udp d6c99d5 Add KillFilter for python 3.5 553ab6d Register sqlalchemy events through hook for UT cleanup 7953e98 Fix empty string check for python 3 6ffc58d Update docstring in validate_provider_segment a43e992 Modify docref commands to reflect OSC transition d8440e4 Server-side push notifications for ML2 e834986 Allow 0 in port range for securitygrouprule object 48580f3 Updated from global requirements 89f6dd3 OVO for Ipam(Allocation,Subnet,Pool) 91b2efc Remove get_router_cidrs method of dvr_edge_ha router 6944d74 Use plugin directory fixture ea2cab0 openvswitch agent: add OVS_RESTARTED event 4f17f70 Stop using legacy facade 8047da1 XenAPI: Support daemon mode for rootwrap 66c7c60 Fix importing old path for exceptions 743a610 Use ubuntu image for tempest scenarios from Neutron a594df6 Catch invalid subnet service_types on input 45e047f Fullstack SG test for LinuxBridge agent 8252b94 Get rid of L3 HA override of _update_router_db 0296455 Get rid of create_router override in l3_ha mixin ebe62dc Add a ReST client for placement API 39c74b0 Add OVO for AutoAllocatedTopology ada4237 Fix typos 39567df Fix broken Windows compatibility in ovs_lib 18e2e2d Add IPLink class to Windows ip_lib implementation 71edbb0 Support ovsdb-client monitor with remote connection 393a3bd Protect against non-determinstic sort dd5aca3 Remove deprecated min_l3_agents_per_router 2725b4d Include port_security check in fullstack tests a8b6a59 Revert "Setup firewall filters only for required ports" e9572ea test_l3: Enable native pagination and sort e74b45d Revert "Protect against non-determinstic sort" 4a66fa8 Multiple tweaks for Ocata release notes 536ea85 L3: Add in missing translation d8d41ae Fix broken links in devref a27ec6c Rename a test method dcd4c8b DVR: delete stale devices after router update 84b3ae3 Linux Bridge: driver support for QoS egress minimum bandwidth 8b048cc Use project_id instead of tenant_id in objects f57dbf3 Remove references to defunct Stadium docs decbf0c Use new enginefacade for dvr mac db f15851b DHCP: enhance DHCPAgent startup procedure bd9e646 Use writer for trunk database operations 1927da1 Add check for ha state 38c070b DVR: fix csnat port missing after router update fc075fa Manually add pk for alembic_version table a734bdd Only migrate ports on DVR migration 175bfe0 Protect against non-determinstic sort a7c633d Decompose router extra attr processing f2b6975 Use unique subnetpools in SubnetPoolPrefixDbObjectTestCase 3f9f740 Fix netns_cleanup interrupted on rwd I/O 7b1a390 Don't emit SG rule AFTER events until TX closed 7872160 Updated from global requirements 526816d neutron-lib: use L3 constant b38f1cb Use the session loader in keystoneauth1 for designate 3040e44 Fix delete_network to delete ports one by one 9a0bdb9 Cleanup unused helper function from test code dd36243 Added UT for floating ips with dns d5f4cdc Centralize creation of security group test obj 6f20f1c Suppress annoying "Could not load" stevedore warnings ca60a91 adds support for vhost user reconnect. 5b7c8c3 Clean up _get_ports_query f204728 Get rid of additional fixed_ip filter join b09a380 Remove advertise_mtu config option 495b786 Get rid of _network_model_hook for external_net b87715d Protect against '.delete()' for quota and revisions bf56b85 Don't use .delete() on a port in unit test 9dea90d Stop using .delete() in external net handling code 3e4c0ae Revert "Add ALLOCATING state to routers" 3ea5f7c Get rid of ml2 port model hook join 0378194 Add retry to _create_ha_port_binding b4c1dda Correct the msg ipv6 enable in system 42cc227 Change default exception in wait_until_true 45ae248 Checking functionality of DVR 7c0e62e l3scheduler: create ha_vr_id more robustly 911eb51 Get rid of l3 ha delete_router inheritance 47ee253 Allow to pass suite flavor to gate_hook to disable dvr tests ffc4489 Don't create default SG in transaction 17c2b45 Kill neutron-keepalived-state-change gracefully f142ab2 gate_hook: Add support for neutron-full with the ovs firewall 22707fb Add filter check for quering d17befe Fix dir doc typo error 8de5060 Flavor and Service Profile to OVO 021f2f8 DHCP: "reserved_dhcp_port" not well managed during startup 161e580 Raise AssertionError instead of eventlet.timeout.Timeout when failing. 327f7fc Adding debug trace to IPWrapper.get_devices() b1405cb Use gate_hook to enable q-trunk for rally. 5b056e0 Update contacts and team list 4f3be30 Replaces uuid.uuid4 with uuidutils.generate_uuid() 9a022e7 Reduce IP link show calls for SR-IOV scan loop cc27af1 Add DictOfMiscValuesField in OVO for dict usage d5205e8 SR-IOV: Remove physical_device_mappings depreciation warning 69b49a5 Fix a typo in iptables_manager.py 2ba12ae DB: remove deprecated oslo_db warnings a12de89 Fullstack tests for DHCP agent HA 444184a Remove greenlet useless requirement 5af25db Fix pylint warning in test_l3_hamode_db.py e1f43a6 Fix typo 8f37f2d Replace nc command with ncat 7fc79f4 Refactors QosAgentDriver 0af6e6d Change the order of installing flows for br-int 5a0aa8d Updated from global requirements ce9aa9c [TrivialFix] Fix comment typo error 2ad9c67 Don't create HA resources until needed 6958829 Do not try and remove non-existent iptables chains dbcdc11 Fix ext alias in revision API test e54ddc9 Modify error word "procedence" to "precedence" 8754b9c Updated from global requirements 2d508fc [TrivialFix] Fix comment typo error ad16d63 neutron-lib: use CORE from neutron lib constants c28bade Use Port OVO in ml2/db and plugins/ml2/test_db 8ef0979 gate_hook: Add a no-op rally case 45ef899 Remove Duplicate line in privsep.filters 1c5bf09 Use DB field sizes instead of _MAX_LEN constants 9bab88b Account for unwire failures during OVS trunk rewiring operations 12b0e16 Change passing session to context in segments db functions 55a25bd Fix a bug in process_spawn binding on ports af3620e team update: john-davidge doc liasion 2b16cb8 OVO for FlatAllocation 5c02e1f Fix python3 issues with devstack af0c538 iptables: don't enable arptables firewall aacd8e0 Pecan: Fix subresource policy check 9183da7 Adopt privsep and read routing table with pyroute2 df7e36c Change passing session to context for TypeDriver 92199db of_interface: Revert patching ryu 22352f5 Remove iptables nat and mangle rules for security group e9efe86 SR-IOV: remove ml2_conf_sriov.ini from oslo-config-generator a0b8ea7 Sort and Remove duplicate field types 1d38f30 Kill processes when cleaning up namespaces d67a966 Don't return content when we set HTTP 204 e234ecc Set standard_attr_id as property in DeclarativeObject. e48caf6 Add agent object in router info 6bd3ad2 Bump revision of resource on tag add/remove a802b38 Use subqueries for rbac_entries and subnets<->network a66c271 ovsfw: Raise exception if tag cannot be found in other_config 0176637 Proposing tidwellr and njohnston as service layer go-to contacts 8733190 Propose mlavalle as neutron core and L3 second in command 71fac62 Use get_random_string from neutron-lib 605df9c Moving pyroute and oslo.privsep deps into requirements.txt af28cba devref: suggest bug deputies to send brief reports to ML 02fa4a1 Ensure random object unique constraints aren't violated 14bf594 Update comment about foreign keys 3bac406 Document how to proceed with new platform features 5c8dffa Update MTU on existing devices eccb6e4 Added log messages while creating neutron objects. 15163c0 Add subprojects database migration f38688c Fullstack test for DHCP agent ec153ee get_random_object_fields() for setting object attr 489cc97 Updated from global requirements 118720d Remove external_fixed_ips from Plural_mappings in l3.py 3fec181 Clean-up L3 constant TODOs 2cedbf2 Unittests improvement 7b6e236 Restore extraroute dict after OVO change aed187d tests: change order of assertion in _validate/compare_resource 4eb4500 Refactor ml2_db to pass context db59d42 Propose abhiraut as neutronclient core 2baeaea OVO for Allocation and Endpoint e45d2a9 Correctly print --limit value passed via API 9b58a18 Fix flake8 error in DHCPOptsTestCase class 0ec47f9 objects: add delete_objects public method d40322c DVR: Fix race condition in creation of fip gateway 1866bd4 Bulk creation of SecurityGroups 55bda46 Remove model_base deprecations fd3bf33 DSCP packet marking support in Linuxbridge agent 503fc8c Remove duplicated revises_on_change in qos db model 1800ae6 Fix DHCP Port Creation on Service Subnets 60dc1a0 tempest: Fix qos extension check fd3eebb Unplug external device when delete snat namespace ced332c Revert "Squash revert to breaking changes" a1817f7 Optimize trunk details extension hook 8976e42 rally trunk port list 5772ba5 Get rid of DVR override of remove_router_interface a5a8a37 Check for unbound ports in L3 RPC handler 464397f devref: don't suggest to manually request stable branches d352661 Revert "lb-agent: ensure tap mtu is the same as physical device" 7eba573 Fix some slow unit tests ec6ed98 DVR: Fix IPtables driver for metering with DVR routers efe1c30 Get rid of DVR override of add_router_interface 8055746 Remove redundant "dvr" in test name cf6ffb7 Pass context and resource_type in RPC callback 9f19b3e Tempest tests uses only supported QoS rule types 2f4154a Get rid of DVR override of _port_has_ipv6_address e91561e Add filters support to constant queries test 6578c53 Remove deprecated dhcp_domain from dhcp_agent.ini 1a2a71b SRIOV: don't block report_state with device count 640618b OVO for VlanAllocation 21bb776 Correctly configure IPv6 addresses on upgrades 6948467 Add janitor to cleanup orphaned fip ports bb78621 Make UUIDField actually validate UUIDs 2acdced Delete related conntrack when delete vm 5cb73f5 Pecan: Change Quotas to use original controllers 1ef552a Use Query.column_descriptions instead of private property a2f971c Remove fallback functions in agent/rpc 3ee76d4 Convert filters to empty dict if None in DB's get_subnetpools(). c0983a1 stadium guidelines: Document stable branch creation 26020fe doc: Fix a warning 91d048d Allow keystone v3 in the designate driver 8fcba9d QoS: update the database before notifying the backend on delete fc251bf Expose [agent] extensions option into l3_agent.ini ebc56e8 Include ovsdb_connection option into all interface_driver agents 5e674bf Eliminate DVR inheritance of router create/update_db dfe738a Use ExtensionDescriptor from neutron-lib d8055d5 Support alembic 0.8.9 in test_autogen_process_directives d49b6f5 Use Port OVO object in test_l3_ext_gw_mode 42031f7 Refactoring config opts for ml2 plugin openvswitch b0ea7c9 Don't compile OVS kernel modules for functional job 5b49eff Update bug tag contacts due to absconsions 74e7145 configure_for_func_testing.sh: Remove neutron-legacy inclusion c15c4e4 configure_for_func_testing.sh: Source lib/neutron as well 59bb1ec Functional tests: change assert to wait_until_true 6ef6c3c revise doc: support_extension_aliases to supported_extension_aliases 958c093 Pecan: Remove get_resources() from get_pecan_resources() 76c9984 Fix docs headers f87274c Update DB lieutenant to Ann Taraday aa5985d Compare port_rule_masking() results with different approach 2e621ee Use to_policy_values for policy enforcement 028a349 Skip larger than /64 subnets in DHCP agent 78d5b24 Refactoring config options for mech_sriov opts 9168dbf Delete conntrack when remote ipset member removed 4c41a25 Migrate device_owner for router's interface 61eb74a Remove allow_pagination and allow_sorting config options a1b21e3 Integration of RouterRoute OVO 79e6251 tests: introduce update_obj_fields method in base objects test class 0daed9e Add notify for tag operations 10c0e36 gate_hook: Remove a stale comment c952952 Renamed all [AGENT] config sections into [agent] 1e36e9b Reuse plugin's update method for changing trunk status b522345 Calculate IPv4 DHCP subnets once for metadata d1930ce Lock in DHCP agent based on network_id 6aa9a3c Fix OSprofiler support a2047bb Introduce objects_exist method in neutron/objects/base.py a20eac7 OVO: add SubnetServiceType object and code integration. b25e29c Revert "Deprecate SR-IOV 'physical_device_mappings' config option" ea517a0 Removed deprecated method 69d7363 ml2: Add original port to context on _bind_port 0d07327 Integrate Address Scope OVO into DB 3b610a1 Add missing revises_on_change attribute 8b0bdbe Redirect ExtensionDescriptor to neutron-lib f33bada Remove PLURALS 20cd64b Show team and repo badges on README 949bce9 ovs-agent: Close ryu app on all exceptions f6df76c Get rid of DVR inheritance of _delete_current_gw_port 62176a9 Solve unexpected NoneType returned by _get_routers_can_schedule. 88ee81d fullstack: add some more security group tests 9660c2f Update network dict with segment and mtu info in _create_subnet_db 9e006cb Capture NotFound Exceptions in subnet postcommit 4e96500 Revert "DHCP agent: advertise SLAAC prefixes" 46430ab Get rid of floating IP bgp next_hop query 6566fb1 L3: Only send notifications if l3 plugin exists 542ff34 Pecan: Minor Fix in startup b0fd588 Squash revert to breaking changes 4151486 Remove REVERSED_PLURALS and get_resource_info() 562b638 Remove legacy oslo.messaging.notify.drivers 29273ad Fix InvalidInput exception output 2db889b Revert "Fix file permissions" 17563a8 Adopt neutron-lib plugin directory cf6917f DB: use get_unique_keys from oslo_db 7d42176 ovsdb: don't erase existing ovsdb managers 4c45d1e OVO for Provisioning Block DB Model 3e45c19 ovs-agent: Catch exceptions in agent_main_wrapper 3815a60 functional: Remove unused l3 config 427a960 Updated from global requirements e83d07d Improve performance of _modify_rules 1e91b63 Refactoring config options for plugin l2pop opts 5e1c3c7 Refactoring config options for plugin macvtap opts d7b40d1 Refactoring config options for l2 agent ext opts fcc13b5 Refactoring agent metadata config 7962dd4 Metering: sync only active routers hosted on the same host 42b209a Fix security_groups_provider_updated for linuxbridge cc92b42 Using a new security group in scenario tests eb14f66 Fix file permissions 3b8143b DB: remove deprecation warnings for BASEV2 fe7cac5 cors: update default configuration 138179a Add unit test in test_allowedaddresspairs_db 90398a3 Adjustment method execution order 2e5b4cb functional: Pass string tag to other_config 54beb5e functional: Use VLAN tags from range <1; 4094> 8f4a84c Replace create_test_segment with NetworkSegment object 846cad8 Remove unused LOG 132e220 Get post-subnet actions out of transaction c932b69 ProviderResourceAssociation to OVO 7e8f9d4 sanity check: Check that ip_nonlocal_bind works with namespaces eef348f callbacks: Make the value of FLOATING_IP match with api resource 299c3f8 Move SR-IOV VIF type constants to the portbindings extension 43b75bf Use new enginefacade metering db 5ea4c98 Move DVR fip agent gw port create out of transaction c935868 Separate floating IP port creation from transaction 03f7ec3 Use callbacks to create DVR floating GW port 01c4bda Disallow specifying too long name and description for qos 8eac5e2 Move AgentStatusCheckWorker to PeriodicWorker 5ff8aec Speed-up iptables_manager remove_chain() code 512455d Typo on side_effect rendering the test useless 7c7e241 Fix reset/start methods on AgentStatusCheckWorker d99724b Pecan:Add functional test for QuotasController 19336bb Elimination duplication of lots of DVR tests 0e51574 Have qos object increment port/network revision 07c8e14 Update devref examples about alembic migrations 9dbaf1c Trivial Fix - Update code to use Pike as the code name 5d6585b Stop using deprecated CORS.set_latent() 1e195af L3 scheduler: add retry indicators for bind_router 7403bcc Install OVS from git if current version < 2.5.1 1a0da09 Fix typos in standard_attr.py & attributes.py 081ad3b Clean up agent status check debt 894999d Collect OVS Debt 904f85e Disable 'accept_ra' in DHCP agent namespace f276a96 Replace assertEqual(None, *) with assertIsNone in tests 202564c Fix ML2, base db plugin update_subnet for transactions bd63489 DVR: Fix func docstring and comments 97f4a3f Move sysctl out of IPDevice class 7647e3e Parse the output of ip route more robustly 16ae419 Add L3 HA test with linux bridge bc03048 Fix "failed unplugging ha interface" error when deleting router d2c292e Add a trunk rally test 56a195e Updated from global requirements 653972f Fix typo in release note filename 9cb31b1 Use new enginefacade for servicetype_db b45fd35 Remove floatingip address ignores ha_state 7db68e3 ovsfw: small cleanups to improve readability 53ad480 Use new enginefacade for tag 4a91eea Change import statement to not rename the module 90e6715 Add unit tests for ip_lib.get_routing_table 3d6d939 policy: cache extracted parent fields for OwnerCheck cc9ce51 Changing arping command execute to accept 1 as extra OK code 4fdd89e l3-ha: Send gratuitous ARP when new floating IP is added 17ecc54 Make OVO exception NeutronDbObjectDuplicateEntry retriable 0a27cf7 Move OVO exceptions to neutron/objects/exceptions 7c0b219 neutron-lib: complete usage of helpers 63d428a Add check to address_pair that items in list are dict f5e30ab Add rally hook to neutron devstack plugin 96b8d9a Agent to OVO b0e56ac Retire deprecations for constants, exceptions, attributes c9847ef Remove second -m protocol from iptables rules 0140a18 Truncate IPDevice's name to interface max size 9c81f27 Change cfg.set_defaults into cors.set_defaults 9f1057b DHCP: Add missing path for marking ports as ready f90eefc Stop using osprofiler options as if they are part of public API e727b92 Register osprofiler options before setting engine hook 79ad849 Don't pass config object to send_ip_addr_adv_notif() 03b84bc Deprecate SR-IOV 'physical_device_mappings' config option 5805a07 Remove timeutils.clear_time_override in neutron 2013058 Refactor OVSDB native lib to be more customizable e8e4e5d Deprecate run_tests.sh e43eb80 Removed deprecation warning for waiting_until_true bea8985 Removed deprecated tests function 6bb12ef Removed deprecated function import_modules_recursively 4e25ba8 Switch to new hacking 0.12 b97d008 Avoid UnboundLocalErrors in _create_bulk_ml2 f5a721e Introduce context in methods for Router Extra Attributes OVO usage. 3e44d75 Pecan: Find subresource controllers by parent eca4ace Removed dispose_pool() from db/api 6d85a51 Removed deprecation warning for converters and validators 7d17f8c Removed get_engine() from db/api 5189cbc Removed paginate_query and sqlalchemyutils module 05cd620 Removed deprecated methods for AgentSchedulers 1cd0585 Removed deprecated checks eb43062 Removed update_network from plugin.common.utils 3e6eea3 Removed network_segment functions from ml2.db 4ec456d Removed deprecated class LocalVLANMapping 6b59cc7 Deprecate send_arp_for_ha option cc861ad Change IPAM DB API to use context instead of session object. ea7b516 Add fullstack test for check DSCP marks outbounds 0e8b32b L3-HA: remove unused deprecated code 3d68a51 neutron-lib: use replace_file from neutron lib f692c81 Remove unused configuration variable fa34da9 Fix typo in comment ed6aeed Migrate to neutron-lib released API definition for trunk APIs db353d3 Updated from global requirements 16901e8 Reduce rally executions of create_and_list_ports f2fb460 Neutron lib adoption dbbbe59 Use ensure_tree from oslo_utils.fileutils 7b277a1 Remove last vestiges of oslo-incubator 4c5a654 Updated from global requirements ac2b7b0 Updated from global requirements 1392d37 Pecan: No fields to plugin on GET member actions 468b2f1 IP Conntrack Manager changes for FWaaS v2 7dc2707 Only mark ports ready on synced networks 660946a Fix modify_fields_from_db for vif_details empty str 1a696c5 Forbid contract migration scripts for Ocata 7675495 Check if namespace exists before getting devices 11c3f0c DHCP agent: advertise SLAAC prefixes 8be87fb Use new enginefacade for address_scope_db b7fad98 Replace a test with use of network object d400c04 Add 'to_primitive' for MACAddress and IPNetwork be3aa89 Update Lieutenant table with new entries 48d9583 Usage of new enginefacade for flavor db 3c1bf86 Don't depend on translated strings for error check 204a89e Simplify resources module in RPC callbacks e8fd250 SR-IOV: Remove deprecated supported_pci_vendor_devs option fef33d7 ipv6_utils: delete get_ipv6_addr_by_EUI64 2475265 Fix specs broken link 6980962 Make README less verbose and to the point aa54d12 Make crystal clear how to contribute/approach the neutron community 8f80a52 Refactor/prepare db common utils for neutron-lib 837abf5 Add OVO for dns Objects 23ffde8 Fix test_unwatch_log() to cleanup after itself 4135040 Updated from global requirements 2605056 TrivialFix: Modify the spelling mistake 4f0caa0 Rename ipv6_utils.is_enabled() 2c7ef56 Handle db_add in transaction for new objects 6baedb9 [TrivialFix] Replace 'assertTrue(a in b)' with 'assertIn(a, b)' c154045 Correcting a spelling in README d34bbf5 Refactoring config options for cache_utils opts a44543f Updated from global requirements a233ac5 OVO for SegmentHostMapping 32e1ee2 Updated from global requirements 6425240 Pecan: Bulk create with one item returns plural 93104d3 Log OVS IDL library errors to neutron logs e8bd642 Replace retrying with tenacity b806d2c Removes the superfluous 'that' f7a2d4e Add functional tests for OVSDB Connection 9a6e3f9 Removed unnecessary file(openstack/common) in run_stack.sh 063cbca objects: add validate_filters option for count() method. 14ee329 ovsfw: Add a dl_type match for action=ct flows 784864d Update metadata proxy when subnet add/delete dcf2efd OVO for Router Extra Attributes 9204b34 Validate type of allowed_address_pairs c1b28a8 Pecan: Fix internal server error on QoS rule PUT 9006726 Pecan: Don't prefetch resource fields on DELETE 4264083 Generate OVSDB schema helper in a separate method de3ff15 objects: Remove tenant_id from to_dict() when project_id is not set. b39bad5 Updated from global requirements 934b95d Cleanup coverage configuration 71c8d35 Fix spelling errors ca62e7e Make ovs functional tests mutually isolated 7fdb98c Pecan: rework notifier hook for registry callbacks cb48d15 set_db_attribute differs between vsctl and native 3d500d3 Only send string values to OVSDB other_config column c4b2c8d test_routers_flavors: Skip if requirements are not met 19c354a Add http_proxy_to_wsgi to api-paste 46ba1aa Only emit deprecation warning when deprecated value read 0c1c754 Swap the order of arguments to _check_equal 9733825 Cleanup of SecurityGroup classes 013a48f Remove deprecation warnings for agents_db 29e15f9 Have RouterRoute object increment Router revision 070ee35 Allow to override Idl class in OVSDB Connection 43f5b59 Drop MANIFEST.in - it's not needed by pbr 7858b75 Updated from global requirements ff9c6e2 fullstack: Add security group tests c4a3a72 neutron-lib: use dict methods from helpers 6941152 neutron-lib: use get_hostname 45517be neutron-lib: use cpu_count e6d6a38 Pecan: add http_proxy_to_wsgi middleware 6d143e8 Use BaseDbObjectTestCase in AddressScope UT 20a290d Devref: fix repeated 'testing documentation' text 03be404 Removes remaining Hyper-V plugin 1d01864 Added trailing slash in link to Networking API v2.0 135a3fd Add db_add to OVSDB API abc31a7 Extend project_id in object dicts (Newton only) a6909c8 Integrate SubnetRoute OVO 83479f8 Fix callers of _make_port_dict() 88853cc objects: Removed project_id/tenant_id field translation 2901640 Remove deprecation warnings for l3_hamode_db 14ffea4 Fix IPv6 PD with pluggable IPAM bb9b610 OVO for Router Route 1628fb7 Improved readibility and fixed indentation 396abb8 neutron-lib: start using neutron-lib helpers 497e6bd Cleanup Newton Release Notes 6d7586e Fix periodic jobs: Add databases to bindep.txt ead39fa Relocate DNS db models f1099f1 Updated from global requirements 84511a8 ovsfw: Fix warning message when fetching port's other_config e669e7b Relocate Agent DB model db9ef6d Add api test for create update network and port with dns 0963aec Refactor code to deprecate get_interface_mac 1762dc7 Objects: Add README for neutron/objects directory tree 68caece Add sample_default for state change server config 0e5caeb Ignore gre0 and gretap0 devices in netns cleanup script. 145dbaa Get rid of double-join to rbac_entries without filter bd1c454 Deterministic ordering of fixed_ips eb1efc7 Account for Py2/Py3 differences in fcntl.ioctl return value cf7bb2f Enable release notes translation 2d33e2d Handle label_id's DBReferenceError when creating label-rule 945295a Add required extension to trunk_details descriptor 72ddd23 Relocate Segment DB Models d41ebf8 Make Jakub Libosvar contact for ovs-fw tag fc93f7f Relocate Flavor and ServiceProfile DB models 6797cbe Fix typo in comment fb53038 L3 DVR: always notify on ROUTER_INTERFACE AFTER_CREATE 5b9fe34 Fix _list_availability_zones for PostgreSQL 509bc4c Relocate dvr model 19af726 Fix the 'port_id' attribute not exist error f9b1f09 Relocate L3HARouter DB model 6a011c3 Replace create_test_network with network object b6a296e Relocate Tag DB model 2f7c58f DVR: remove misleading error log 5c09536 Enable OVSDB Connection unit tests for py3 1f4f806 Handle uuid references within an ovsdb transaction f327aa6 Remove deprecation warning for l3_agent_scheduler a8e1bad Expose OVS bridge related options into metering agent config file 62fd09a Refactoring config options for ml2 plugin drivers 676257c Remove recursion from import_modules_recursively 2823c2e Refactoring config options for l3 ha agent opts cf6d700 Relocate SegmentHostMapping DB model 22b4f03 Relocate Router Extra Attributes DB Model 8ad62fe Remove old oslo.messaging transport aliases a53a4d9 Relocate router route DB model d59fa2b Disallow specifying too long name for meter-label 190ae4f Fix misleading error trace in trunk fullstack life cycle test e1a832d Relocate Geneve DB models 438d4a8 TestSanityCheck: drop test tables during cleanup 322c1ee Removed is_deadlock from db/api 2760157 Relocate external network db models f0439a0 fullstack: VLAN aware VMs test 94ee8bc Introduce ovo objects for networks 698a8f0 Schedulers: use consistent plugin, context args 80eb375 Fixed functional iptables firewall tests for newer kernels 286af7c Relocate ProviderResourceAssociation DB models dcd7842 Introduce ovo objects for ports 558c051 Relocate VlanAllocation DB model a80b89b Ignore NULL fixed_ips for duplicate floating_ip check 820270f Relocate Metering DB models 930655c Relocate RouterL3AgentBinding DB model ddc2367 Updated from global requirements 2b66c6a Relocate L3 DB Models 0d81441 Relocate Provisioning Block DB Model 4148102 Process OVS trunk bridges associated to VM deletes 7acfc2f Fix typo overriden => overridden e83a44b iptables: fail to start ovs/linuxbridge agents on missing sysctl knobs cd7d63b Refetch subnet/network from DB in ML2 update ops 71dd840 Send a callback before attaching a subnet to a router 98de72e Don't try to delete non-existent namespace a9585c7 Added bindep.txt to the project 83ef231 Don't swallow ImportError from load_class_by_alias_or_classname e17d8ec Remove requests-mock from test-requirements c0d0986 Correct fix for IPv6 auto address interfaces 3daffd2 Darek (@dasm) is our new release liaison for Ocata 3ace0e5 Make HenryG the Magnificent responsible for 'oslo' LP tag 971cf85 Add missing revision number altercations d1fb423 Fixes for missing IPs on subnets in DHCP agent 873b5ac Retry port update on IpAddressAllocationNotFound 70ea188 New option for num_threads for state change server 08f2af1 Handle add/remove subports events loss due to agent failures e49b707 Fullstack: Add helper FakeFullstackMachinesList d24f664 trunk: Log RPC communication 3224e39 tests: Move testtools to 3rd party libraries section a17cda0 Fix pep8 E501 line too long d4f92ed Fix dhcp_release6 error when not supported 0d84833 XenAPI: add support for conntrack with XenServer cb79d09 Fix ML2 revision_number handling in port updates 7e82296 Fix ML2 test extension driver API test cases 7422903 Relocate PortBindingPort DB Model b078060 Relocate VxlanAllocation/VxlanEndpoints DB model c582d17 Support new osprofiler API 8612aaa Include entity in provisioning block logs edf3f23 API tests: Check MTU sanity of trunk/subport a4846c0 Use assertItemsEqual to compare dicts a01ca10 Fix wrong use of six.moves.queue.get() 9730104 Allow more time for DB migration tests 2945763 Update trunk metadata during wire/unwire operations 4371ae0 Ensure trunk status is acknowledged during OVS subport operations 66df336 Clean-up Tempest test networks with project_id 39c4f8f Add MAC address to subports in trunk_details 01f3c54 Updated from global requirements d1389dc Install dibbler.filters rootwrap file e11102e tests: catch eventlet.Timeout exception 8842460 Add basic status transition trunk scenario test 49609f3 Remove deprecated class NeutronController 5e39b88 Fix typos in test_ipam_pluggable_backend.py & base.py 09d1185 Do not retry default security group creation e80112c Fix a release note typo for implicit provider loading deprecation 2a5826c Revert "Do not retry default security group creation" 14fee9c Try to reuse existing IPs when a port update specifies subnet 9019ff2 Make DHCP agent use 'revision_number' bad3eaa Stop oslo_messaging from error logging CallbackNotFound 673abd5 Don't immediately restart in DHCP agent on port change 70907b3 Always cleanup stale devices on DHCP setup failure 0db052d Reduce log level for extensions not being supported b65d18c Add admin api tests for project-id 5ad5d10 Do not retry default security group creation 648e079 Increase subnet count for rally test a15d259 Lower concurrency on rally port job 933af3f Add to rally quotas to handle worst case quota race 19f3e9a Fix linuxbridge trunk subport RPC event handler 039673c OVS agent: configure both OF10 and OF13 251922f Disable DHCP on agent port removal 414f607 Garbage collect HasStandardAttributes subclasses in StandardAttrTestCase 225477c fullstack: execute qos tests for all ovsdb/of interface permutations ecdf751 Change the prefix for trunk subports device_owner 0541402 Fix devref typo b3af52e Keepalived global_defs configuration entries required to avoid DNS lookup d9cc6de DHCP: enhance DHCP release log d0f1a61 Make neutron-db-manage ready for ocata development f1f4121 Update reno for stable/newton f4a7ad4 Fix useless use of _nxm variant in an OVS field name ebd9aff Added missing translation marker for an error 033903a Add fullstack test with OVS arp_responder 0f5d18d Don't raise RetryRequest for port in delete_subnet 31e1aeb Forbid importing neutron.tests.* from outside tests subtree 268e10e Raise level of message to info 465d221 Add common way to extend standard attribute models e80e19f Don't warn in VLAN Plumber on tagless children 424a633 Include timezone in timestamp fields 42b574e Demote error trace to debug level for auto allocation operations a17c52f tests: Don't raise TimeoutError when waiting for ping 3e25ee3 Add sg_id in the AFTER_DELETE event of sg_rule delete 053448d stadium: remove neutron-release from release job for stadium projects 65757a3 devref: cleaning up release guidelines for stadium subprojects 1380856 Fix SR-IOV qos extension calls to clear_rate functions. 47439cb Add link to review dashboard in the effective guide 9339117 Remove duplicated tool 0494f21 ovsfw: fix troublesome port_rule_masking b5fa868 Skip setup_port_filters for skipped_devices ae09911 Disallow specifying too long description for meter-label 55b6c6a Fixes DBDeadlock race condition during driver initialization. 753f4ea Not check subnet with dhcp disabled when get_isolated_subnets 7e5d12d Clean import in code 7deba33 Use more specific asserts in tests 989aba6 fullstack: test for IPv6 north-south traffic 2e33fd8 ML2: Lower log level of "Host filtering is disabled" message 20bdfaa Removing unused file neutron/agent/l3/config a348c38 Add API test for tag 846b83f Remove unused params named "context" in filter_attributes a167a3e Check for l3 agents count before router update Diffstat (except docs and test files) ------------------------------------- .coveragerc | 2 +- .gitreview | 1 + .pylintrc | 2 +- .testr.conf | 6 +- CONTRIBUTING.rst | 12 +- HACKING.rst | 3 +- MANIFEST.in | 14 - README.rst | 44 +- TESTING.rst | 116 +-- bin/neutron-rootwrap-xen-dom0 | 24 +- bindep.txt | 19 + devstack/lib/dns | 6 + devstack/lib/ovs | 73 +- devstack/plugin.sh | 7 + .../devref/db_transient_failure_injection.rst | 38 + etc/api-paste.ini | 11 +- etc/neutron/rootwrap.d/dhcp.filters | 5 +- etc/neutron/rootwrap.d/iptables-firewall.filters | 9 +- etc/neutron/rootwrap.d/l3.filters | 9 +- etc/neutron/rootwrap.d/netns-cleanup.filters | 12 + etc/neutron/rootwrap.d/privsep.filters | 31 + etc/oslo-config-generator/dhcp_agent.ini | 1 + etc/oslo-config-generator/l3_agent.ini | 1 + etc/oslo-config-generator/metering_agent.ini | 1 + etc/oslo-config-generator/ml2_conf_sriov.ini | 6 - etc/oslo-config-generator/neutron.conf | 1 + etc/oslo-config-generator/openvswitch_agent.ini | 1 + neutron/agent/agent_extensions_manager.py | 17 +- neutron/agent/common/config.py | 12 +- neutron/agent/common/ovs_lib.py | 54 +- neutron/agent/common/utils.py | 8 + neutron/agent/dhcp/agent.py | 185 +++-- neutron/agent/dhcp_agent.py | 6 +- neutron/agent/l2/extensions/fdb_population.py | 18 +- neutron/agent/l2/extensions/qos.py | 15 +- neutron/agent/l2/extensions/qos_linux.py | 29 + neutron/agent/l2/l2_agent_extensions_manager.py | 3 +- neutron/agent/l3/agent.py | 19 +- neutron/agent/l3/config.py | 26 - neutron/agent/l3/dvr.py | 6 - neutron/agent/l3/dvr_edge_ha_router.py | 12 +- neutron/agent/l3/dvr_edge_router.py | 37 +- neutron/agent/l3/dvr_fip_ns.py | 177 ++++- neutron/agent/l3/dvr_local_router.py | 112 ++- neutron/agent/l3/dvr_router_base.py | 34 +- neutron/agent/l3/dvr_snat_ns.py | 17 +- neutron/agent/l3/ha.py | 58 +- neutron/agent/l3/ha_router.py | 47 +- neutron/agent/l3/keepalived_state_change.py | 45 +- neutron/agent/l3/l3_agent_extensions_manager.py | 3 +- neutron/agent/l3/legacy_router.py | 2 +- neutron/agent/l3/router_info.py | 140 ++-- neutron/agent/l3/router_processing_queue.py | 2 +- neutron/agent/l3_agent.py | 11 +- neutron/agent/linux/async_process.py | 21 +- neutron/agent/linux/daemon.py | 2 +- neutron/agent/linux/dhcp.py | 163 +++-- neutron/agent/linux/dibbler.py | 6 +- neutron/agent/linux/external_process.py | 4 +- neutron/agent/linux/interface.py | 106 ++- neutron/agent/linux/ip_conntrack.py | 104 ++- neutron/agent/linux/ip_lib.py | 310 +++++--- neutron/agent/linux/ipset_manager.py | 9 +- neutron/agent/linux/iptables_firewall.py | 187 ++--- neutron/agent/linux/iptables_manager.py | 34 +- neutron/agent/linux/keepalived.py | 130 +++- .../agent/linux/openvswitch_firewall/constants.py | 6 - .../agent/linux/openvswitch_firewall/exceptions.py | 28 + .../agent/linux/openvswitch_firewall/firewall.py | 139 ++-- neutron/agent/linux/openvswitch_firewall/rules.py | 11 +- neutron/agent/linux/ovsdb_monitor.py | 23 +- neutron/agent/linux/pd.py | 38 +- neutron/agent/linux/polling.py | 4 +- neutron/agent/linux/ra.py | 8 +- neutron/agent/linux/utils.py | 110 ++- neutron/agent/linux/xenapi_root_helper.py | 120 ++++ neutron/agent/metadata/agent.py | 2 +- neutron/agent/metadata/config.py | 116 --- neutron/agent/metadata/namespace_proxy.py | 41 +- neutron/agent/metadata_agent.py | 8 +- neutron/agent/ovsdb/api.py | 63 +- neutron/agent/ovsdb/impl_idl.py | 25 +- neutron/agent/ovsdb/impl_vsctl.py | 45 +- neutron/agent/ovsdb/native/commands.py | 175 ++++- neutron/agent/ovsdb/native/connection.py | 94 ++- neutron/agent/ovsdb/native/helpers.py | 12 +- neutron/agent/ovsdb/native/idlutils.py | 57 +- neutron/agent/ovsdb/native/vlog.py | 30 + neutron/agent/rpc.py | 85 +-- neutron/agent/securitygroups_rpc.py | 50 +- neutron/agent/windows/ip_lib.py | 44 +- neutron/agent/windows/utils.py | 5 +- neutron/api/api_common.py | 49 +- neutron/api/extensions.py | 154 +--- .../api/rpc/agentnotifiers/dhcp_rpc_agent_api.py | 7 +- neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py | 9 +- .../rpc/agentnotifiers/metering_rpc_agent_api.py | 9 +- neutron/api/rpc/callbacks/consumer/registry.py | 26 +- neutron/api/rpc/callbacks/resources.py | 45 +- neutron/api/rpc/callbacks/version_manager.py | 4 +- neutron/api/rpc/handlers/dhcp_rpc.py | 18 +- neutron/api/rpc/handlers/dvr_rpc.py | 4 +- neutron/api/rpc/handlers/l3_rpc.py | 18 +- neutron/api/rpc/handlers/metadata_rpc.py | 4 +- neutron/api/rpc/handlers/resources_rpc.py | 44 +- neutron/api/rpc/handlers/securitygroups_rpc.py | 4 +- neutron/api/v2/attributes.py | 147 +--- neutron/api/v2/base.py | 22 +- neutron/api/v2/resource.py | 1 + neutron/api/v2/resource_helper.py | 14 +- neutron/api/v2/router.py | 10 +- neutron/api/views/versions.py | 2 +- neutron/callbacks/events.py | 2 + neutron/callbacks/resources.py | 3 +- neutron/cmd/eventlet/usage_audit.py | 10 +- neutron/cmd/linuxbridge_cleanup.py | 6 +- neutron/cmd/netns_cleanup.py | 111 ++- neutron/cmd/pd_notify.py | 6 +- neutron/cmd/sanity/checks.py | 65 +- neutron/cmd/sanity_check.py | 40 +- neutron/common/cache_utils.py | 46 +- neutron/common/config.py | 47 +- neutron/common/constants.py | 40 +- neutron/common/eventlet_utils.py | 3 + neutron/common/exceptions.py | 30 +- neutron/common/ipv6_utils.py | 42 +- neutron/common/profiler.py | 17 +- neutron/common/rpc.py | 21 +- neutron/common/utils.py | 577 +++++++++------ neutron/conf/agent/agent_extensions_manager.py | 25 + neutron/conf/agent/database/__init__.py | 0 neutron/conf/agent/database/agents_db.py | 28 + neutron/conf/agent/dhcp.py | 7 - neutron/conf/agent/l2_ext_fdb_population.py | 32 + neutron/conf/agent/l3/config.py | 1 + neutron/conf/agent/l3/ha.py | 62 ++ neutron/conf/agent/metadata/__init__.py | 0 neutron/conf/agent/metadata/config.py | 119 ++++ neutron/conf/agent/metadata/namespace_proxy.py | 54 ++ neutron/conf/agent/xenapi_conf.py | 36 + neutron/conf/cache_utils.py | 31 + neutron/conf/common.py | 43 +- neutron/conf/plugins/ml2/drivers/driver_type.py | 98 +++ neutron/conf/plugins/ml2/drivers/l2pop.py | 29 + neutron/conf/plugins/ml2/drivers/macvtap.py | 38 + .../plugins/ml2/drivers/mech_sriov/__init__.py | 0 .../plugins/ml2/drivers/mech_sriov/agent_common.py | 57 ++ neutron/conf/plugins/ml2/drivers/ovs_conf.py | 164 +++++ neutron/conf/services/extdns_designate_driver.py | 14 +- neutron/conf/services/qos_driver_manager.py | 4 +- neutron/context.py | 33 +- neutron/core_extensions/qos.py | 7 +- neutron/db/_utils.py | 123 ++++ neutron/db/address_scope_db.py | 73 +- neutron/db/agents_db.py | 120 ++-- neutron/db/agentschedulers_db.py | 83 +-- neutron/db/allowedaddresspairs_db.py | 24 +- neutron/db/api.py | 74 +- neutron/db/availability_zone/router.py | 35 +- neutron/db/common_db_mixin.py | 166 ++--- neutron/db/db_base_plugin_common.py | 47 +- neutron/db/db_base_plugin_v2.py | 261 ++++--- neutron/db/dns_db.py | 113 +-- neutron/db/dvr_mac_db.py | 50 +- neutron/db/external_net_db.py | 93 ++- neutron/db/extra_dhcp_opt/models.py | 3 +- neutron/db/extraroute_db.py | 63 +- neutron/db/flavors_db.py | 272 +++----- neutron/db/ipam_backend_mixin.py | 161 +++-- neutron/db/ipam_pluggable_backend.py | 7 +- neutron/db/l3_agentschedulers_db.py | 165 ++--- neutron/db/l3_attrs_db.py | 96 ++- neutron/db/l3_db.py | 611 ++++++++-------- neutron/db/l3_dvr_db.py | 562 +++++++-------- neutron/db/l3_dvrscheduler_db.py | 29 +- neutron/db/l3_gwmode_db.py | 3 +- neutron/db/l3_hamode_db.py | 506 ++++++-------- neutron/db/l3_hascheduler_db.py | 36 +- neutron/db/metering/metering_db.py | 144 ++-- neutron/db/metering/metering_rpc.py | 17 +- neutron/db/migration/__init__.py | 11 + neutron/db/migration/alembic_migrations/env.py | 2 +- .../alembic_migrations/versions/EXPAND_HEAD | 2 +- .../alembic_migrations/versions/kilo_initial.py | 2 + .../liberty/expand/48153cb5f051_qos_db_changes.py | 8 +- .../contract/5ffceebfada_rbac_network_external.py | 10 +- .../mitaka/contract/c6c112992c9_rbac_qos_policy.py | 7 +- .../mitaka/expand/15e43b934f81_rbac_qos_policy.py | 6 +- .../3b935b28e7a0_migrate_to_pluggable_ipam.py | 4 +- ...61a21bcfc_uniq_floatingips0floating_network_.py | 2 +- .../expand/929c968efe70_add_pk_version_table.py | 33 + .../a9c43481023c_extend_ml2_port_bindings.py | 71 ++ neutron/db/migration/cli.py | 6 +- neutron/db/migration/models/head.py | 20 - neutron/db/model_base.py | 35 - neutron/db/models/address_scope.py | 5 +- neutron/db/models/agent.py | 59 ++ neutron/db/models/allowed_address_pair.py | 3 +- neutron/db/models/dns.py | 92 +++ neutron/db/models/dvr.py | 26 + neutron/db/models/external_net.py | 38 + neutron/db/models/flavor.py | 49 ++ neutron/db/models/l3.py | 118 ++++ neutron/db/models/l3_attrs.py | 48 ++ neutron/db/models/l3agent.py | 41 ++ neutron/db/models/l3ha.py | 87 +++ neutron/db/models/metering.py | 46 ++ neutron/db/models/plugins/ml2/geneveallocation.py | 42 ++ neutron/db/models/plugins/ml2/vlanallocation.py | 41 ++ neutron/db/models/plugins/ml2/vxlanallocation.py | 45 ++ neutron/db/models/portbinding.py | 33 + neutron/db/models/provisioning_block.py | 27 + neutron/db/models/securitygroup.py | 9 +- neutron/db/models/segment.py | 76 ++ neutron/db/models/servicetype.py | 26 + neutron/db/models/subnet_service_type.py | 7 +- neutron/db/models/tag.py | 31 + neutron/db/models_v2.py | 63 +- neutron/db/network_dhcp_agent_binding/models.py | 4 +- neutron/db/port_security/models.py | 2 + neutron/db/portbindings_db.py | 40 +- neutron/db/portsecurity_db_common.py | 14 +- neutron/db/provisioning_blocks.py | 67 +- neutron/db/qos/api.py | 13 +- neutron/db/qos/models.py | 9 +- neutron/db/quota/api.py | 16 +- neutron/db/quota/driver.py | 4 +- neutron/db/rbac_db_mixin.py | 6 +- neutron/db/rbac_db_models.py | 8 +- neutron/db/securitygroups_db.py | 78 ++- neutron/db/securitygroups_rpc_base.py | 6 +- neutron/db/segments_db.py | 124 ++-- neutron/db/servicetype_db.py | 44 +- neutron/db/sqlalchemyutils.py | 32 - neutron/db/standard_attr.py | 62 +- neutron/db/standardattrdescription_db.py | 17 +- neutron/db/tag_db.py | 46 +- neutron/extensions/address_scope.py | 15 +- neutron/extensions/agent.py | 20 +- neutron/extensions/allowedaddresspairs.py | 17 +- neutron/extensions/auto_allocated_topology.py | 8 +- neutron/extensions/availability_zone.py | 10 +- neutron/extensions/default_subnetpools.py | 2 +- neutron/extensions/dhcpagentscheduler.py | 13 +- neutron/extensions/dns.py | 4 +- neutron/extensions/dvr.py | 2 +- neutron/extensions/external_net.py | 2 +- neutron/extensions/extra_dhcp_opt.py | 2 +- neutron/extensions/extraroute.py | 4 +- neutron/extensions/flavors.py | 38 +- neutron/extensions/ip_allocation.py | 3 +- neutron/extensions/l2_adjacency.py | 2 +- neutron/extensions/l3.py | 24 +- neutron/extensions/l3_ext_gw_mode.py | 2 +- neutron/extensions/l3_ext_ha_mode.py | 51 +- neutron/extensions/l3_flavors.py | 2 +- neutron/extensions/l3agentscheduler.py | 12 +- neutron/extensions/metering.py | 15 +- neutron/extensions/multiprovidernet.py | 2 +- neutron/extensions/netmtu.py | 2 +- neutron/extensions/network_availability_zone.py | 2 +- neutron/extensions/network_ip_availability.py | 6 +- neutron/extensions/pagination.py | 6 +- neutron/extensions/portbindings.py | 5 +- neutron/extensions/portsecurity.py | 2 +- neutron/extensions/project_id.py | 4 +- neutron/extensions/providernet.py | 2 +- neutron/extensions/qos.py | 18 +- neutron/extensions/quotasv2.py | 18 +- neutron/extensions/rbac.py | 20 +- neutron/extensions/revisions.py | 17 +- neutron/extensions/router_availability_zone.py | 2 +- neutron/extensions/routerservicetype.py | 2 +- neutron/extensions/securitygroup.py | 23 +- neutron/extensions/segment.py | 15 +- neutron/extensions/servicetype.py | 7 +- neutron/extensions/sorting.py | 6 +- neutron/extensions/standardattrdescription.py | 26 +- neutron/extensions/subnet_service_types.py | 11 +- neutron/extensions/subnetallocation.py | 3 +- neutron/extensions/tag.py | 83 ++- neutron/extensions/tag_ext.py | 90 +++ neutron/extensions/timestamp.py | 61 ++ neutron/extensions/timestamp_core.py | 65 -- neutron/extensions/timestamp_ext.py | 68 -- neutron/extensions/trunk.py | 84 +-- neutron/extensions/trunk_details.py | 28 +- neutron/extensions/vlantransparent.py | 2 +- neutron/hacking/checks.py | 71 +- neutron/ipam/drivers/neutrondb_ipam/db_api.py | 111 ++- neutron/ipam/drivers/neutrondb_ipam/driver.py | 62 +- neutron/ipam/subnet_alloc.py | 9 +- neutron/manager.py | 81 +-- neutron/notifiers/nova.py | 16 +- neutron/objects/README.rst | 22 + neutron/objects/address_scope.py | 4 +- neutron/objects/agent.py | 76 ++ neutron/objects/auto_allocate.py | 37 + neutron/objects/base.py | 169 +++-- neutron/objects/common_types.py | 133 +++- neutron/objects/db/api.py | 26 +- neutron/objects/exceptions.py | 62 ++ neutron/objects/extensions/port_security.py | 8 +- neutron/objects/flavor.py | 97 +++ neutron/objects/floatingip.py | 37 + neutron/objects/ipam.py | 104 +++ neutron/objects/network.py | 255 +++++++ neutron/objects/network/__init__.py | 0 neutron/objects/network/extensions/__init__.py | 0 .../objects/network/extensions/port_security.py | 26 - neutron/objects/network/network_segment.py | 38 - neutron/objects/plugins/__init__.py | 0 neutron/objects/plugins/ml2/__init__.py | 0 neutron/objects/plugins/ml2/base.py | 36 + neutron/objects/plugins/ml2/flatallocation.py | 32 + neutron/objects/plugins/ml2/geneveallocation.py | 48 ++ neutron/objects/plugins/ml2/greallocation.py | 48 ++ neutron/objects/plugins/ml2/vlanallocation.py | 36 + neutron/objects/plugins/ml2/vxlanallocation.py | 50 ++ .../objects/port/extensions/allowedaddresspairs.py | 7 +- neutron/objects/port/extensions/extra_dhcp_opt.py | 9 +- neutron/objects/ports.py | 376 ++++++++++ neutron/objects/provisioning_blocks.py | 32 + neutron/objects/qos/policy.py | 16 +- neutron/objects/qos/rule.py | 8 +- neutron/objects/qos/rule_type.py | 28 +- neutron/objects/rbac_db.py | 17 +- neutron/objects/router.py | 97 +++ neutron/objects/securitygroup.py | 16 +- neutron/objects/servicetype.py | 36 + neutron/objects/subnet.py | 54 +- neutron/objects/subnetpool.py | 18 +- neutron/objects/trunk.py | 26 +- neutron/opts.py | 105 ++- neutron/pecan_wsgi/app.py | 6 +- neutron/pecan_wsgi/controllers/quota.py | 7 +- neutron/pecan_wsgi/controllers/resource.py | 26 +- neutron/pecan_wsgi/controllers/utils.py | 194 ++++- neutron/pecan_wsgi/hooks/body_validation.py | 7 +- neutron/pecan_wsgi/hooks/notifier.py | 109 +-- neutron/pecan_wsgi/hooks/ownership_validation.py | 4 +- neutron/pecan_wsgi/hooks/policy_enforcement.py | 47 +- neutron/pecan_wsgi/hooks/quota_enforcement.py | 3 +- neutron/pecan_wsgi/startup.py | 64 +- neutron/plugins/common/constants.py | 9 +- neutron/plugins/common/utils.py | 19 - neutron/plugins/hyperv/__init__.py | 0 neutron/plugins/hyperv/agent/__init__.py | 0 .../plugins/hyperv/agent/security_groups_driver.py | 34 - neutron/plugins/ml2/db.py | 105 ++- neutron/plugins/ml2/driver_api.py | 128 +++- neutron/plugins/ml2/driver_context.py | 6 +- neutron/plugins/ml2/drivers/agent/_common_agent.py | 5 +- neutron/plugins/ml2/drivers/helpers.py | 24 +- neutron/plugins/ml2/drivers/l2pop/config.py | 27 - neutron/plugins/ml2/drivers/l2pop/db.py | 44 +- neutron/plugins/ml2/drivers/l2pop/mech_driver.py | 46 +- .../drivers/l2pop/rpc_manager/l2population_rpc.py | 36 +- .../agent/extension_drivers/qos_driver.py | 106 ++- .../linuxbridge/agent/linuxbridge_neutron_agent.py | 45 +- .../linuxbridge/mech_driver/mech_linuxbridge.py | 5 +- .../plugins/ml2/drivers/macvtap/agent/config.py | 37 - .../drivers/macvtap/agent/macvtap_neutron_agent.py | 20 +- .../ml2/drivers/mech_sriov/agent/common/config.py | 38 +- .../drivers/mech_sriov/agent/eswitch_manager.py | 75 +- .../agent/extension_drivers/qos_driver.py | 10 +- .../ml2/drivers/mech_sriov/agent/pci_lib.py | 20 +- .../drivers/mech_sriov/agent/sriov_nic_agent.py | 16 +- .../drivers/mech_sriov/mech_driver/mech_driver.py | 81 +-- .../ml2/drivers/openvswitch/agent/common/config.py | 148 +--- .../drivers/openvswitch/agent/common/constants.py | 1 + .../agent/extension_drivers/qos_driver.py | 10 +- .../openvswitch/agent/openflow/native/br_int.py | 2 +- .../openvswitch/agent/openflow/native/br_tun.py | 2 +- .../agent/openflow/native/ovs_bridge.py | 2 +- .../agent/openflow/native/ovs_ryuapp.py | 27 +- .../openvswitch/agent/openflow/ovs_ofctl/br_int.py | 2 +- .../agent/openflow/ovs_ofctl/ovs_bridge.py | 3 - .../openvswitch/agent/ovs_dvr_neutron_agent.py | 7 - .../drivers/openvswitch/agent/ovs_neutron_agent.py | 98 ++- .../ml2/drivers/openvswitch/agent/vlanmanager.py | 8 - .../agent/xenapi/etc/xapi.d/plugins/netwrap | 34 +- .../openvswitch/mech_driver/mech_openvswitch.py | 35 +- neutron/plugins/ml2/drivers/type_flat.py | 65 +- neutron/plugins/ml2/drivers/type_geneve.py | 63 +- neutron/plugins/ml2/drivers/type_gre.py | 13 +- neutron/plugins/ml2/drivers/type_local.py | 8 +- neutron/plugins/ml2/drivers/type_tunnel.py | 147 +++- neutron/plugins/ml2/drivers/type_vlan.py | 82 +-- neutron/plugins/ml2/drivers/type_vxlan.py | 55 +- neutron/plugins/ml2/extensions/dns_integration.py | 96 +-- neutron/plugins/ml2/managers.py | 119 ++-- neutron/plugins/ml2/models.py | 15 +- neutron/plugins/ml2/ovo_rpc.py | 120 ++++ neutron/plugins/ml2/plugin.py | 242 ++++--- neutron/plugins/ml2/rpc.py | 21 +- neutron/policy.py | 67 +- neutron/privileged/__init__.py | 26 + neutron/privileged/agent/__init__.py | 0 neutron/privileged/agent/linux/__init__.py | 0 neutron/privileged/agent/linux/ip_lib.py | 177 +++++ neutron/quota/resource.py | 26 +- neutron/scheduler/dhcp_agent_scheduler.py | 31 +- neutron/scheduler/l3_agent_scheduler.py | 249 ++++--- neutron/service.py | 11 +- neutron/services/auto_allocate/db.py | 58 +- .../externaldns/drivers/designate/driver.py | 25 +- neutron/services/l3_router/README | 5 +- neutron/services/l3_router/l3_router_plugin.py | 9 +- .../service_providers/driver_controller.py | 28 +- neutron/services/loki/__init__.py | 0 neutron/services/loki/loki_plugin.py | 49 ++ neutron/services/metering/agents/metering_agent.py | 8 + .../metering/drivers/iptables/iptables_driver.py | 249 ++++--- neutron/services/network_ip_availability/plugin.py | 3 +- neutron/services/provider_configuration.py | 47 +- neutron/services/qos/drivers/__init__.py | 0 neutron/services/qos/drivers/base.py | 100 +++ .../services/qos/drivers/linuxbridge/__init__.py | 0 neutron/services/qos/drivers/linuxbridge/driver.py | 48 ++ neutron/services/qos/drivers/manager.py | 117 ++++ .../services/qos/drivers/openvswitch/__init__.py | 0 neutron/services/qos/drivers/openvswitch/driver.py | 48 ++ neutron/services/qos/drivers/sriov/__init__.py | 0 neutron/services/qos/drivers/sriov/driver.py | 48 ++ .../services/qos/notification_drivers/manager.py | 18 +- .../qos/notification_drivers/message_queue.py | 28 +- neutron/services/qos/qos_consts.py | 2 + neutron/services/qos/qos_plugin.py | 51 +- neutron/services/revisions/revision_plugin.py | 9 +- neutron/services/segments/db.py | 93 ++- neutron/services/segments/placement_client.py | 182 +++++ neutron/services/segments/plugin.py | 321 ++++++++- neutron/services/tag/tag_plugin.py | 65 +- neutron/services/timestamp/timestamp_db.py | 40 +- neutron/services/timestamp/timestamp_plugin.py | 24 +- neutron/services/trunk/constants.py | 2 +- neutron/services/trunk/drivers/base.py | 2 +- .../trunk/drivers/linuxbridge/agent/driver.py | 13 +- .../drivers/linuxbridge/agent/trunk_plumber.py | 6 +- .../trunk/drivers/openvswitch/agent/driver.py | 44 +- .../trunk/drivers/openvswitch/agent/exceptions.py | 4 + .../drivers/openvswitch/agent/ovsdb_handler.py | 251 +++++-- .../drivers/openvswitch/agent/trunk_manager.py | 27 +- neutron/services/trunk/models.py | 7 +- neutron/services/trunk/plugin.py | 34 +- neutron/services/trunk/rpc/agent.py | 16 +- neutron/services/trunk/rpc/server.py | 12 +- neutron/services/trunk/rules.py | 10 +- neutron/services/trunk/utils.py | 5 +- .../exclusive_resources/resource_allocator.py | 3 +- .../l2/extensions/test_ovs_agent_qos_extension.py | 12 +- .../agent/l3/test_keepalived_state_change.py | 68 ++ .../functional/agent/l3/test_legacy_router.py | 12 +- .../agent/linux/openvswitch_firewall/__init__.py | 0 .../linux/openvswitch_firewall/test_firewall.py | 53 ++ .../functional/agent/linux/test_ovsdb_monitor.py | 3 +- .../functional/agent/ovsdb/native/__init__.py | 0 .../agent/ovsdb/native/test_connection.py | 47 ++ .../functional/pecan_wsgi/test_controllers.py | 179 ++++- .../scheduler/test_l3_agent_scheduler.py | 55 +- .../l3_router/test_l3_dvr_ha_router_plugin.py | 103 ++- .../l3_router/test_l3_dvr_router_plugin.py | 113 ++- .../openvswitch/agent/test_ovsdb_handler.py | 70 +- .../openvswitch/agent/test_trunk_manager.py | 25 +- .../exclusive_resources/test_resource_allocator.py | 4 +- .../tempest/api/admin/test_routers_flavors.py | 20 +- .../api/admin/test_shared_network_extension.py | 5 +- .../api/test_network_ip_availability_negative.py | 29 + .../services/network/json/network_client.py | 58 +- .../agent/l2/extensions/test_fdb_population.py | 4 +- .../unit/agent/l3/test_l3_agent_extension_api.py | 12 +- .../linux/openvswitch_firewall/test_firewall.py | 26 +- .../unit/agent/linux/test_external_process.py | 8 +- .../unit/agent/linux/test_iptables_firewall.py | 340 +++++---- .../unit/agent/linux/test_xenapi_root_helper.py | 93 +++ .../unit/agent/ovsdb/native/test_connection.py | 51 +- .../unit/agent/test_agent_extensions_manager.py | 3 +- .../rpc/agentnotifiers/test_dhcp_rpc_agent_api.py | 32 +- .../api/rpc/callbacks/consumer/test_registry.py | 21 +- .../unit/api/rpc/callbacks/test_version_manager.py | 2 +- .../unit/api/rpc/handlers/test_resources_rpc.py | 51 +- .../extensions/test_router_availability_zone.py | 13 +- .../unit/extensions/test_subnet_service_types.py | 63 +- .../ipam/drivers/neutrondb_ipam/test_db_api.py | 62 +- .../ipam/drivers/neutrondb_ipam/test_driver.py | 42 +- .../objects/extensions/test_standardattributes.py | 4 +- .../unit/objects/network/extensions/__init__.py | 0 .../network/extensions/test_port_security.py | 38 - .../unit/objects/network/test_network_segment.py | 36 - .../objects/plugins/ml2/test_flatallocation.py | 29 + .../objects/plugins/ml2/test_geneveallocation.py | 38 + .../unit/objects/plugins/ml2/test_greallocation.py | 39 ++ .../objects/plugins/ml2/test_vlanallocation.py | 28 + .../objects/plugins/ml2/test_vxlanallocation.py | 39 ++ .../port/extensions/test_allowedaddresspairs.py | 5 +- .../objects/port/extensions/test_extra_dhcp_opt.py | 5 +- .../ml2/drivers/agent/test__common_agent.py | 40 +- .../unit/plugins/ml2/drivers/base_type_tunnel.py | 78 +-- .../l2pop/rpc_manager/test_l2population_rpc.py | 2 +- .../unit/plugins/ml2/drivers/l2pop/test_db.py | 12 +- .../plugins/ml2/drivers/l2pop/test_mech_driver.py | 51 +- .../agent/extension_drivers/test_qos_driver.py | 136 +++- .../agent/test_linuxbridge_neutron_agent.py | 55 +- .../macvtap/agent/test_macvtap_neutron_agent.py | 17 +- .../drivers/mech_sriov/agent/common/test_config.py | 15 +- .../agent/extension_drivers/test_qos_driver.py | 2 +- .../mech_sriov/agent/test_eswitch_manager.py | 143 +++- .../ml2/drivers/mech_sriov/agent/test_pci_lib.py | 26 +- .../mech_sriov/agent/test_sriov_nic_agent.py | 19 + .../mech_driver/test_mech_sriov_nic_switch.py | 128 +--- .../agent/extension_drivers/test_qos_driver.py | 2 +- .../agent/openflow/native/ovs_bridge_test_base.py | 4 +- .../agent/openflow/native/test_br_int.py | 12 +- .../agent/openflow/native/test_br_tun.py | 2 +- .../agent/openflow/ovs_ofctl/test_br_int.py | 2 +- .../openvswitch/agent/test_ovs_neutron_agent.py | 88 +-- .../drivers/openvswitch/agent/test_ovs_tunnel.py | 4 +- .../drivers/openvswitch/agent/test_vlanmanager.py | 6 - .../mech_driver/test_mech_openvswitch.py | 59 ++ .../unit/plugins/ml2/drivers/test_type_flat.py | 30 +- .../unit/plugins/ml2/drivers/test_type_gre.py | 11 - .../unit/plugins/ml2/drivers/test_type_local.py | 10 +- .../unit/plugins/ml2/drivers/test_type_vlan.py | 62 +- .../unit/plugins/ml2/extensions/fake_extension.py | 2 +- .../plugins/ml2/extensions/test_dns_integration.py | 181 +++-- .../unit/plugins/ml2/test_ext_portsecurity.py | 5 +- .../unit/plugins/ml2/test_extension_driver_api.py | 23 +- .../unit/scheduler/test_dhcp_agent_scheduler.py | 28 +- .../unit/scheduler/test_l3_agent_scheduler.py | 439 ++++++------ .../service_providers/test_driver_controller.py | 64 +- .../metering/agents/test_metering_agent.py | 7 +- .../services/metering/drivers/test_iptables.py | 162 +++++ .../unit/services/metering/test_metering_plugin.py | 72 +- .../unit/services/qos/drivers/test_manager.py | 94 +++ .../qos/notification_drivers/test_manager.py | 36 +- .../qos/notification_drivers/test_message_queue.py | 69 -- .../services/revisions/test_revision_plugin.py | 85 ++- .../unit/services/test_provider_configuration.py | 2 +- .../trunk/drivers/linuxbridge/agent/test_driver.py | 26 +- .../trunk/drivers/openvswitch/agent/test_driver.py | 50 +- .../openvswitch/agent/test_ovsdb_handler.py | 139 +++- neutron/worker.py | 33 + rally-jobs/extra/trunk_scenario.setup | 1 + rally-jobs/neutron-neutron.yaml | 38 +- rally-jobs/plugins/trunk_scenario.py | 61 ++ ..._proxy_to_wsgi-middleware-24e8271cbd94ffdf.yaml | 11 + ...ing-for-linuxbridge-agent-e765d0d934fa4017.yaml | 3 + .../notes/add-dhcp_release6-ff1b8d62fd7fe76d.yaml | 17 +- ...epalived-vrrp-healt-check-f23ed7c853151484.yaml | 9 + ...width-support-linuxbridge-9dc9d4458d8affef.yaml | 6 + ...api-configuration-options-f1611d0909bf6166.yaml | 11 + ...-physical_device_mappings-67dd3317181eb513.yaml | 6 + ...service-providers-loading-703f984b90351bf0.yaml | 2 +- .../deprecate-router_id-34aca9ea5ee9e789.yaml | 2 +- ...deprecate-send_arp_for_ha-0281853632f58e8d.yaml | 5 + ...signate-driver-keystonev3-8e70d152e84388e0.yaml | 7 + .../dhcp-domain-removed-cc5bc6e2129fdf7f.yaml | 4 + .../dhcp-ipv6-address-update-ff18d1eb0c196bce.yaml | 12 + .../notes/enhance-tags-1f8915fe3e074069.yaml | 4 + .../notes/fip-janitor-53f0d42a7471c5ed.yaml | 8 + ...utron-agent-decomposition-ae6a052aeb48c6ac.yaml | 2 +- ...erv-security-group-driver-fdbe0c0c292a1505.yaml | 13 + ...sysctl-bridge-firewalling-912f157b5671363f.yaml | 14 + ...ate-change-server-threads-9ed775e7533dd1a0.yaml | 10 + .../netns_cleanup_kill_procs-af88d8c47c07dd9c.yaml | 8 + ....messaging.notify.drivers-abb0d17b9e1bd470.yaml | 11 + .../qos-drivers-refactor-16ece9984958f8a4.yaml | 12 + .../remove-advertise_mtu-28933264714453c4.yaml | 5 + ...-pagination-allow-sorting-ff23ca5ccb3007b9.yaml | 5 + ...-min-l3-agents-per-router-27aef7d91dec0348.yaml | 12 + .../sending-garp-for-l3-ha-c118871833ad8743.yaml | 17 + ...rface_mapping-not-present-3109faf3b44d366a.yaml | 6 + .../timestamp_format_change-73eda78566b4690b.yaml | 12 + .../use-pyroute2-in-ip-lib-558bfea8f14d1fea.yaml | 4 + .../vhost-user-reconnect-7650134520022e7d.yaml | 14 + releasenotes/source/README.rst | 2 +- releasenotes/source/conf.py | 5 +- releasenotes/source/index.rst | 3 +- releasenotes/source/newton.rst | 7 + requirements.txt | 49 +- setup.cfg | 16 +- test-requirements.txt | 15 +- tools/configure_for_func_testing.sh | 15 +- tools/list_moved_globals.py | 9 +- tools/milestone-review-dash.py | 171 ----- tox.ini | 14 +- 840 files changed, 29868 insertions(+), 13359 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index b6c8641..2e9ac43 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4 +4 @@ -pbr>=1.6 # Apache-2.0 +pbr>=1.8 # Apache-2.0 @@ -12,2 +12 @@ eventlet!=0.18.3,>=0.18.2 # MIT -pecan!=1.0.2,!=1.0.3,!=1.0.4,>=1.0.0 # BSD -greenlet>=0.3.2 # MIT +pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD @@ -15,4 +14,4 @@ httplib2>=0.7.5 # MIT -requests>=2.10.0 # Apache-2.0 -Jinja2>=2.8 # BSD License (3 clause) -keystonemiddleware!=4.1.0,!=4.5.0,>=4.0.0 # Apache-2.0 -netaddr!=0.7.16,>=0.7.12 # BSD +requests!=2.12.2,>=2.10.0 # Apache-2.0 +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 @@ -20 +19 @@ netifaces>=0.10.4 # MIT -neutron-lib>=0.4.0 # Apache-2.0 +neutron-lib>=1.1.0 # Apache-2.0 @@ -22,2 +21,2 @@ python-neutronclient>=5.1.0 # Apache-2.0 -retrying!=1.3.0,>=1.2.3 # Apache-2.0 -ryu!=4.1,!=4.2,!=4.2.1,!=4.4,>=3.30 # Apache-2.0 +tenacity>=3.2.1 # Apache-2.0 +ryu>=4.9 # Apache-2.0 @@ -25,3 +24,3 @@ SQLAlchemy<1.1.0,>=1.0.10 # MIT -WebOb>=1.2.3 # MIT -keystoneauth1>=2.10.0 # Apache-2.0 -alembic>=0.8.4 # MIT +WebOb>=1.6.0 # MIT +keystoneauth1>=2.18.0 # Apache-2.0 +alembic>=0.8.10 # MIT @@ -29 +28 @@ six>=1.9.0 # MIT -stevedore>=1.16.0 # Apache-2.0 +stevedore>=1.17.1 # Apache-2.0 @@ -32 +31 @@ oslo.concurrency>=3.8.0 # Apache-2.0 -oslo.config>=3.14.0 # Apache-2.0 +oslo.config!=3.18.0,>=3.14.0 # Apache-2.0 @@ -34 +33 @@ oslo.context>=2.9.0 # Apache-2.0 -oslo.db!=4.13.1,!=4.13.2,>=4.10.0 # Apache-2.0 +oslo.db>=4.15.0 # Apache-2.0 @@ -36,2 +35,2 @@ oslo.i18n>=2.1.0 # Apache-2.0 -oslo.log>=1.14.0 # Apache-2.0 -oslo.messaging>=5.2.0 # Apache-2.0 +oslo.log>=3.11.0 # Apache-2.0 +oslo.messaging>=5.14.0 # Apache-2.0 @@ -39 +38,2 @@ oslo.middleware>=3.0.0 # Apache-2.0 -oslo.policy>=1.9.0 # Apache-2.0 +oslo.policy>=1.17.0 # Apache-2.0 +oslo.privsep>=1.9.0 # Apache-2.0 @@ -44,2 +44,2 @@ oslo.service>=1.10.0 # Apache-2.0 -oslo.utils>=3.16.0 # Apache-2.0 -oslo.versionedobjects>=1.13.0 # Apache-2.0 +oslo.utils>=3.18.0 # Apache-2.0 +oslo.versionedobjects>=1.17.0 # Apache-2.0 @@ -47,2 +47,3 @@ osprofiler>=1.4.0 # Apache-2.0 -ovs>=2.5.0;python_version=='2.7' # Apache-2.0 -ovs>=2.6.0.dev3;python_version>='3.4' # Apache-2.0 +ovs>=2.6.1 # Apache-2.0 +pyroute2>=0.4.12 # Apache-2.0 (+ dual licensed GPL2) +weakrefmethod>=1.0.2;python_version=='2.7' # PSF @@ -50 +51 @@ ovs>=2.6.0.dev3;python_version>='3.4' # Apache-2.0 -python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0 +python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index fd66607..b55ee82 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4 +4 @@ -hacking<0.12,>=0.11.0 # Apache-2.0 +hacking<0.13,>=0.12.0 # Apache-2.0 @@ -6 +6 @@ hacking<0.12,>=0.11.0 # Apache-2.0 -coverage>=3.6 # Apache-2.0 +coverage>=4.0 # Apache-2.0 @@ -10,3 +10,2 @@ python-subunit>=0.0.18 # Apache-2.0/BSD -requests-mock>=1.0 # Apache-2.0 -sphinx!=1.3b1,<1.3,>=1.2.1 # BSD -oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 +sphinx!=1.3b1,<1.4,>=1.2.1 # BSD +oslosphinx>=4.7.0 # Apache-2.0 @@ -19 +18 @@ oslotest>=1.10.0 # Apache-2.0 -os-testr>=0.7.0 # Apache-2.0 +os-testr>=0.8.0 # Apache-2.0 @@ -22 +21 @@ pylint==1.4.5 # GPLv2 -reno>=1.8.0 # Apache2 +reno>=1.8.0 # Apache-2.0 @@ -24 +23 @@ reno>=1.8.0 # Apache2 -PyMySQL!=0.7.7,>=0.6.2 # MIT License +PyMySQL>=0.7.6 # MIT License
participants (1)
-
no-reply@openstack.org