<html><body>
<p><tt><font size="2">Vishvananda Ishaya <vishvananda@gmail.com> wrote on 01/28/2015 11:32:16 AM:<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/2015 11:50 AM</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>
<br>
<tt><font size="2">Bug filed: </font></tt><a href="https://bugs.launchpad.net/nova/+bug/1417649"><tt><font size="2">https://bugs.launchpad.net/nova/+bug/1417649</font></tt></a><br>
<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>
</font></tt><br>
<tt><font size="2">I have proposed a fix that implements this solution:</font></tt><br>
<a href="https://review.openstack.org/#/c/152614"><tt><font size="2">https://review.openstack.org/#/c/152614</font></tt></a><br>
<br>
<tt><font size="2">Thanks,</font></tt><br>
<tt><font size="2">Steven Kaufer</font></tt><br>
<br>
<tt><font size="2">> 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</font></tt></body></html>