X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2dms%2Fadapter%2Form.py;h=3c1709c7e950d5ea4ac1ed5f014b8c4e47909a58;hb=f3aaeb6d1dcf62b7ebb0554aa2004e8f46f8a72a;hp=1c2c93aba79e85deedff9ba9fc023f4f9c7258e1;hpb=7fb3d02a3744ecb368b0531f16175034b987d42f;p=pti%2Fo2.git diff --git a/o2dms/adapter/orm.py b/o2dms/adapter/orm.py index 1c2c93a..3c1709c 100644 --- a/o2dms/adapter/orm.py +++ b/o2dms/adapter/orm.py @@ -12,17 +12,20 @@ # See the License for the specific language governing permissions and # limitations under the License. +from retry import retry from sqlalchemy import ( Table, MetaData, Column, Integer, String, + Text, # Date, DateTime, # ForeignKey, # engine, # event, + exc ) from sqlalchemy.orm import mapper @@ -45,8 +48,10 @@ nfDeploymentDesc = Table( Column("deploymentManagerId", String(255)), Column("name", String(255)), Column("description", String(255)), - Column("inputParams", String(255)), + Column("inputParams", Text()), Column("outputParams", String(255)), + Column("artifactRepoUrl", String(255)), + Column("artifactName", String(255)), # Column("extensions", String(1024)) ) @@ -87,6 +92,13 @@ nfOCloudVResource = 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_o2dms_mappers(engine=None): logger.info("Starting O2 DMS mappers") @@ -95,4 +107,4 @@ def start_o2dms_mappers(engine=None): mapper(dmsModel.NfOCloudVResource, nfOCloudVResource) if engine is not None: - metadata.create_all(engine) + wait_for_metadata_ready(engine)