← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1541774] Re: create response for networks and ports is missing extensions

 

Reviewed:  https://review.openstack.org/276219
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=b6d091279fffe441f6d28e687313ad031a24a3ec
Submitter: Jenkins
Branch:    master

commit b6d091279fffe441f6d28e687313ad031a24a3ec
Author: Kevin Benton <blak111@xxxxxxxxx>
Date:   Wed Feb 3 23:49:11 2016 -0800

    ML2: Call _dict_extend in create_(net|port) ops
    
    The extensions fields were not being added to the response being
    sent back to the user for ports and networks that weren't from
    ML2 extensions (e.g. availability zones). This created an
    inconsistent response between creates and updates/gets. It also
    resulted in incomplete data in the AMQP create notification emitted
    in the API layer.
    
    This patch adjusts ML2 to call the _apply_dict_extend_functions
    method after creating ports and networks. To make this work, another
    DB lookup to get the latest model state was necessary. However, this
    is part of an already expensive operation (create) so the performance
    impact should be minimal.
    
    This issue stems from the fact that db_base_plugin_v2 does not
    process extensions when its create_port, create_network methods
    are called. This original skipping behavior was added back in
    patch If0f0277191884aab4dcb1ee36826df7f7d66a8fa as a performance
    improvement to deal with dictionary extension functions that
    performed DB lookups. However, at this point the dictionary
    extension functions should have been optimized to skip any DB
    lookups to avoid the massive performance penalties they incur
    during list operations.
    
    An alternative to this patch was to adjust the db_base_plugin_v2
    to stop skipping extensions. However, because this is usually
    called by inheriting plugins before they process extensions
    for the new port/network, the extensions do not yet have the
    required information to extend the dict and will fail. So each
    core plugin will need to apply similar logic to support extensions
    that rely on the extend_dict functions.
    
    Closes-Bug: #1541774
    Change-Id: Iea2c0e7f9ee5eeae28b99797874ca8a8e5790ec2


** 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/1541774

Title:
  create response for networks and ports is missing extensions

Status in neutron:
  Fix Released

Bug description:
  when issuing a create port or a create network, any extensions loaded
  via the dictionary extension mechanisms are not included in the
  response.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1541774/+subscriptions


References