)]}'
{"nova/network/neutronv2/api.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"34114851356685a7eda3973fa846a1662d2b6224","unresolved":false,"context_lines":[{"line_number":317,"context_line":"                               neutronv2.get_client(context, admin\u003dTrue))"},{"line_number":318,"context_line":"                if port:"},{"line_number":319,"context_line":"                    if self._has_port_binding_extension(context):"},{"line_number":320,"context_line":"                        # XXX(zangmingjie): this is a read/updte operation, the"},{"line_number":321,"context_line":"                        # neutron binding profile interface doesn\u0027t support"},{"line_number":322,"context_line":"                        # atomic field update, racing may encounter here."},{"line_number":323,"context_line":"                        profile \u003d port.get(\u0027binding:profile\u0027, {})"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FKec%3D","line":320,"updated":"2014-03-19 20:04:45.000000000","message":"s/updte/update","commit_id":"82b8a8e34af92dab52f3344913069419eee1b2d3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"34114851356685a7eda3973fa846a1662d2b6224","unresolved":false,"context_lines":[{"line_number":337,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":338,"context_line":"                    for port_id in touched_port_ids:"},{"line_number":339,"context_line":"                        try:"},{"line_number":340,"context_line":"                            port_req_body \u003d {\u0027port\u0027: {\u0027device_id\u0027: \u0027\u0027}}"},{"line_number":341,"context_line":"                            # Requires admin creds to set port bindings"},{"line_number":342,"context_line":"                            if self._has_port_binding_extension(context):"},{"line_number":343,"context_line":"                                port_req_body[\u0027port\u0027][\u0027binding:host_id\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FKe4%3D","line":340,"updated":"2014-03-19 20:04:45.000000000","message":"Why the above change?","commit_id":"82b8a8e34af92dab52f3344913069419eee1b2d3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"34114851356685a7eda3973fa846a1662d2b6224","unresolved":false,"context_lines":[{"line_number":428,"context_line":"                    else:"},{"line_number":429,"context_line":"                        neutron.delete_port(port[\u0027id\u0027])"},{"line_number":430,"context_line":"                else:"},{"line_number":431,"context_line":"                    neutron.delete_port(port[\u0027id\u0027])"},{"line_number":432,"context_line":"            except neutronv2.exceptions.NeutronClientException as e:"},{"line_number":433,"context_line":"                if e.status_code \u003d\u003d 404:"},{"line_number":434,"context_line":"                    LOG.warning(_(\"Port %s does not exist\"), port)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FKcY%3D","line":431,"updated":"2014-03-19 20:04:45.000000000","message":"In this case, you are deleting the port as the admin, not the user, since neutron variable is an admin client per line 407. To keep existing behavior, and ensure that the deletion of the port is attributed to the request user and not the admin, I believe the above should be:\n\n neutronv2.get_client(context).delete_port(port[\u0027id\u0027])","commit_id":"82b8a8e34af92dab52f3344913069419eee1b2d3"}]}
