Issue-ID: INF-254
Signed-off-by: Zhang Rong(Jon) <rong.zhang@windriver.com>
Change-Id: If99afa093a06c102fd83af2466db0384c7da2f24
logger.info("DB is ready")
logger.info("DB is ready")
-@retry(tries=3, delay=2)
-def wait_for_mappers_ready(engine):
- # wait for mapper ready
- logger.info("Wait for mapper ready ...")
- o2ims_orm.start_o2ims_mappers(engine)
- o2dms_orm.start_o2dms_mappers(engine)
- logger.info("mapper is ready")
-
-
def bootstrap(
start_orm: bool = True,
uow: unit_of_work.AbstractUnitOfWork = SqlAlchemyUnitOfWork(),
def bootstrap(
start_orm: bool = True,
uow: unit_of_work.AbstractUnitOfWork = SqlAlchemyUnitOfWork(),
engine = uow.session.get_bind()
wait_for_db_ready(engine)
engine = uow.session.get_bind()
wait_for_db_ready(engine)
- wait_for_mappers_ready(engine)
+ o2ims_orm.start_o2ims_mappers(engine)
+ o2dms_orm.start_o2dms_mappers(engine)
dependencies = {"uow": uow, "notifications": notifications,
"publish": publish}
dependencies = {"uow": uow, "notifications": notifications,
"publish": publish}
# See the License for the specific language governing permissions and\r
# limitations under the License.\r
\r
# See the License for the specific language governing permissions and\r
# limitations under the License.\r
\r
+from retry import retry\r
from sqlalchemy import (\r
Table,\r
MetaData,\r
from sqlalchemy import (\r
Table,\r
MetaData,\r
# ForeignKey,\r
# engine,\r
# event,\r
# ForeignKey,\r
# engine,\r
# event,\r
)\r
\r
from sqlalchemy.orm import mapper\r
)\r
\r
from sqlalchemy.orm import mapper\r
+@retry((exc.IntegrityError), tries=3, delay=2)\r
+def wait_for_metadata_ready(engine):\r
+ # wait for mapper ready\r
+ metadata.create_all(engine, checkfirst=True)\r
+ logger.info("metadata is ready")\r
+\r
+\r
def start_o2dms_mappers(engine=None):\r
logger.info("Starting O2 DMS mappers")\r
\r
def start_o2dms_mappers(engine=None):\r
logger.info("Starting O2 DMS mappers")\r
\r
mapper(dmsModel.NfOCloudVResource, nfOCloudVResource)\r
\r
if engine is not None:\r
mapper(dmsModel.NfOCloudVResource, nfOCloudVResource)\r
\r
if engine is not None:\r
- metadata.create_all(engine, checkfirst=True)\r
+ wait_for_metadata_ready(engine)\r
# limitations under the License.\r
\r
# from typing_extensions import Required\r
# limitations under the License.\r
\r
# from typing_extensions import Required\r
+from retry import retry\r
from sqlalchemy import (\r
Table,\r
MetaData,\r
from sqlalchemy import (\r
Table,\r
MetaData,\r
# Boolean,\r
# engine,\r
# event,\r
# Boolean,\r
# engine,\r
# event,\r
)\r
\r
from sqlalchemy.orm import mapper, relationship\r
)\r
\r
from sqlalchemy.orm import mapper, relationship\r
+@retry((exc.IntegrityError), tries=3, delay=2)\r
+def wait_for_metadata_ready(engine):\r
+ # wait for mapper ready\r
+ metadata.create_all(engine, checkfirst=True)\r
+ logger.info("metadata is ready")\r
+\r
+\r
def start_o2ims_mappers(engine=None):\r
logger.info("Starting O2 IMS mappers")\r
\r
def start_o2ims_mappers(engine=None):\r
logger.info("Starting O2 IMS mappers")\r
\r
mapper(confModel.Configuration, configuration)\r
\r
if engine is not None:\r
mapper(confModel.Configuration, configuration)\r
\r
if engine is not None:\r
- metadata.create_all(engine, checkfirst=True)\r
+ wait_for_metadata_ready(engine)\r