# 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
# Boolean,\r
# engine,\r
# event,\r
+ exc,\r
)\r
\r
from sqlalchemy.orm import mapper, relationship\r
)\r
\r
\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
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