Hi team, I have two concerns with the commit below, one general, one specific.
First off, the general concern: this change changes our tenant-facing API, but it seems that there was no real public discussion or notification of this change. Our tenant-facing APIs, including extensions, must be stable, consistent, and documented. I would argue that changes to the API should be part of blueprints, which will trigger a discussion about API consistency, documentation, etc. Second, the specific one: I want to explain the reasoning why this field was not included in the original version of the L3 API, and why my current thinking is that it probably should not be added. The model we were going with for L3 routers is that the details of the gateway are abstracted from the tenant. In particular, the port used to "hold" the IP allocation for gateway and floating-ip ports are not visible to a common tenant and should not be manipulated directly. They are only visible to an admin user. As a result, I would argue that include the gw port info in the JSON that is visible to all tenants doesn't really make sense. We could consider adding it as an admin only attribute (similar to how the provider network attributes are included in a network, but only for admins), though this info is already available to admin users if they search for ports that have the device_owner=<router-id> and device_owner=network:router_gateway . We could even has the CLI do this as part of the router-show command, if the user was an admin. I think we can have a technical discussions about the second issue, but my most major concern is actually the first issue in that we need have a more deliberate process when it comes to making changes to tenant-facing APIs. Dan p.s. if we end up deciding to make the change to the API, I would also argue that the field be named something like gw_port_id, rather than gw_port, as we try to maintain consistency that UUID fields end with _id. This is where Salvatore and the API police come into play :P ---------- Forwarded message ---------- From: OpenStack Hudson <[email protected]> Date: Thu, Nov 1, 2012 at 2:40 AM Subject: [Bug 1069782] Re: quantum router-show should return interfaces too To: [email protected] Reviewed: https://review.openstack.org/15101 Committed: http://github.com/openstack/quantum/commit/c1c19b11792e8e220b11466051739ea5b4279a7a Submitter: Jenkins Branch: master commit c1c19b11792e8e220b11466051739ea5b4279a7a Author: gongysh <[email protected]> Date: Wed Oct 31 22:01:35 2012 +0800 Put gw_port into router dict result. Bug #1069782 We put gw_port into router dict result so that client can get more information for the result router. Change-Id: I54cec8a71441a9370c7ba95767a92190bf1c9c21 ** Changed in: quantum Status: In Progress => Fix Committed -- You received this bug notification because you are a member of Netstack Core Developers, which is subscribed to quantum. https://bugs.launchpad.net/bugs/1069782 Title: quantum router-show should return interfaces too Status in Python client library for Quantum: In Progress Status in OpenStack Quantum (virtual network service): Fix Committed Bug description: interfaces and external_gateway_info are two arms of a router, so we should be able to show interface information too. quantum router-show myrouter1 +-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | admin_state_up | True | | external_gateway_info | | | id | c508d501-8019-4e12-b332-fd19ac3be79e | | name | myrouter1 | | status | ACTIVE | | tenant_id | b7445f221cda4f4a8ac7db6b218b1339 | +-----------------------+--------------------------------------+ To manage notifications about this bug go to: https://bugs.launchpad.net/python-quantumclient/+bug/1069782/+subscriptions -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dan Wendlandt Nicira, Inc: www.nicira.com twitter: danwendlandt ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Mailing list: https://launchpad.net/~quantum-core Post to : [email protected] Unsubscribe : https://launchpad.net/~quantum-core More help : https://help.launchpad.net/ListHelp

