From 709f79ce6dae210ec1bd4c86d5343650dfda56f2 Mon Sep 17 00:00:00 2001 From: Shaohe Feng Date: Thu, 8 Feb 2018 09:21:28 +0000 Subject: [PATCH] bug fix: rename accelerator to Accelerator When run: $ python -m unittest cyborg.tests.unit.accelerator.drivers.modules.test_generic It will report the follow error: File "cyborg/tests/unit/accelerator/drivers/modules/test_generic.py", line 20, in from cyborg.accelerator.drivers.generic_driver import GenericDriver as generic File "cyborg/accelerator/drivers/generic_driver.py", line 24, in from cyborg.accelerator import accelerator File "cyborg/accelerator/accelerator.py", line 23, in class accelerator(Base): File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/api.py", line 64, in __init__ _as_declarative(cls, classname, cls.__dict__) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/base.py", line 88, in _as_declarative _MapperConfig.setup_mapping(cls, classname, dict_) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/base.py", line 103, in setup_mapping cfg_cls(cls_, classname, dict_) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/base.py", line 125, in __init__ clsregistry.add_class(self.classname, self.cls) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/clsregistry.py", line 65, in add_class module.add_class(classname, cls) File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/clsregistry.py", line 172, in add_class existing.add_item(cls) AttributeError: '_ModuleMarker' object has no attribute 'add_item' That's because: _ModuleMarker will add the module name and class name in to same contents dict. _MultipleClassMarker refers to multiple classes of the same name within _decl_class_registry. It has add_item attribute. _ModuleMarker refers to a module name within _decl_class_registry. It does not have add_item attribute. So the class name should be different with module name. REF: https://github.com/zzzeek/sqlalchemy/blob/master/lib/sqlalchemy/ext/declarative/clsregistry.py Change-Id: I8d8aa8809f6afd5b9eaace832a06ba7f3770e652 --- cyborg/accelerator/accelerator.py | 2 +- cyborg/accelerator/drivers/generic_driver.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cyborg/accelerator/accelerator.py b/cyborg/accelerator/accelerator.py index 1c818684..18cc4e90 100644 --- a/cyborg/accelerator/accelerator.py +++ b/cyborg/accelerator/accelerator.py @@ -20,7 +20,7 @@ Base = declarative_base() # A common internal acclerator object for internal use. -class accelerator(Base): +class Accelerator(Base): __tablename__ = 'accelerators' accelerator_id = Column(String, primary_key=True) device_type = Column(String) diff --git a/cyborg/accelerator/drivers/generic_driver.py b/cyborg/accelerator/drivers/generic_driver.py index 401e029d..2e13ecc2 100644 --- a/cyborg/accelerator/drivers/generic_driver.py +++ b/cyborg/accelerator/drivers/generic_driver.py @@ -44,7 +44,7 @@ class GenericDriver(generic.GENERICDRIVER): def do_setup(self, context): """Any initialization the generic driver does while starting.""" super(GenericDriver, self).do_setup(context) - self.acc = accelerator.accelerator() + self.acc = accelerator.Accelerator() def create_accelerator(self, context): """Creates accelerator."""