← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2034761] [NEW] test discovery fail with latest neutron-lib

 

You have been subscribed to a public bug:

Hi,

Building networking-baremetal 6.2.0 together with the latest neutron-lib 3.8.0 in my bookworm-backports build server, I get a test discovery error from stestr (see Debian package build log below). Apparently, it looks like it's because of this commit:
https://github.com/openstack/neutron-lib/commit/673e48a1890c721654ce0de9cd9e0897c791bd6a 

that networking is still using. Here's the build log:

PYTHON=python3.11 stestr run --parallel --subunit networking_baremetal.tests.* | subunit2pyunit
[...]

/usr/lib/python3/dist-packages/neutron/db/quota/models.py:21: SAWarning: This declarative base already contains a class with the same class name and module name as neutron.db.quota.models.ResourceDelta, and will be replaced in the string-lookup table.
  class ResourceDelta(model_base.BASEV2):
/usr/lib/python3/dist-packages/neutron/db/qos/models.py:27: SAWarning: This declarative base already contains a class with the same class name and module name as neutron.db.qos.models.QosPolicy, and will be replaced in the string-lookup table.
  class QosPolicy(standard_attr.HasStandardAttributes, model_base.BASEV2,

=========================
Failures during discovery
=========================
--- import errors ---
Failed to import test module: networking_baremetal.tests.unit.drivers.netconf.test_openconfig
Traceback (most recent call last):
  File "/usr/lib/python3.11/unittest/loader.py", line 407, in _find_test_path
    module = self._get_module_from_name(name)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/unittest/loader.py", line 350, in _get_module_from_name
    __import__(name)
  File "/<<PKGBUILDDIR>>/networking_baremetal/tests/unit/drivers/netconf/test_openconfig.py", line 17, in <module>
    from neutron.plugins.ml2 import driver_context
  File "/usr/lib/python3/dist-packages/neutron/plugins/ml2/driver_context.py", line 23, in <module>
    from neutron.db import segments_db
  File "/usr/lib/python3/dist-packages/neutron/db/segments_db.py", line 23, in <module>
    from neutron.objects import network as network_obj
  File "/usr/lib/python3/dist-packages/neutron/objects/network.py", line 33, in <module>
    from neutron.objects.qos import binding
  File "/usr/lib/python3/dist-packages/neutron/objects/qos/binding.py", line 25, in <module>
    from neutron.db.qos import models as qos_db_model
  File "/usr/lib/python3/dist-packages/neutron/db/qos/models.py", line 135, in <module>
    model_base.HasProjectPrimaryKeyIndex):
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'neutron_lib.db.model_base' has no attribute 'HasProjectPrimaryKeyIndex'

