<div dir="ltr"><div class=""><div class=""><br></div></div><span name="Ala Rezmerita" class="">Ala Rezmerita</span> just created an etherpad with the issues description (Thanks Ala!)<br><br><a href="https://etherpad.openstack.org/gate-tempest-devstack-vm-quantum-full" target="_blank">https://etherpad.openstack.org/gate-tempest-devstack-vm-quantum-full</a><br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jun 19, 2013 at 9:50 AM, Miguel Lavalle <span dir="ltr"><<a href="mailto:miguel@mlavalle.com" target="_blank">miguel@mlavalle.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi,<br><br></div>During the last Quantum IRC meeting, I mentioned that in working with Tempest tests we have identified a good number of situations where the nova and quantum api's behaviors are not consistent. Below you will find a document that describes the identified issues and who is assigned to fix them. If anyone knows of other issues not listed below or wants to help, please let us know.<br>
<span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">This
document lists all the Tempest tests that are failing on a Devstack +
Quantum Trunk setup. The goal is to make these tests pass for the Havana
Milestone 3. Alla, </span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;text-decoration:none;font-family:Arial;font-weight:normal">Miguel and Jordan are working on this.</span></p>
<span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">For each test :</span></p>
<ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">Provide the full path of the test. If the test has a double interface (JSON and XML), it痴 enough to provide only the JSON path.</span></p>
</li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">Provide a small stacktrace or a link to a Paste service such as </span><a href="http://paste.openstack.org/" style="text-decoration:none" target="_blank"><span style="font-size:15px;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">http://paste.openstack.org/</span></a><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"></span></p>
</li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">Would be great to provide the CURL URL that triggers the bug</span></p>
</li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">Provide
?a small analysis of what the bug may be and the components involved
(Quantum, Quantum API on Nova痴 side, Nova-network etc.)</span></p></li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">As far as possible, provide the file and the line number where the Python exception is raised or translated (田asted?)</span></p>
</li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">If already filed, an URL to the bug report in Launchpad</span></p>
</li></ul><h1 dir="ltr" style="line-height:1.1087;margin-top:10pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:21px;background-color:transparent;text-decoration:underline;font-family:'Trebuchet MS';font-weight:bold">Tests related to the Fixed IPs Compute API extension (</span><span style="font-size:21px;font-family:'Trebuchet MS';color:rgb(0,0,255);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">Miguel</span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:21px;background-color:transparent;text-decoration:underline;font-family:'Trebuchet MS';font-weight:bold">)</span></h1>
</li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:bold">Explanation</span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
: Call to
nova.api.openstack.compute.contrib.fixed_ips.FixedIPController::show()
This file doesn稚 use the Quantum API nor the Nova-Network API. It
interacts directly with the DB, which is bad.</span></p></li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">A possible fix would be to :</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">Change
nova.api.openstack.compute.contrib.fixed_ips.FixedIPController::show()
to use either nova.network.api.API::get_fixed_ip() (for Nova Network) or
nova.network.quantumv2.api.API:get_fixed_ip() (for Nova Network)</span></p></li><li dir="ltr" style="vertical-align:baseline;list-style-type:lower-alpha;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">Implement nova.network.quantumv2.api.API:get_fixed_ip() which currently raises a NotImplementedError exception</span></p>
</li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:bold">Possible Fix</span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">
: Should call
nova.api.openstack.compute.contrib.fixed_ips.FixedIPController::_set_reserved()
(once the result of db.fixed_ip_get_by_address() is made through the
API). Here the problem is that neither Nova-Network nor Quatum API
implement an equivalent of db.fixed_ip_update()</span></p></li></ul><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">3) tempest.api.compute.admin.test_fixed_ips:FixedIPsTestJson.test_set_unreserve</span></p>
<span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:21px;background-color:transparent;text-decoration:underline;font-family:'Trebuchet MS';font-weight:bold">Tests related to Floating IPs</span></h1>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(56,118,29);background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Notice that the address of the FloatingIP is empty. </span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(56,118,29);background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Explanation
: Mismatch in the 2 API. If there is only one IP in the pool, Quantum
allows the floating IP to be empty and returns the one and only IP in
the pool. Nova-network doesn稚 allow this and returns a 404</span></p></li><li dir="ltr" style="list-style-type:disc;font-size:13px;font-family:Arial;color:rgb(56,118,29);background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">
</li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal">This is related to bug 9)</span></p>
<span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:21px;background-color:transparent;text-decoration:underline;font-family:'Trebuchet MS';font-weight:bold">Tests Related to Security Groups (</span><span style="font-size:21px;font-family:'Trebuchet MS';color:rgb(0,0,255);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">Jordan</span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:21px;background-color:transparent;text-decoration:underline;font-family:'Trebuchet MS';font-weight:bold">)</span></h1>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:bold">Explanation</span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal">
: Notice that the parent_goup_id is ?a numerical ID and not a UUID.
Quantum has an additional check to validate that the ID is an UUID (see
nova/network/security_group/quantum_driver.py::validate_id())</span></p></li></ul><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal">Security
Group with duplicate name should not be created, but two groups with
the same name can be created in quantum. We have here the same problem
as in 15 and in 16. With Quantum, there is no validation that a ?group
with given name exists already or if the given SG name is empty or is
composed of white spaces or is more than 255 chars.</span></p><br><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal">In the description of bug </span><a href="https://bugs.launchpad.net/nova/+bug/1161411" style="text-decoration:none" target="_blank"><span style="font-size:13px;font-family:Arial;color:rgb(17,85,204);background-color:rgb(253,253,253);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">https://bugs.launchpad.net/nova/+bug/1161411</span></a><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal"> this issue is generally discussed. SecurityGroup API </span><span style="vertical-align:baseline;font-variant:normal;color:rgb(51,51,51);font-style:normal;font-size:13px;text-decoration:none;font-family:Arial;font-weight:normal">?are
based on the ID and not the names, except for adding an instance to a
security group. ?In order to solve the last problem the bug </span><a href="https://bugs.launchpad.net/nova/+bug/1161473" style="text-decoration:none" target="_blank"><span style="vertical-align:baseline;font-variant:normal;color:rgb(17,85,204);font-style:normal;font-size:13px;text-decoration:underline;font-family:Arial;font-weight:normal">https://bugs.launchpad.net/nova/+bug/1161473</span></a><span style="vertical-align:baseline;font-variant:normal;color:rgb(51,51,51);font-style:normal;font-size:13px;text-decoration:none;font-family:Arial;font-weight:normal"> was added. </span></p>
<span style="vertical-align:baseline;font-variant:normal;color:rgb(51,51,51);font-style:normal;font-size:13px;text-decoration:none;font-family:Arial;font-weight:normal">The
major question is if these 3 tests (14, 15, 16) : does the name of a
security group is really that important? If so, we must add some
validation methods. If not the test suit concerning this part must be
disable in tempest. What do you think Miguel?</span></p><br><span style="vertical-align:baseline;font-variant:normal;color:rgb(51,51,51);font-style:normal;font-size:13px;text-decoration:none;font-family:Arial;font-weight:normal"></span><br>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal">The Security Group should not be created with group name an empty string or with white spaces/chars more than 255</span></p>
<span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:21px;background-color:transparent;text-decoration:underline;font-family:'Trebuchet MS';font-weight:bold">Tests related to servers(</span><span style="font-size:21px;font-family:'Trebuchet MS';color:rgb(0,0,255);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">Ala</span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:21px;background-color:transparent;text-decoration:underline;font-family:'Trebuchet MS';font-weight:bold">)</span></h1>
</li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:bold">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(51,51,51);background-color:rgb(255,255,255);font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Explanation</span><span style="font-size:13px;font-family:Arial;color:rgb(51,51,51);background-color:rgb(255,255,255);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">
: The ?regex search is not supported by Quantum. Thus Quantum returns a
404 Not Found (0 server match) where Tempest expects one server to be
found.</span></p></li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:bold">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:bold">Possible Fix </span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal">: </span><span style="font-size:13px;font-family:Arial;color:rgb(51,51,51);background-color:rgb(255,255,255);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">For
"search port by IP with regex" feature, I think the best place to hack
it would be in file quantum/db/db_base_plugin_v2.py::_get_ports_query()</span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal"></span></p>
</li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:bold">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:bold">CURL</span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal">: GET http://$IP:8774/v2/$PROJECT_ID/servers/$SERVER/os-virtual-interfaces</span></p>
</li><li dir="ltr" style="vertical-align:baseline;list-style-type:disc;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:bold">
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(51,51,51);background-color:rgb(255,255,255);font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Explanation</span><span style="font-size:13px;font-family:Arial;color:rgb(51,51,51);background-color:rgb(255,255,255);font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">:
This HTTP request calls the Quantum API
(nova/nova/network/quantumv2/api.py) and specifically the get_vifs_by_*
methods which are not implemented (raise NotImplementedError())</span><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:13px;background-color:rgb(253,253,253);text-decoration:none;font-family:Arial;font-weight:normal"></span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="vertical-align:baseline;font-variant:normal;color:rgb(51,51,51);font-style:normal;font-size:13px;text-decoration:none;font-family:Arial;font-weight:normal">skip this test if Quantum is enabled as set in Tempest configuration. Or</span></p>