<html><body>
<p><font size="2" face="sans-serif">I'm glad this is getting some attention; it creates a visible bug in Horizon that hurts the UX. (I'm adding the horizon category to this.)</font><br>
<br>
<font size="2" face="sans-serif">But it sounds like Option 1 would potentially return a huge number of instances. There's nothing to stop the user from asking for all starting with "9". The UI could prevent it, but it really should be avoided in the API. So I would vote for an option that honors the limit.<br>
</font><br>
<br>
<font size="2" face="sans-serif">Randy Bertram</font><br>
<br>
<tt><font size="2">Vishvananda Ishaya <vishvananda@gmail.com> wrote on 01/28/2015 12:32:16 PM:<br>
<br>
> From: Vishvananda Ishaya <vishvananda@gmail.com></font></tt><br>
<tt><font size="2">> To: "OpenStack Development Mailing List (not for usage questions)" <br>
> <openstack-dev@lists.openstack.org></font></tt><br>
<tt><font size="2">> Date: 01/28/15 12:38 PM</font></tt><br>
<tt><font size="2">> Subject: Re: [openstack-dev] [nova] [api] Get servers with limit and<br>
> IP address filter</font></tt><br>
<tt><font size="2">> <br>
> On Jan 28, 2015, at 7:05 AM, Steven Kaufer <kaufer@us.ibm.com> wrote:</font></tt><br>
<tt><font size="2">> <br>
> Vishvananda Ishaya <vishvananda@gmail.com> wrote on 01/27/2015 04:29:50 PM:<br>
> <br>
> > From: Vishvananda Ishaya <vishvananda@gmail.com><br>
> > To: "OpenStack Development Mailing List (not for usage questions)" <br>
> > <openstack-dev@lists.openstack.org><br>
> > Date: 01/27/2015 04:32 PM<br>
> > Subject: Re: [openstack-dev] [nova] [api] Get servers with limit and<br>
> > IP address filter<br>
> > <br>
> > The network info for an instance is cached as a blob of data <br>
> > (neutron has the canonical version in most installs), so it isn’t <br>
> > particularly easy to do at the database layer. You would likely need<br>
> > a pretty complex stored procedure to do it accurately.<br>
> > <br>
> > Vish<br>
> <br>
> Vish,<br>
> <br>
> Thanks for the reply.<br>
> <br>
> I agree with your point about the difficultly in accurately querying<br>
> the blob of data; however, IMHO, the complexity this fix does not <br>
> preclude the current behavior as being classified as a bug.<br>
> <br>
> With that in mind, I was wondering if anyone in the community has <br>
> any thoughts on if the current behavior is considered a bug?</font></tt><br>
<tt><font size="2">> <br>
> Yes it should be classified as a bug.</font></tt><br>
<tt><font size="2">> <br>
> If so, how should it be resolved? A couple options that I could think of:<br>
> <br>
> 1. Disallow the combination of using both a limit and an IP address <br>
> filter by raising an error.</font></tt><br>
<tt><font size="2">> <br>
> I think this is the simplest solution.</font></tt><br>
<tt><font size="2">> <br>
> Vish</font></tt><br>
<tt><font size="2">> <br>
> 2. Workaround the problem by removing the limit from the DB query <br>
> and then manually limiting the list of servers (after manually <br>
> applying the IP address filter).<br>
> 3. Break up the query so that the server UUIDs that match the IP <br>
> filter are retrieved first and then used as a UUID DB filter. As far<br>
> as I can tell, this type of solution was originally implemented but <br>
> the network query was deemed to expensive [1]. Is there a less <br>
> expensive method to determine the UUIDs (possibly querying the <br>
> cached 'network_info' in the 'instance_info_caches' table)?<br>
> 4. Figure out how to accurately query the blob of network info that <br>
> is cached in the nova DB and apply the IP filter at the DB layer.<br>
> <br>
> [1]: <a href="https://review.openstack.org/#/c/131460/">https://review.openstack.org/#/c/131460/</a><br>
> <br>
> Thanks,<br>
> Steven Kaufer<br>
> <br>
> > <br>
> > On Jan 27, 2015, at 2:00 PM, Steven Kaufer <kaufer@us.ibm.com> wrote:<br>
> > <br>
> > Hello,<br>
> > <br>
> > When applying an IP address filter to a paginated servers query (eg,<br>
> > supplying servers/detail?ip=192.168&limit=100), the IP address <br>
> > filtering is only being applied against the non-filtered page of <br>
> > servers that were retrieved from the DB; see [1].<br>
> > <br>
> > I believe that the IP address filtering should be done before the <br>
> > limit is applied, returning up to <limit> servers that match the IP <br>
> > address filter.  Currently, if the servers in the page of data <br>
> > returned from the DB do not happen to match the IP address filter <br>
> > (applied in the compute API), then no servers will be returned by <br>
> > the REST API (even if there are servers that match the IP address filter).<br>
> > <br>
> > This seems like a bug to me, shouldn't all filtering be done at <br>
> the DB layer?<br>
> > <br>
> > [1]: <a href="https://github.com/openstack/nova/blob/master/nova/compute/">https://github.com/openstack/nova/blob/master/nova/compute/</a><br>
> > api.py#L2037-L2042<br>
> > <br>
> > Thanks,<br>
> > Steven Kaufer<br>
> > __________________________________________________________________________<br>
> > OpenStack Development Mailing List (not for usage questions)<br>
> > Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe<br>
> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
> > __________________________________________________________________________<br>
> > OpenStack Development Mailing List (not for usage questions)<br>
> > Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe<br>
> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
> __________________________________________________________________________<br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe<br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></font></tt><br>
<tt><font size="2">> __________________________________________________________________________<br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe<br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</font></tt></body></html>