Bug 1548097

Summary: neutron-lbaas provides entry point for test shipped in neutron-lbaas-tests package
Product: Red Hat OpenStack Reporter: Pavel Sedlák <psedlak>
Component: openstack-neutron-lbaasAssignee: Assaf Muller <amuller>
Status: CLOSED ERRATA QA Contact: Toni Freger <tfreger>
Severity: medium Docs Contact:
Priority: medium    
Version: 9.0 (Mitaka)CC: amuller, apevec, bcafarel, lhh, nyechiel, slinaber, tfreger
Target Milestone: zstreamKeywords: Triaged, ZStream
Target Release: 9.0 (Mitaka)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-neutron-lbaas-8.4.0-4.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1547567 Environment:
Last Closed: 2018-03-15 12:43:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1547567    
Bug Blocks:    

Description Pavel Sedlák 2018-02-22 17:10:12 UTC
in this case for OSP9, it would be consequence of https://bugzilla.redhat.com/show_bug.cgi?id=1526098

+++ This bug was initially created as a clone of Bug #1547567 +++

Description of problem:
With python entry point being added as requested in https://bugzilla.redhat.com/show_bug.cgi?id=1526100
is is provided by neutron-lbaas package,
when tempest and neutron-lbaas are both installed (example packstack allinone or such),
any attempt to configure and run tempest will fail.

> tools/config_tempest.py  --debug -v --create   ...
> STDERR:
> 2018-02-20 17:09:59.480 19626 INFO tempest [-] Using tempest config file /etc/tempest/tempest.conf
> 2018-02-20 17:09:59.520 19626 ERROR tempest.test_discover.plugins [-] Could not load 'neutron_lbaas': No module named tests.tempest.plugin
> 2018-02-20 17:09:59.520 19626 CRITICAL tempest [-] ImportError: No module named tests.tempest.plugin
> 2018-02-20 17:09:59.520 19626 ERROR tempest Traceback (most recent call last):
> 2018-02-20 17:09:59.520 19626 ERROR tempest   File "tools/config_tempest.py", line 451, in <module>
> 2018-02-20 17:09:59.520 19626 ERROR tempest     class TempestConf(ConfigParser.SafeConfigParser):
> 2018-02-20 17:09:59.520 19626 ERROR tempest   File "tools/config_tempest.py", line 459, in TempestConf
> 2018-02-20 17:09:59.520 19626 ERROR tempest     CONF = tempest.config.TempestConfigPrivate(parse_conf=False)
> 2018-02-20 17:09:59.520 19626 ERROR tempest   File "/home/cloud-user/tempest-dir/tempest/config.py", line 1366, in __init__
> 2018-02-20 17:09:59.520 19626 ERROR tempest     register_opts()
> 2018-02-20 17:09:59.520 19626 ERROR tempest   File "/home/cloud-user/tempest-dir/tempest/config.py", line 1252, in register_opts
> 2018-02-20 17:09:59.520 19626 ERROR tempest     ext_plugins = plugins.TempestTestPluginManager()
> 2018-02-20 17:09:59.520 19626 ERROR tempest   File "/home/cloud-user/tempest-dir/tempest/lib/common/utils/misc.py", line 30, in getinstance
> 2018-02-20 17:09:59.520 19626 ERROR tempest     instances[cls] = cls()
> 2018-02-20 17:09:59.520 19626 ERROR tempest   File "/home/cloud-user/tempest-dir/tempest/test_discover/plugins.py", line 77, in __init__
> 2018-02-20 17:09:59.520 19626 ERROR tempest     on_load_failure_callback=self.failure_hook)
> 2018-02-20 17:09:59.520 19626 ERROR tempest   File "/usr/lib/python2.7/site-packages/stevedore/extension.py", line 92, in __init__
> 2018-02-20 17:09:59.520 19626 ERROR tempest     verify_requirements)
> 2018-02-20 17:09:59.520 19626 ERROR tempest   File "/usr/lib/python2.7/site-packages/stevedore/extension.py", line 170, in _load_plugins
> 2018-02-20 17:09:59.520 19626 ERROR tempest     self._on_load_failure_callback(self, ep, err)
> 2018-02-20 17:09:59.520 19626 ERROR tempest   File "/home/cloud-user/tempest-dir/tempest/test_discover/plugins.py", line 82, in failure_hook
> 2018-02-20 17:09:59.520 19626 ERROR tempest     raise err
> 2018-02-20 17:09:59.520 19626 ERROR tempest ImportError: No module named tests.tempest.plugin

Issue here being, that tempest does correctly attempts working with all registered entry points,
but in this case entry point is created/provided by rpm package which does not contain corresponding code for it,
this code (these tests) are shipped in separate neutron-lbaas-tests subpkg.

So for tempest to work now, whenever there is tempest & neutron-lbaas package, there always have to be neutron-lbaas-tests also installed.

Ideally entry point would be provided by neutron-lbaas-tests package itself (as that one contains the tests for which entry point is added, not the lbaas package itself).

There is also risk that when extra rpm dependencies/Requires being added,
we may end up installing lbaas packages and tests in environments where it's not expected
(e.g. in OSPd undercloud case lbaas is not installed, neither it's there related to availability of lbaas on OC nodes).


Version-Release number of selected component (if applicable):
openstack-tempest.noarch         1:liberty-20160413.2.el7ost @rhelosp-8.0-puddle     
python-neutron-lbaas.noarch      1:7.2.0-5.el7ost       @rhelosp-8.0-puddle     
openstack-neutron-lbaas.noarch   1:7.2.0-5.el7ost       @rhelosp-8.0-puddle     

Reproducible as:
packstack all-in-one install,
install tempest  # do not explicitely install lbaas-tests here
execute config_tempest tool

Comment 8 errata-xmlrpc 2018-03-15 12:43:20 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:0537