Skip to content
Snippets Groups Projects
Unverified Commit b341fea9 authored by Andrea Franchini's avatar Andrea Franchini
Browse files

fix dockerfile launch cmd

parent 33f55608
Branches
No related tags found
No related merge requests found
...@@ -12,4 +12,4 @@ WORKDIR /opt/mc_openapi ...@@ -12,4 +12,4 @@ WORKDIR /opt/mc_openapi
ENV UVICORN_PORT=8080 \ ENV UVICORN_PORT=8080 \
UVICORN_HOST=0.0.0.0 UVICORN_HOST=0.0.0.0
CMD ["uvicorn", "--interface", "wsgi", "mc_openapi.app_config:app"] CMD ["uvicorn", "--interface", "wsgi", "mc_openapi.fastapi:app"]
import connexion
from flask import render_template
app = connexion.App(__name__, specification_dir='openapi/')
app.add_api('model_checker.yaml')
@app.route("/")
def home():
return render_template('home.html')
application = app.app
import datetime
import logging
import os
from flask import render_template
from mc_openapi.doml_mc.intermediate_model.metamodel import DOMLVersion
from mc_openapi.doml_mc import verify_model, init_model, verify_csp_compatibility
from .doml_mc import MCResult
def make_error(user_msg, debug_msg=None):
result = {"message": user_msg, "timestamp": datetime.datetime.now()}
if debug_msg is not None:
result["debug_message"] = debug_msg
logging.error(debug_msg)
return result
def modelcheck(body, version=None):
return mc(body, version)
def modelcheck_html(body, version=None):
return mc(body, version, isHtml=True)
def mc(body, version, isHtml = False):
doml_xmi = body
doml_version_str: str = None
doml_version: DOMLVersion = None
try:
# First try to infer DOML version from ENV, then query params
doml_version_str = os.environ.get("DOML_VERSION") or version
if doml_version_str:
doml_version = DOMLVersion.get(doml_version_str)
logging.info(f"Forcing DOML {doml_version.value}")
dmc = init_model(doml_xmi, doml_version)
res = verify_model(dmc)
res['doml_version'] = dmc.doml_version.value
res['result'] = res['result'].name
if isHtml:
res |= res.get('csp', {})
return render_template('mc.html.jinja', **res).replace('\n', '')
else:
return res
except Exception as e:
return make_error("The supplied DOMLX model is malformed or its DOML version is unsupported.", debug_msg=str(e)), 400
def csp(body, version=None):
doml_xmi = body
doml_version_str: str = None
doml_version: DOMLVersion = None
try:
# First try to infer DOML version from ENV, then query params
doml_version_str = os.environ.get("DOML_VERSION") or version
if doml_version_str:
doml_version = DOMLVersion.get(doml_version_str)
logging.info(f"Forcing DOML {doml_version.value}")
dmc = init_model(doml_xmi, doml_version)
return verify_csp_compatibility(dmc)
except Exception as e:
return make_error("The supplied DOMLX model is malformed or its DOML version is unsupported.", debug_msg=str(e)), 400
def csp_html(body, version=None):
ret = csp(body, version)
return render_template('csp.html.jinja', **ret).replace('\n', '')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment