# 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
Column,\r
Integer,\r
String,\r
+ Text,\r
# Date,\r
DateTime,\r
# ForeignKey,\r
# engine,\r
# event,\r
+ exc\r
)\r
\r
from sqlalchemy.orm import mapper\r
Column("deploymentManagerId", String(255)),\r
Column("name", String(255)),\r
Column("description", String(255)),\r
- Column("inputParams", String(255)),\r
+ Column("inputParams", Text()),\r
Column("outputParams", String(255)),\r
- Column("artifactUrl", String(255)),\r
+ Column("artifactRepoUrl", String(255)),\r
+ Column("artifactName", String(255)),\r
# Column("extensions", String(1024))\r
)\r
\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_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
- metadata.create_all(engine)\r
+ wait_for_metadata_ready(engine)\r