Failed to import test module: networking_baremetal.tests.unit.ironic_agent.test_hashring_member_manager
Traceback (most recent call last):
  File "/usr/lib/python3.11/unittest/loader.py", line 407, in _find_test_path
    module = self._get_module_from_name(name)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/unittest/loader.py", line 350, in _get_module_from_name
    __import__(name)
  File "/<<PKGBUILDDIR>>/networking_baremetal/tests/unit/ironic_agent/test_hashring_member_manager.py", line 21, in <module>
    from networking_baremetal.agent import ironic_neutron_agent
  File "/<<PKGBUILDDIR>>/networking_baremetal/agent/ironic_neutron_agent.py", line 23, in <module>
    from neutron.agent import rpc as agent_rpc
  File "/usr/lib/python3/dist-packages/neutron/agent/rpc.py", line 36, in <module>
    from neutron.agent import resource_cache
  File "/usr/lib/python3/dist-packages/neutron/agent/resource_cache.py", line 22, in <module>
    from neutron.api.rpc.callbacks.consumer import registry as registry_rpc
  File "/usr/lib/python3/dist-packages/neutron/api/rpc/callbacks/consumer/registry.py", line 13, in <module>
    from neutron.api.rpc.callbacks import resource_manager
  File "/usr/lib/python3/dist-packages/neutron/api/rpc/callbacks/resource_manager.py", line 20, in <module>
    from neutron.api.rpc.callbacks import resources
  File "/usr/lib/python3/dist-packages/neutron/api/rpc/callbacks/resources.py", line 14, in <module>
    from neutron.objects import address_group
  File "/usr/lib/python3/dist-packages/neutron/objects/address_group.py", line 22, in <module>
    from neutron.objects import rbac_db
  File "/usr/lib/python3/dist-packages/neutron/objects/rbac_db.py", line 28, in <module>
    from neutron.db import rbac_db_mixin
  File "/usr/lib/python3/dist-packages/neutron/db/rbac_db_mixin.py", line 25, in <module>
    from neutron.extensions import rbac as ext_rbac
  File "/usr/lib/python3/dist-packages/neutron/extensions/rbac.py", line 23, in <module>
    from neutron.api.v2 import base
  File "/usr/lib/python3/dist-packages/neutron/api/v2/base.py", line 37, in <module>
    from neutron import quota
  File "/usr/lib/python3/dist-packages/neutron/quota/__init__.py", line 21, in <module>
    from neutron.quota import resource_registry
  File "/usr/lib/python3/dist-packages/neutron/quota/resource_registry.py", line 20, in <module>
    from neutron.quota import resource
  File "/usr/lib/python3/dist-packages/neutron/quota/resource.py", line 28, in <module>
    from neutron.db.quota import api as quota_api
  File "/usr/lib/python3/dist-packages/neutron/db/quota/api.py", line 22, in <module>
    from neutron.objects import quota as quota_obj
  File "/usr/lib/python3/dist-packages/neutron/objects/quota.py", line 21, in <module>
    from neutron.db.quota import models
  File "/usr/lib/python3/dist-packages/neutron/db/quota/models.py", line 57, in <module>
    class QuotaUsage(model_base.BASEV2, model_base.HasProjectPrimaryKeyIndex):
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'neutron_lib.db.model_base' has no attribute 'HasProjectPrimaryKeyIndex'

