Reviewed: https://review.openstack.org/253155 Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=08d720e1caed67364b0e4859f03a861b233075e6 Submitter: Jenkins Branch: master
commit 08d720e1caed67364b0e4859f03a861b233075e6 Author: lzklibj <lzkl...@cn.ibm.com> Date: Fri Dec 4 02:34:59 2015 +0800 fix _validate_shared_update for dvr router ports When trying to update external network from shared to not, _validate_shared_update will be called to validate ports on external network to confirm that, except router ports, there is no port from other tenants. If some other tenants ports still exist on external network, shared attribute updating will fail. However, current _validate_shared_update will only ignore router ports with device_owner such as DEVICE_OWNER_ROUTER_GW and DEVICE_OWNER_FLOATINGIP when query ports, but indeed ports with device_owner such as DEVICE_OWNER_AGENT_GW and DEVICE_OWNER_ROUTER_SNAT should be skipped, otherwise an empty tenant_id like '' will cause _validate_shared_update fails to work as expected. Change-Id: Ibf5daf14192ce51d4e9ce10dc0c806ea230adec3 Closes-Bug: #1522482 ** Changed in: neutron Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1522482 Title: dvr gateway port fails in _validate_shared_update Status in neutron: Fix Released Bug description: ### env ### upstream code DVR enabled 2 network nodes(l3 agent running in dvr_snat mode), 1 compute node(l3 agent running in dvr mode) 2 tenants: admin and demo ### steps(by admin) ### 1, create external network and internal network, create subnets for the two networks, 2, create a router(dvr default), attach external network as router gateway, attach internal network as router interface; 3, verify router schedules success by "neutron l3-agent-list-hosting-router" or "ip netns" 4, create a floatingip, boot a VM on internal subnet, and associate floatingip to VM; 5, verify the dvr and floatingip related ports are created by "neutron port-list -c device_owner" 6, run "neutron net-update EXTERNAL-NETWORK --shared False" expected: "Updated network: EXTERNAL-NETWORK" observed: "Unable to reconfigure sharing settings for network EXTERNAL-NETWORK. Multiple tenants are using it." ### analyse ### 1, even all ports on EXTERNAL-NETWORK are belong to admin tenant, still fail to update EXTERNAL-NETWORK shared attribute. 2, _validate_shared_update fails to work as expected for not all ports on EXTERNAL-NETWORK have tenant_id. 3, following dvr and floatingip related ports have no tenant_id, _validate_shared_update need be fixed for them: fg: network:floatingip_agent_gateway sg: network:router_centralized_snat To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1522482/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp