← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1522482] Re: dvr gateway port fails in _validate_shared_update

 

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 <lzklibj@xxxxxxxxxx>
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


References