We are ecstatic to announce the release of: tricircle 3.0.0: The Tricircle is to provide networking automation across Neutron in multi-region OpenStack deployments. This release is part of the ocata release series. The source is available from: http://git.openstack.org/cgit/openstack/tricircle Download the package from: https://pypi.python.org/pypi/tricircle Please report issues through launchpad: http://bugs.launchpad.net/tricircle For more details, please see below. 3.0.0 ^^^^^ The Tricircle is to provide networking automation across Neutron in OpenStack multi-region deployment. New Features ************ * North-south bridge network and east-west bridge network are combined into one to bring better DVR and shared VxLAN network support. * Network * List networks * Create network * Show network details * Delete network * Subnet * List subnets * Create subnet * Show subnet details * Delete subnet * Port * List ports * Create port * Show port details * Delete port * Router * List routers * Create router * Show router details * Delete router * Add interface to router * Delete interface from router * List floating IPs * Create floating IP * Show floating IP details * Update floating IP * Delete floating IP * Security Group * List security groups * Create security group * Show security group details * List security group rules * Create security group rule * Delete security group rule * Note for Networking * Only Local Network and VLAN network supported. Local Network means the network will only present in one region, it could be VxLAN or VLAN network. VLAN is the only L2 network type which supports cross Neutron L2 networking and the bridge network for L3 networking. * Pagination and sort are not supported at the same time for list operation. * For security group rule, remote group is not supported yet. Use IP prefix to create security group rule. * One availability zone can include more than one region through Tricircle pod management. * Availability zone or region name for availability zone hint can be specified during network creation, that means this network will be presented in the specified list of availability zone or region. If no availability zone hint is specified and the network is not Local Network, then the network can be spread into all regions. For Local Network without availability zone hint specified in creation, then the network will only be presented in the first region where the resource(VM, baremetal or container) is booted and plugged into this network. * Need to specify one region name as the availability zone hint for external network creation, that means the external network will be located in the specified region. * Network * Update networks * qos-policy not supported * Subnet * Update subnets * Port * Update port * name, description, admin_state_up, extra_dhcp_opts, device_owner, device_id, mac_address, security group attribute updates supported * Resource routing APIs add operations on resource routing table. This makes it possible to create, show, delete and update the resource routing entry in the resource routing by cloud administrator for the maintenance and emergency fix need. But the update and delete operations on the entry generated by the Tricircle itself is not proposed, because central Neutron may make wrong judgement on whether the resource exists or not without this routing entry. Moreover, related request can not be forwarded to the proper local Neutron either. So even though the update and delete operations are provided, they are better not to be used in case of causing unexpected problems. * List resource routings * Create resource routing * Show resource routing details * Delete resource routing * Update resource routing Known Issues ************ * refer to https://bugs.launchpad.net/tricircle * Update network or subnet may not lead to the expected result if an instance is being booted at the same time. You can redo the update operation later to make it execute correctly. * Update port may not lead to the expected result if an instance is being booted at the same time. You can redo the update operation later to make it execute correctly. Changes in tricircle 2.1.0..3.0.0 --------------------------------- f6cd0e5 Fix issues of multi-region devstack environment setup e9a0251 Add get pod unit test case 2eb0c8b Add update pod unit test case 503ab1a Remove cmd folder 72639ba Add delete mappings unit test case 4d6a4e6 Update release notes about network availability zone hint bd5a9e7 Update installation guide to use tricircle command c5e4b94 Minor change to the local plugin test 7f11b71 Update release notes for security group rule deletion 2059bc4 Fix semantic error in networking guide e83eadb Fix get_pod_by_top_id method in common.utils 7797b0a Remove the unused oslo.versionedobjects requirement 08354fa Updated from global requirements 5400658 Add get pod by region unit test case 250c7ed [Urgent] Rollback client change e8563aa Add get bottom_id by top_id and region_name test case cabc065 Add get top pod unit test case 038b925 Add find pod by az_region unit test case 8323efb Remove useless test_rpc method 9046d0c Improve test for client module a8e809c Updated from global requirements 310a7fd Add utils's check_string_length test case c7089ad Add unit tests for resource_handle module 4b9f231 Updated from global requirements 439d2ce Updated from global requirements 8feffed Add local subnet update unit test case a354b7c Modify test_get_networks_invaild_region func name f0b6233 Improve bottom allocation pool calculation 93f9761 Fix typo in installation guide 396d2f0 Add unit tests for lock_handle module 5bd718a Update library used in client module 27c338d Fix typo in networking guide 96a7ca2 Remove support for py34 b17aa50 Change release note link to OpenStack docs site 8f8cc98 Add network az_hints check when boot vm 996393b [Urgent] Fix error in XJob RPC API ac39987 Enhance the description of supported network type in networking guide 34a9c32 Remove link to modindex 9bf89d1 Clean imports in code 7b1558e Fix unit tests error introduced by _get_session 99cb758 Updated from global requirements 2855601 Enhance the documentation structure fdbd268 Add 'extern' physical network create supported db11910 Use neutron-lib provider net api-def d17b211 Add networking guide link for README ad42fa5 Use neutron-lib portbindings api-def a55fee6 "br-etx" should be "br-ext" in the doc 26d86dc Fix Xjob of router setup not triggered 654fd62 Add subnet update operation support 441a8bd Add networking guide in Tricircle 13c7627 Updating python language classifier in setup.cfg 13f3f31 XJob reliability improvement ac65bc3 Add port base attributes update operation support 2d6cae8 Change network type shared_vlan name to vlan 2f8cd4e Updated from global requirements 2aaa35a clean up requirements.txt dependencies a02f80e Remove useless requirements 108342a Use tempest and tricircle in Devstack samples a1667dd Add DVR support 4b2e98a Support region in az-hint for internal net creation deef56d Simplify, Update and Fix Devstack installation 8cd78cc Fail to boot vm in network with az-hint specified 21315da Removed unnecessary utf-8 encoding d678777 [Urgent] Fix migration script and rename pod_name 3457145 DB migration version 8616eb5 Update devstack plugin to support multi-region installation bd4b205 Support python3 in tricircle 2df0578 Fix security group rule sync 1768b9f [Urgent] Modify plugin UT to adopt Neutron change 5ae4d99 Fix eventlet monkey_patch 52232e2 Remove some codes in resource_handle b60ba57 Combine bridge networks 2ceebb0 Fix list port failure due to dummy pod entry 639ca70 Updated from global requirements d65601a Clean useless tables in Tricircle after splitting a0cddc5 Register the service following devstack standards fe33273 Use tricircle commands in devstack screen 2161a18 Enhance XJob reliability spec a703ae6 Support printing coverage report run tox -ecover 7ca32bb Add release notes for resource routing api 4ebf873 Fix the incorrect title level of configuration d1bc1f4 spec on legacy tables clean work 61cb169 Add network update operation support(1) f9e3d6e Add configuration guide in the Tricircle 5fe7d23 Replace LOG.warn with LOG.warning 900597b Fix resource deletion b329a99 Updated from global requirements 1ca024d Trival fix some typo 50b212f Add Constraints support a367814 Enable tricircle commands ab74d91 Add manual installation guide 3a85ac7 Remove part tables from Tricircle 5e65a99 Fix order of arguments in assertEqual 5c69e14 Fix typos 735046a Fix typo installation guide f44261e Updated from global requirements 8138788 Updated from global requirements f423b76 Layer-3 networking and combined bridge network spec 0aec9fe Unify the usage of the log module e3e533f Fix README.rst 1533bb0 ID should be biginteger in resource routing table 421fb26 Documentation on resource routing API 4051eb6 Updated from global requirements aa6bfdf Fix register tricircle endpoint failed 491fa16 PEP8 failed when import i18n more than one 7dd611a Updated from global requirements 6d7eb42 Changed the home-page link 481cb56 The "LOG.warning" should correspond with "_LW" 541fe53 Fix the bug of missing constraint aa0dc40 Tricircle document improvement 2390270 Remove logging import unused caeaa07 [Urgent] Mock directory.get_plugin in neutron-lib 4640b52 Show team and repo badges on README e6acb3c Change passing session to context in segments db functions 133c99b Remove quota from Tricircle 7962362 Fix configuration file generator e55e88f Implement resource routing features d6e3767 Updated from global requirements bd087aa [urgent] Fix multi-node installation guide about node_2 c219708 Add release notes for the master branch ed832f7 Updated from global requirements Diffstat (except docs and test files) ------------------------------------- README.rst | 23 +- cmd/api.py | 62 - cmd/manage.py | 36 - cmd/xjob.py | 61 - devstack/local.conf.node_1.sample | 75 +- devstack/local.conf.node_2.sample | 69 +- devstack/local.conf.sample | 55 +- devstack/plugin.sh | 157 +- devstack/settings | 11 +- devstack/verify_cross_pod_install.sh | 6 +- devstack/verify_top_install.sh | 6 +- .../networking-guide-direct-provider-networks.rst | 386 ++++ ...networking-guide-multiple-external-networks.rst | 848 +++++++ .../networking-guide-single-external-network.rst | 597 +++++ etc/tricircle_plugin-cfg-gen.conf | 4 - releasenotes/config.yaml | 3 + .../combine-bridge-network-c137a03f067c49a7.yaml | 4 + .../initial-release-notes-bd28a4a4bf1f84d2.yaml | 82 + .../network-subnet-update-baed5ded548f7269.yaml | 21 + .../notes/port-base-update-6668b76c2346633c.yaml | 15 + ...esource-routing-operation-649eb810911312ec.yaml | 22 + releasenotes/source/conf.py | 1 - releasenotes/source/index.rst | 7 +- releasenotes/source/mitaka.rst | 6 - requirements.txt | 32 +- setup.cfg | 11 +- specs/newton/cross-pod-l2-networking.rst | 28 +- specs/ocata/enhance-xjob-reliability.rst | 234 ++ specs/ocata/l3-networking-combined-bridge-net.rst | 566 +++++ specs/ocata/legacy_tables_clean.rst | 111 + specs/ocata/local-neutron-plugin.rst | 7 +- test-requirements.txt | 9 +- tox.ini | 23 +- tricircle/api/controllers/pod.py | 161 +- tricircle/api/controllers/root.py | 7 +- tricircle/api/controllers/routing.py | 208 ++ tricircle/cmd/__init__.py | 0 tricircle/cmd/api.py | 61 + tricircle/cmd/manage.py | 68 + tricircle/cmd/xjob.py | 58 + tricircle/common/az_ag.py | 178 -- tricircle/common/client.py | 67 +- tricircle/common/constants.py | 71 +- tricircle/common/context.py | 12 +- tricircle/common/exceptions.py | 112 +- tricircle/common/httpclient.py | 35 +- tricircle/common/lock_handle.py | 12 +- tricircle/common/policy.py | 28 +- tricircle/common/quota.py | 1614 -------------- tricircle/common/resource_handle.py | 207 +- tricircle/common/restapp.py | 4 +- tricircle/common/serializer.py | 4 +- tricircle/common/utils.py | 36 +- tricircle/common/xrpcapi.py | 39 +- tricircle/db/api.py | 1054 ++------- tricircle/db/migrate_repo/versions/001_init.py | 37 +- tricircle/db/migrate_repo/versions/002_resource.py | 268 +-- tricircle/db/migration_helpers.py | 7 + tricircle/db/models.py | 429 +--- tricircle/network/central_plugin.py | 733 ++++-- tricircle/network/drivers/type_local.py | 6 +- tricircle/network/drivers/type_shared_vlan.py | 62 - tricircle/network/drivers/type_vlan.py | 61 + tricircle/network/exceptions.py | 3 +- tricircle/network/helper.py | 180 +- tricircle/network/local_l3_plugin.py | 60 + tricircle/network/local_plugin.py | 104 +- tricircle/network/managers.py | 32 +- tricircle/network/opts.py | 22 - tricircle/network/security_groups.py | 8 +- tricircle/tempestplugin/post_test_hook.sh | 6 +- tricircle/xjob/xmanager.py | 652 +++--- tricircle/xjob/xservice.py | 19 +- 103 files changed, 9516 insertions(+), 9464 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index a00c4fe..e23e772 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4 +4 @@ -pbr>=1.6 # Apache-2.0 +pbr>=1.8 # Apache-2.0 @@ -14,5 +14,4 @@ pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD -greenlet>=0.3.2 # MIT -httplib2>=0.7.5 # MIT -requests>=2.10.0 # Apache-2.0 -Jinja2>=2.8 # BSD License (3 clause) -keystonemiddleware!=4.5.0,>=4.2.0 # Apache-2.0 +requests!=2.12.2,!=2.13.0,>=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) +keystoneauth1>=2.18.0 # Apache-2.0 +keystonemiddleware>=4.12.0 # Apache-2.0 @@ -21 +20 @@ netifaces>=0.10.4 # MIT -neutron-lib>=0.4.0 # Apache-2.0 +neutron-lib>=1.1.0 # Apache-2.0 @@ -27 +26 @@ python-glanceclient>=2.5.0 # Apache-2.0 -python-keystoneclient!=2.1.0,>=2.0.0 # Apache-2.0 +python-keystoneclient>=3.8.0 # Apache-2.0 @@ -29,2 +28,2 @@ python-neutronclient>=5.1.0 # Apache-2.0 -python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0 -alembic>=0.8.4 # MIT +python-novaclient>=7.1.0 # Apache-2.0 +alembic>=0.8.10 # MIT @@ -34,3 +33,3 @@ oslo.concurrency>=3.8.0 # Apache-2.0 -oslo.config>=3.14.0 # Apache-2.0 -oslo.context>=2.9.0 # Apache-2.0 -oslo.db!=4.13.1,!=4.13.2,>=4.10.0 # Apache-2.0 +oslo.config!=3.18.0,>=3.14.0 # Apache-2.0 +oslo.context>=2.12.0 # Apache-2.0 +oslo.db>=4.15.0 # Apache-2.0 @@ -39 +38 @@ oslo.log>=3.11.0 # Apache-2.0 -oslo.messaging>=5.2.0 # Apache-2.0 +oslo.messaging>=5.14.0 # Apache-2.0 @@ -41 +40 @@ oslo.middleware>=3.0.0 # Apache-2.0 -oslo.policy>=1.14.0 # Apache-2.0 +oslo.policy>=1.17.0 # Apache-2.0 @@ -45,2 +44 @@ 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 diff --git a/test-requirements.txt b/test-requirements.txt index 837336b..9ab0467 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -6,2 +6 @@ hacking<0.11,>=0.10.2 -cliff>=2.2.0 # Apache-2.0 -coverage>=3.6 # Apache-2.0 +coverage>=4.0 # Apache-2.0 @@ -12 +11,2 @@ requests-mock>=1.1 # Apache-2.0 -sphinx!=1.3b1,<1.4,>=1.2.1 # BSD +docutils>=0.11 # OSI-Approved Open Source, Public Domain +sphinx>=1.5.1 # BSD @@ -18 +17,0 @@ testscenarios>=0.4 # Apache-2.0/BSD -WebTest>=2.0 # MIT @@ -23 +22 @@ ddt>=1.0.1 # MIT -pylint==1.4.5 # GPLv2 +reno>=1.8.0 # Apache-2.0