<div dir="ltr">Hi,<div><br></div><div>in the discussion for patch <a href="https://review.openstack.org/#/c/50880/">https://review.openstack.org/#/c/50880/</a> Sean asked a very reasonable question: </div><div><br></div><div>
"<span style="color:rgb(0,0,0);font-family:'Arial Unicode MS',Arial,sans-serif">so are all these [Neutron] extensions always loaded on all environments? If not, how are we detecting which are?"</span></div>
<div><span style="color:rgb(0,0,0);font-family:'Arial Unicode MS',Arial,sans-serif"><br></span></div><div><font color="#000000" face="Arial Unicode MS, Arial, sans-serif">So far we've been relying on devstack-gate setup, I think. If the extension is enabled by devstack-gate, then you can add the test. This would make sense if tempest is used exclusively by the upstream gate jobs, which however appears not to be the case. It should therefore be possible to select which tests should be run according to currently enabled Neutron extensions, which depend on core and service plugins</font></div>
<div><font color="#000000" face="Arial Unicode MS, Arial, sans-serif"><br></font></div><div><font color="#000000" face="Arial Unicode MS, Arial, sans-serif">One way to solve this issue would be to use tempest configuration variables; while this is the simplest approach, there are already 25 extensions in Neutron, not counting plugin-specific extensions. This number can only grow in future releases, so I have a few concerns about maintainability of this approach because of the high number of configuration variables.</font></div>
<div><font color="#000000" face="Arial Unicode MS, Arial, sans-serif"><br></font></div><div><font color="#000000" face="Arial Unicode MS, Arial, sans-serif">Another way is to use Neutron API to query available extensions, by querying /v2.0/extensions</font></div>
<div><font color="#000000" face="Arial Unicode MS, Arial, sans-serif">This will return the list of currently loaded extensions, from which extension aliases can be easily extracted; these values can then be used to conditionally skip tests. This Neutron query can either be done each time an API test class is initialised  or just once - by storing in memory the list of enabled extensions. If you deem the last approach reasonable, I'd be happy to provide some code for it. I see many patches pushed into tempest without an accompanying blueprint/bug; should I register anyway a blueprint for this work?</font></div>
<div><font color="#000000" face="Arial Unicode MS, Arial, sans-serif"><br></font></div><div><font color="#000000" face="Arial Unicode MS, Arial, sans-serif">Regards,</font></div><div><font color="#000000" face="Arial Unicode MS, Arial, sans-serif">Salvatore</font></div>
<div><font color="#000000" face="Arial Unicode MS, Arial, sans-serif"><br></font></div><div><br></div></div>