[Openstack] [Quantum][Nova] requested_id and port spec

Dan Wendlandt dan at nicira.com
Tue Jul 31 13:58:32 UTC 2012


On Tue, Jul 31, 2012 at 12:30 AM, Nati Ueno <nati.ueno at 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-dev at 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.com at lists.launchpad.net wrote:
> >> >> -----
> >> >> To: openstack at lists.openstack.org, netstack at lists.launchpad.net
> >> >> From: Nachi Ueno
> >> >> Sent by: netstack-bounces+gongysh=cn.ibm.com at 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     : netstack at lists.launchpad.net
> >> >> Unsubscribe : https://launchpad.net/~netstack
> >> >> More help   : https://help.launchpad.net/ListHelp
> >> >>
> >> >--
> >> >Nachi Ueno
> >> >email:nati.ueno at gmail.com
> >> >twitter:http://twitter.com/nati
> >>
> >> _______________________________________________
> >> Mailing list: https://launchpad.net/~openstack
> >> Post to     : openstack at 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.ueno at gmail.com
> twitter:http://twitter.com/nati
>



-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Wendlandt
Nicira, Inc: www.nicira.com
twitter: danwendlandt
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20120731/8d31890b/attachment.html>


More information about the Openstack mailing list