On Tue, Jul 31, 2012 at 12:30 AM, Nati Ueno <nati.u...@gmail.com> wrote:
> Hi Dan > > >> > Matt > >> Thank you for your comment in launchpad > >> https://bugs.launchpad.net/nova/+bug/1031096 > >> > >> > >> Quantum team get consensus in a Netstack meeting today to propose > >> port-id for requested networks. I took the job. > >> At first, i thought i can write extension for this. But as you say > >> we should add port-id for the core API which is only used for quantum > API > >> 2.0. > > > > > > Hi Nachi, why is it that we can't implement this as an API extension > (even > > if passing in a network-id is in fact part of the core API)? > > I can write extension implemented in core API code. > My understanding of definition of extension was "the code is in > extension directory". > However , the implementation for extensions are also in outside of > extension directory as you mentioned in bug report. > # I could see no clear policy for this. > > IMO, the key concept of extension is let users to select the function > to use. ( User can turn off the extension. ) > So if we enable port_id when we use quantumV2 only, the concept will > be satisfied. > I tend to agree with that definition, assuming the nova folks do not have issues with it. Dan > > Nachi > > > dan > > > > > >> > >> My WIP code is like [1]. This change keep backward compatibility. > >> > >> > Yong, Dan > >> Matt said "you'd be breaking API compatibility and thus the API spec." > >> > >> This work will change API, so some consensus in community is needed to > >> add port_id. > >> I wanna discuss about the spec in this thread. > >> If the community rejects this addition, I'll implement fixed_ip one > >> ( see previous my message ) > >> > >> [1] WIP code for adding port_id ( Not tested) > >> > >> + def _get_port(self, port_id): > >> + if FLAGS.network_api_class != > >> + "nova.network.quantumv2.api.API": > >> + msg = _("Unknown argment : port_id") > >> + raise exc.HTTPBadRequest(explanation=msg) > >> + > >> + if port_id and not utils.is_uuid_like(port_id): > >> + msg = _("Bad port format: port uuid is " > >> + "not in proper format " > >> + "(%s)") % port_id > >> + raise exc.HTTPBadRequest(explanation=msg) > >> + try: > >> + port = > >> quantumv2.get_client(context).list_networks(**search_opts) > >> + if port.device_id: > >> + raise Exception("Port id %s is already used" % port_id) > >> + return port > >> + except Exception as e: > >> + msg = _("This port_id can't used " > >> + "(%s)") % port_id > >> + raise exc.HTTPBadRequest(explanation=msg) > >> + > >> def _get_requested_networks(self, requested_networks): > >> """Create a list of requested networks from the networks > >> attribute.""" > >> networks = [] > >> for network in requested_networks: > >> try: > >> + port_id = network.get('port_id', None) > >> + if port_id: > >> + port = self._get_port() > >> + network['uuid'] = port.network_id > >> + network['fixed_ip'] = port.fixed_ip > >> + > >> > >> Thank you in advance > >> Nachi Ueno > >> > >> >> Hi Nachi, > >> >> It is seemingly a way to make it work, but I think we are thinking to > >> >> provide 'port-id' or just 'port' to specify the top resource in > quantum > >> >> API. > >> >> fix ip is not one. > >> >> > >> >> Besides, Port can be assigned to more than one fixed IP. > >> > > >> >Ah, It it true. > >> >OK I'll implement port id version. > >> > > >> >> Imagine in horizon, we created many networks, ports and subnets, but > >> >> when > >> >> booting a VM, we use a fixed_ip to specify our resource indirectly. > >> > > >> >> By the way, we should use openstack-...@list.openstack.org > >> > > >> >Sorry, I changed my mail address recently. But launchpad rejects new > >> >mail to receive. > >> >I'll find way to fix this. > >> > > >> >Thanks > >> > > >> > > >> >Nachi > >> > > >> >> Thanks > >> >> Yong Sheng Gong > >> >> > >> >> -----netstack-bounces+gongysh=cn.ibm....@lists.launchpad.net wrote: > >> >> ----- > >> >> To: openst...@lists.openstack.org, netst...@lists.launchpad.net > >> >> From: Nachi Ueno > >> >> Sent by: netstack-bounces+gongysh=cn.ibm....@lists.launchpad.net > >> >> Date: 07/31/2012 08:33AM > >> >> Subject: [Netstack] [Quantum][Nova] requested_id and port spec > >> >> > >> >> Hi Dan,folks > >> >> > >> >> As we talked in netstack IRC meetins, I submit this as bug. > >> >> https://bugs.launchpad.net/nova/+bug/1031096 > >> >> > >> >> I tried to write this, but the code looks very ugly in order to keep > >> >> backward compatibility. > >> >> So I wanna propose an alternative design. > >> >> In this design, we will use fixed_ip as a temporary identifier of the > >> >> port. > >> >> > >> >> 1. create port > >> >> fixed_ip assigned > >> >> > >> >> 2. specify the fixed_ip in nova boot > >> >> > >> >> 3. If the fixed_ip is specified, > >> >> nova.network.quantumv2.api.API will check existing port who use the > >> >> fixed_ip. > >> >> > >> >> if there are existing port and device_id is None > >> >> use the port_id. > >> >> > >> >> if there are no existing port. > >> >> create new port with the fixed_ip > >> >> > >> >> This approach needs no client side change. > >> >> > >> >> Thank you in advance > >> >> Nachi Ueno > >> >> > >> >> -- > >> >> Mailing list: https://launchpad.net/~netstack > >> >> Post to : netst...@lists.launchpad.net > >> >> Unsubscribe : https://launchpad.net/~netstack > >> >> More help : https://help.launchpad.net/ListHelp > >> >> > >> >-- > >> >Nachi Ueno > >> >email:nati.u...@gmail.com > >> >twitter:http://twitter.com/nati > >> > >> _______________________________________________ > >> Mailing list: https://launchpad.net/~openstack > >> Post to : openstack@lists.launchpad.net > >> Unsubscribe : https://launchpad.net/~openstack > >> More help : https://help.launchpad.net/ListHelp > > > > > > > > > > -- > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Dan Wendlandt > > Nicira, Inc: www.nicira.com > > twitter: danwendlandt > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > -- > Nachi Ueno > email:nati.u...@gmail.com > twitter:http://twitter.com/nati > -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dan Wendlandt Nicira, Inc: www.nicira.com twitter: danwendlandt ~~~~~~~~~~~~~~~~~~~~~~~~~~~
_______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp