We are ecstatic to announce the release of: networking-ovn 4.0.0: OpenStack Neutron integration with OVN This release is part of the queens release series. The source is available from: https://git.openstack.org/cgit/openstack/networking-ovn Download the package from: https://pypi.python.org/pypi/networking-ovn Please report issues through launchpad: https://bugs.launchpad.net/networking-ovn For more details, please see below. Changes in networking-ovn 3.0.0.0rc1..4.0.0 ------------------------------------------- 329d6d8 Tempest: Enable pagination, sorting and project-id API extensions 74a495c Enable trunk tempest tests cb9a05e Use neutron-tempest-plugin for API and scenario tests 37b30bc Zuul: Remove project name f491fba Updated from global requirements d205e0f Check for router port correctness 48c3fbb Use metadata IP as DHCP service IP for subnet without gateway IP 4a41f60 Fix RDO OVN scenario job by checking DB schema (iii) 91ca4f8 Fix router port creation dc84c23 Maintenance: Avoid code duplication 3fed2a9 Maintenance task: Ordering resources by type 17f62a5 Name is error when finding revision_number in CheckRevisionNumber 62cebd2 Updated from global requirements 8c9eb58 Functional tests: Leave fixtures to remove the dbs 17ff20f Enable tempest IPv6 scenario tests now that we have RA support in OVN master 1d4c04f Fix trunk with subport functional tests e135926 functional tests: Register SQLAlchemy models 82a7709 Check for subnets correctness 8fd9411 Check for floating ips correctness 6318c34 Update LRP when a router port is updated c09722b Use placement-client rather than placement-api 8136e4a Updated from global requirements 95c4052 Neutron-server start error when not use ovn l3 08b95a5 Check for security group correctness 4946547 Check for routers correctness b3bb1f2 enable ovn metadata in computenode conf sample 2af637e drop is_ovn_service_enabled in devstack ee6e7b1 Updated from global requirements c2e6038 Check for sg_rules correctness 849659a Refactor Routers ac9b2d9 Cleanup and add general ovsdb capturing yaml for rally 247ed26 Check for ports correctness d420576 Make ovn_client create_network idempotent 74dd7cb Remove duplicate code. 199a33f Switch to get_reader_session 18b8a52 Fix RDO OVN scenario job by checking DB schema (ii) cea1801 Optimize inconsistency detection (Part 2) 0d37e8b Optimize inconsistency detection (Part 1) 290c3d8 Check for correctness when updating networks 27617ca Fix RDO OVN scenario job by checking DB schema 6be9369 Bug in updating duplicate rules in security groups 8836022 Make use of native OVN IPv6 Router Advertisement support a2a2d9f Add security group tests to test_mech_driver.py a3c0151 Updated from global requirements 10d1b4e Add @abstractmethod to get_floatingip_by_ips dd4d457 Refactor Floating IPs related methods 97f5570 Refactor security groups d8d5eea Add native DNS support 3f08894 Retry connection to OVSDB from metadata agent 3aa1d2b Add a comment on local.conf.sample on how to enable Rally 0b634b2 Use systemd service for all ovs/ovn process 504be08 Exclude some unrelated test cases in tempest gate 21f165e Imported Translations from Zanata f61ffbc Fix subnet enabled DHCP failed when subnet has port. 7892d66 Add DHCP functional test case to cover an untested branch 39b44aa Fix functional tests 688c34a Initialize privsep in networking-ovn-metadata-agent 226e426 Fix minor typos in the Neutron/OVN database consistency spec 7f8fe07 Refactor subnet dhcp options methods 0c27410 Fix unittests 2719523 Simplify create_network of OVNClient 8194851 get rid of update_port in OVNMechanismDriver d68083a Optimize updating routes in _subnet_update 93e646f Remove redundant SetLSwitchPortCommand in trunk driver 95ee041 Update links in CONTRIBUTING and README 900242a networking-ovn hides some other xtrace logs improperly d6ad9cc _enable_subnet_dhcp_options(): Consolidate all commands in one transaction 054fac8 Cleanup _add_router_ext_gw() 7d73643 Ignore floating IP port for (create, update)_port 955c925 Imported Translations from Zanata 1626aaf Insert a new virtual service to log br-int flows 621e3a4 SR-IOV support for a networking-ovn deployment 3564dc3 Updated from global requirements 7e7fe14 Correct order of args passed to del_port in medata teardown_datapath e289c76 Format logging for metadata agent a9fa1b5 Tempest test_port_security_macspoofing_port was skipped for wrong reason 6a7a8ed Remove parameter metadata_port_ip 65c4e89 Remove vport_vxlan kernel module when excuting unstack.sh 3c728e1 Replace br-vtep with br-v for ovs-vtep process in devstack 0b7b8a8 Idea proposal: Neutron/OVN database consistency problem 75148da Fix functional and rally tests 619e512 Collect functional test logs and add logstash index f7a44b6 Add a background tcpdump on br-ex for ARP and ICMPv4/v6 7d16148 Collect OVS databases in tempest logs 85c5e56 Drop journaling related code 8b034ab zuul: run TripleO jobs with new zuulv3 layout a9af75c Updated from global requirements 996ca7b Remove setting of version/release from releasenotes 6f6db4f Fix tox debug target b123da3 Add release note for distributed fip 48e9101 Fix race condition on ovn_client on startup 8cc1330 update_router(): Consolidate all commands in one transaction 5e759e7 Set dhcp_agent_notification to False for devstack d73f5c1 update_network should consider qos if or not name of network changes 15026ae support distributed floating ip 20fdec3 use qos api def from neutron-lib 641976a use l3 api def from neutron-lib a812d01 Updated from global requirements 0dc42f3 Log a warning when trying to wait for metadata on a non existent port e1c9652 Replace add/del lswitch cmds w/ ovsdbapp equivs 1afb142 Fix may_exists/may_exist inconsistency 03c26b5 Remove triplicated update_router_routes() method 14887c7 Zuul: add file extension to playbook path 49ffd8f Create metadata port when it is found in neutron but not in OVN 2952498 Fix a redundant check about ovsdb lock in OvnWorker 0ddcbae Ignore dhcp opt sync for network device port f6dbb66 use external net api def from lib 2bac766 Add .stestr to .gitignore 14c53c4 Convert SB API to use ovsdbapp 85c5f87 Simplify the L3 {create, update}_router() methods b0fc334 Add neutron scenario tests 2744758 Create Metadata port in OVN when found missing in Neutron 3abbc15 Modification of devstack broke OVN metadata agent f1eada6 Move networking-ovn legacy jobs to our tree dcdc7fe Remove "fake_api" from functional tests c706f05 Pass arg name is_gw_port to calling of set_lrouter_port_in_lswitch_port ee4fd1b Do not ignore the QOS options on port update 293e5db Test with OVS branch-2.8 for latest-release. 6ae29ec Small refactor of using DEVICE_OWNER_PREFIXES fec42bc Eliminate ovsdb error in dsvm functional test 6e4664f Use shim tool for dsvm functional test b3d5283 Correct an issue of dsvm dscpv6 test case itself 3311e8b Fix dead links in the documentation b414af1 neutron-ovn-db-sync-util: sync metadata ports b9ef729 Updated from global requirements e2f7ce8 Fix OVSDB test connection failures 4d9bb41 Deprecate containers.rst document 7eaa5fc Don't create metadata port if it already exists 3627fbd Use constants for device owner 4644302 Create the metadata port with the same project_id as its network 387a3ba Consider router ports of type 'HA_REPLICATED_INT' during sync 83653d9 Remove SCREEN_LOGDIR from devstack 9a0652a Neutron API tests configuration 7a484be consume common constants from lib 4f4a6cd Allow tempest to skip agent tests. 167eca9 Add "nat-addresses" option for support of garp feature. a6227b0 Updated from global requirements f5fe5e3 Fix security group rule tcp/udp port range failed. c7a5585 use new payload objects for *_INIT callbacks 113eb19 Updated from global requirements ca7adee Use the OVN _i18n module 34e0dc0 remove neutron trunk object import 408d9fe Use shim tool for ostestr 5b9c8f0 Update import for ml2 config 0e34fba Only monitor the necessary SB tables for changes e5dc79f Use ovsdbapp RowEvent 72c7a90 Fix unit and functional tests ccfc778 DHCP options for subnet synchronize each time 99e72ce Set requested-chassis with binding host_id. f430690 Delete dummy files 034de8c Python3.5 RuntimeError: dictionary changed size during iteration 7fa4bc8 Log error for missing metadata port only if metadata is enabled b0e71a2 Add DNS db mixin in l3 plugin dc11f5c Track router and floatingip quota usage using TrackedResource f06a77c Enhance devstackgaterc to support neutron-api tests 3498fa3 Qos testing failed due to other non-QoS keys in options. b2de783 Handle the admin_state_up flag in router update correctly 8f0942c Remove agent/dhcp_agent_scheduler extensions 83b6e0a Add mac from allowed_address_pairs to ovn lport addresses 14d8e70 schedule gateway on chassis with external connectivity 6a9cf42 Updated from global requirements 5ef3a90 Small refactor of metadata bits 6ded72c Support ACL name and severity columns 815bb62 Sync neutron db with OVN southbound db d40470a Support for L3 gateway HA c2ba97b subports: add binding support to them 648a7cc Imported Translations from Zanata 2da850b Add allowed_address_pairs in address_set 12f0d9f Fix gate mtu tests 512171e Rename OVN metadata agent configuration file 9287a01 Update reno for stable/pike 1842c1a refarch: Update documentation and diagrams 7d0e901 Tox docs: Force the use of python2.7 aa94317 Make Metadata agent independent from other config files f091d3c Rename metadata proxy config dir ba03f99 Replace br-int with ovs_integration_bridge of OVN metadata conf bfbf542 Rename 'ns-metadata-proxy' config dir to 'ovn-metadata-proxy' 760899e add functional test for QoS. Diffstat (except docs and test files) ------------------------------------- .gitignore | 2 + .stestr.conf | 3 + CONTRIBUTING.rst | 4 +- README.rst | 10 +- devstack/README.rst | 4 +- devstack/computenode-local.conf.sample | 3 +- devstack/devstackgaterc | 57 +- devstack/devstackgaterc latest-release | 2 - devstack/devstackgaterc master | 2 - devstack/lib/networking-ovn | 327 +++-- devstack/local.conf.sample | 13 +- devstack/override-defaults | 2 +- devstack/plugin.sh | 6 +- .../ovn-architecture-centralized-routing1.graffle | Bin 0 -> 13248 bytes .../ovn-architecture-centralized-routing1.png | Bin 0 -> 152109 bytes .../ovn-architecture-centralized-routing1.svg | 335 +++++ .../refarch/figures/ovn-architecture1.graffle | Bin 5328 -> 10653 bytes .../admin/refarch/figures/ovn-architecture1.png | Bin 145059 -> 108049 bytes .../admin/refarch/figures/ovn-architecture1.svg | 251 +++- .../admin/refarch/figures/ovn-compute1.graffle | Bin 5595 -> 6636 bytes .../admin/refarch/figures/ovn-services.graffle | Bin 3106 -> 5391 bytes .../networking_ovn_metadata_agent.rst | 6 + .../configuration/samples/metadata_agent.rst | 9 - .../samples/networking_ovn_metadata_agent.rst | 9 + .../contributor/design/database_consistency.rst | 440 ++++++ etc/oslo-config-generator/metadata_agent.ini | 6 - .../networking_ovn_metadata_agent.ini | 6 + networking_ovn/agent/metadata/agent.py | 8 +- networking_ovn/agent/metadata/driver.py | 5 +- networking_ovn/agent/metadata/ovsdb.py | 11 +- networking_ovn/agent/metadata/server.py | 4 +- networking_ovn/agent/metadata_agent.py | 1 + networking_ovn/cmd/neutron_ovn_db_sync_util.py | 98 +- networking_ovn/common/acl.py | 51 +- networking_ovn/common/config.py | 37 +- networking_ovn/common/constants.py | 58 +- networking_ovn/common/exceptions.py | 32 + networking_ovn/common/extensions.py | 8 +- networking_ovn/common/maintenance.py | 258 ++++ networking_ovn/common/ovn_client.py | 1394 +++++++++++++------- networking_ovn/common/utils.py | 142 +- networking_ovn/conf/agent/metadata/config.py | 12 +- networking_ovn/db/db.py | 141 -- networking_ovn/db/maintenance.py | 62 + .../alembic_migrations/versions/EXPAND_HEAD | 2 +- ...9b8aad9f2_add_journal_and_maintenance_tables.py | 13 +- ...d2723b6_add_ovn_revision_resource_type_as_pk.py | 50 + .../bc9e24bb9da2_drop_journaling_related_tables.py | 33 + .../f48286668608_add_ovn_revision_numbers_table.py | 47 + networking_ovn/db/models.py | 48 +- networking_ovn/db/revision.py | 128 ++ networking_ovn/journal/__init__.py | 0 networking_ovn/journal/cleanup.py | 50 - networking_ovn/journal/constants.py | 25 - networking_ovn/journal/exceptions.py | 27 - networking_ovn/journal/journal.py | 153 --- networking_ovn/journal/maintenance.py | 70 - networking_ovn/l3/l3_ovn.py | 269 ++-- networking_ovn/l3/l3_ovn_scheduler.py | 27 +- .../locale/en_GB/LC_MESSAGES/networking_ovn.po | 381 ++++++ networking_ovn/ml2/mech_driver.py | 260 +++- networking_ovn/ml2/qos_driver.py | 60 +- networking_ovn/ml2/trunk_driver.py | 39 +- networking_ovn/ovn_db_sync.py | 235 +++- networking_ovn/ovsdb/commands.py | 255 +++- networking_ovn/ovsdb/impl_idl_ovn.py | 494 ++++--- networking_ovn/ovsdb/ovn_api.py | 209 ++- networking_ovn/ovsdb/ovsdb_monitor.py | 97 +- networking_ovn/ovsdb/row_event.py | 76 -- .../unit/cmd/test_neutron_ovn_db_sync_util.py | 20 +- .../legacy/grenade-dsvm-networking-ovn/post.yaml | 15 + .../legacy/grenade-dsvm-networking-ovn/run.yaml | 62 + .../install-dsvm-networking-ovn-kuryr/post.yaml | 15 + .../install-dsvm-networking-ovn-kuryr/run.yaml | 63 + .../networking-ovn-dsvm-functional-py35/post.yaml | 15 + .../networking-ovn-dsvm-functional-py35/run.yaml | 61 + .../networking-ovn-dsvm-functional/post.yaml | 15 + .../legacy/networking-ovn-dsvm-functional/run.yaml | 60 + .../legacy/rally-dsvm-networking-ovn/post.yaml | 21 + .../legacy/rally-dsvm-networking-ovn/run.yaml | 65 + .../post.yaml | 4 + .../tempest-dsvm-networking-ovn-multinode/run.yaml | 81 ++ .../post.yaml | 4 + .../run.yaml | 78 ++ .../post.yaml | 4 + .../run.yaml | 81 ++ .../post.yaml | 4 + .../run.yaml | 79 ++ .../post.yaml | 4 + .../run.yaml | 81 ++ .../post.yaml | 4 + .../run.yaml | 79 ++ playbooks/legacy/tempest-post-common.yml | 37 + .../SRIOV-port-binding-support-bug-1515005.yaml | 12 + .../notes/distributed-fip-0f5915ef9fd00626.yaml | 8 + .../internal_dns_support-83737015a1019222.yaml | 5 + .../notes/maintenance-thread-ee65c1ad317204c7.yaml | 8 + releasenotes/source/conf.py | 11 +- releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 283 ++++ releasenotes/source/pike.rst | 6 + requirements.txt | 15 +- test-requirements.txt | 21 +- tox.ini | 26 +- vagrant/provisioning/setup-compute.sh | 1 - vagrant/provisioning/setup-controller.sh | 1 - vagrant/provisioning/setup-db.sh | 1 - vagrant/provisioning/setup-vtep.sh | 1 - zuul.d/legacy-networking-ovn-jobs.yaml | 146 ++ zuul.d/project.yaml | 43 + 160 files changed, 10534 insertions(+), 3090 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 69884c5..c43ecb6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,5 +5,6 @@ -netaddr!=0.7.16,>=0.7.13 # BSD -neutron-lib>=1.9.0 # Apache-2.0 -oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0 -ovs>=2.7.0 # Apache-2.0 -ovsdbapp>=0.4.0 # Apache-2.0 +futurist>=1.2.0 # Apache-2.0 +netaddr>=0.7.18 # BSD +neutron-lib>=1.13.0 # Apache-2.0 +oslo.config>=5.1.0 # Apache-2.0 +ovs>=2.8.0 # Apache-2.0 +ovsdbapp>=0.8.0 # Apache-2.0 @@ -11 +12 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 -pyOpenSSL>=0.14 # Apache-2.0 +pyOpenSSL>=16.2.0 # Apache-2.0 @@ -14 +15 @@ Babel!=2.4.0,>=2.3.4 # BSD -six>=1.9.0 # MIT +six>=1.10.0 # MIT diff --git a/test-requirements.txt b/test-requirements.txt index aff55fd..3498af5 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9,6 +9,6 @@ flake8-import-order==0.12 # LGPLv3 -python-subunit>=0.0.18 # Apache-2.0/BSD -sphinx>=1.6.2 # BSD -openstackdocstheme>=1.16.0 # Apache-2.0 -doc8 # Apache-2.0 -oslotest>=1.10.0 # Apache-2.0 -os-testr>=0.8.0 # Apache-2.0 +python-subunit>=1.0.0 # Apache-2.0/BSD +sphinx!=1.6.6,>=1.6.2 # BSD +openstackdocstheme>=1.18.1 # Apache-2.0 +doc8>=0.6.0 # Apache-2.0 +oslotest>=3.2.0 # Apache-2.0 +os-testr>=1.0.0 # Apache-2.0 @@ -16,2 +16 @@ pylint==1.4.5 # GPLv2 -testrepository>=0.0.18 # Apache-2.0/BSD -testresources>=0.2.4 # Apache-2.0/BSD +testresources>=2.0.0 # Apache-2.0/BSD @@ -19,3 +18,3 @@ testscenarios>=0.4 # Apache-2.0/BSD -WebTest>=2.0 # MIT -testtools>=1.4.0 # MIT -reno!=2.3.1,>=1.8.0 # Apache-2.0 +WebTest>=2.0.27 # MIT +testtools>=2.2.0 # MIT +reno>=2.5.0 # Apache-2.0