Failed to import test module: networking_baremetal.tests.unit.ironic_agent.test_ironic_agent
Traceback (most recent call last):
  File "/usr/lib/python3.11/unittest/loader.py", line 407, in _find_test_path
    module = self._get_module_from_name(name)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/unittest/loader.py", line 350, in _get_module_from_name
    __import__(name)
  File "/<<PKGBUILDDIR>>/networking_baremetal/tests/unit/ironic_agent/test_ironic_agent.py", line 18, in <module>
    from neutron.agent import rpc as agent_rpc
  File "/usr/lib/python3/dist-packages/neutron/agent/rpc.py", line 36, in <module>
    from neutron.agent import resource_cache
  File "/usr/lib/python3/dist-packages/neutron/agent/resource_cache.py", line 22, in <module>
    from neutron.api.rpc.callbacks.consumer import registry as registry_rpc
  File "/usr/lib/python3/dist-packages/neutron/api/rpc/callbacks/consumer/registry.py", line 13, in <module>
    from neutron.api.rpc.callbacks import resource_manager
  File "/usr/lib/python3/dist-packages/neutron/api/rpc/callbacks/resource_manager.py", line 20, in <module>
    from neutron.api.rpc.callbacks import resources
  File "/usr/lib/python3/dist-packages/neutron/api/rpc/callbacks/resources.py", line 14, in <module>
    from neutron.objects import address_group
  File "/usr/lib/python3/dist-packages/neutron/objects/address_group.py", line 22, in <module>
    from neutron.objects import rbac_db
  File "/usr/lib/python3/dist-packages/neutron/objects/rbac_db.py", line 28, in <module>
    from neutron.db import rbac_db_mixin
  File "/usr/lib/python3/dist-packages/neutron/db/rbac_db_mixin.py", line 25, in <module>
    from neutron.extensions import rbac as ext_rbac
  File "/usr/lib/python3/dist-packages/neutron/extensions/rbac.py", line 23, in <module>
    from neutron.api.v2 import base
  File "/usr/lib/python3/dist-packages/neutron/api/v2/base.py", line 37, in <module>
    from neutron import quota
  File "/usr/lib/python3/dist-packages/neutron/quota/__init__.py", line 21, in <module>
    from neutron.quota import resource_registry
  File "/usr/lib/python3/dist-packages/neutron/quota/resource_registry.py", line 20, in <module>
    from neutron.quota import resource
  File "/usr/lib/python3/dist-packages/neutron/quota/resource.py", line 28, in <module>
    from neutron.db.quota import api as quota_api
  File "/usr/lib/python3/dist-packages/neutron/db/quota/api.py", line 22, in <module>
    from neutron.objects import quota as quota_obj
  File "/usr/lib/python3/dist-packages/neutron/objects/quota.py", line 21, in <module>
    from neutron.db.quota import models
  File "/usr/lib/python3/dist-packages/neutron/db/quota/models.py", line 21, in <module>
    class ResourceDelta(model_base.BASEV2):
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/decl_api.py", line 76, in __init__
    _as_declarative(reg, cls, dict_)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative
    return _MapperConfig.setup_mapping(registry, cls, dict_, None, {})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping
    return cfg_cls(registry, cls_, dict_, table, mapper_kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/decl_base.py", line 331, in __init__
    self._setup_table(table)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/decl_base.py", line 854, in _setup_table
    table_cls(
  File "<string>", line 2, in __new__
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/deprecations.py", line 375, in warned
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/schema.py", line 596, in __new__
    raise exc.InvalidRequestError(
sqlalchemy.exc.InvalidRequestError: Table 'resourcedeltas' is already defined for this MetaData instance.  Specify 'extend_existing=True' to redefine options and columns on an existing Table object.

Failed to import test module: networking_baremetal.tests.unit.plugins.ml2.test_baremetal_mech
Traceback (most recent call last):
  File "/usr/lib/python3.11/unittest/loader.py", line 407, in _find_test_path
    module = self._get_module_from_name(name)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/unittest/loader.py", line 350, in _get_module_from_name
    __import__(name)
  File "/<<PKGBUILDDIR>>/networking_baremetal/tests/unit/plugins/ml2/test_baremetal_mech.py", line 19, in <module>
    from neutron.plugins.ml2 import driver_context
  File "/usr/lib/python3/dist-packages/neutron/plugins/ml2/driver_context.py", line 23, in <module>
    from neutron.db import segments_db
  File "/usr/lib/python3/dist-packages/neutron/db/segments_db.py", line 23, in <module>
    from neutron.objects import network as network_obj
  File "/usr/lib/python3/dist-packages/neutron/objects/network.py", line 33, in <module>
    from neutron.objects.qos import binding
  File "/usr/lib/python3/dist-packages/neutron/objects/qos/binding.py", line 25, in <module>
    from neutron.db.qos import models as qos_db_model
  File "/usr/lib/python3/dist-packages/neutron/db/qos/models.py", line 27, in <module>
    class QosPolicy(standard_attr.HasStandardAttributes, model_base.BASEV2,
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/decl_api.py", line 76, in __init__
    _as_declarative(reg, cls, dict_)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative
    return _MapperConfig.setup_mapping(registry, cls, dict_, None, {})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping
    return cfg_cls(registry, cls_, dict_, table, mapper_kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/decl_base.py", line 331, in __init__
    self._setup_table(table)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/decl_base.py", line 854, in _setup_table
    table_cls(
  File "<string>", line 2, in __new__
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/deprecations.py", line 375, in warned
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/schema.py", line 596, in __new__
    raise exc.InvalidRequestError(
sqlalchemy.exc.InvalidRequestError: Table 'qos_policies' is already defined for this MetaData instance.  Specify 'extend_existing=True' to redefine options and columns on an existing Table object.

================================================================================
The above traceback was encountered during test discovery which imports all the found test modules in the specified test_path.

----------------------------------------------------------------------
Ran 0 tests in 5.903s

OK
+ stestr slowest
make[1]: *** [debian/rules:29: override_dh_install] Error 3

** Affects: neutron
     Importance: Undecided
         Status: New

-- 
test discovery fail with latest neutron-lib
https://bugs.launchpad.net/bugs/2034761
You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron.