X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2dms%2Fadapter%2Form.py;h=3c1709c7e950d5ea4ac1ed5f014b8c4e47909a58;hb=f3aaeb6d1dcf62b7ebb0554aa2004e8f46f8a72a;hp=05821dc24689e3db6c53edd9b125044f15807974;hpb=c3ab2dcb442a0e66b7a621c59c6c7a679c26cee9;p=pti%2Fo2.git diff --git a/o2dms/adapter/orm.py b/o2dms/adapter/orm.py index 05821dc..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,16 +48,63 @@ 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)) ) +nfDeployment = Table( + "nfDeployment", + metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + Column("hash", String(255)), + Column("version_number", Integer), + + Column("id", String(255), primary_key=True), + Column("deploymentManagerId", String(255)), + Column("name", String(255)), + Column("description", String(255)), + Column("descriptorId", String(255)), + Column("parentDeploymentId", String(255)), + Column("status", Integer) +) + +nfOCloudVResource = Table( + "nfOcloudVRes", + metadata, + Column("updatetime", DateTime), + Column("createtime", DateTime), + Column("hash", String(255)), + Column("version_number", Integer), + + Column("id", String(255), primary_key=True), + Column("deploymentManagerId", String(255)), + Column("name", String(255)), + Column("description", String(255)), + Column("descriptorId", String(255)), + Column("vresourceType", String(255)), + Column("status", Integer), + Column("metadata", String(2048)), + Column("nfDeploymentId", String(255)) +) + + +@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") mapper(dmsModel.NfDeploymentDesc, nfDeploymentDesc) + mapper(dmsModel.NfDeployment, nfDeployment) + mapper(dmsModel.NfOCloudVResource, nfOCloudVResource) if engine is not None: - metadata.create_all(engine) + wait_for_metadata_ready(engine)