X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fadapter%2Form.py;h=43b48b001b6ebafeffdfb92ffbebcbfd1d91e469;hb=7b80a6162b616d1cd33d3af4367abfb8d56622d8;hp=6c4a67851e46d24849779cb7563ebeb91de99de4;hpb=955e499773dcfd80e2b5497d3cb1b38c9ae294eb;p=pti%2Fo2.git diff --git a/o2ims/adapter/orm.py b/o2ims/adapter/orm.py index 6c4a678..43b48b0 100644 --- a/o2ims/adapter/orm.py +++ b/o2ims/adapter/orm.py @@ -13,6 +13,7 @@ # limitations under the License. # from typing_extensions import Required +from retry import retry from sqlalchemy import ( Table, MetaData, @@ -27,6 +28,7 @@ from sqlalchemy import ( # Boolean, # engine, # event, + exc, ) from sqlalchemy.orm import mapper, relationship @@ -161,6 +163,13 @@ configuration = Table( ) +@retry((exc.IntegrityError), tries=3, delay=2) +def wait_for_metadata_ready(engine): + # wait for mapper ready + metadata.create_all(engine, checkfirst=True) + logger.info("metadata is ready") + + def start_o2ims_mappers(engine=None): logger.info("Starting O2 IMS mappers") @@ -187,4 +196,4 @@ def start_o2ims_mappers(engine=None): mapper(confModel.Configuration, configuration) if engine is not None: - metadata.create_all(engine, checkfirst=True) + wait_for_metadata_ready(engine)