From ae577f8d3f457214459100388dbef726fc99b523 Mon Sep 17 00:00:00 2001 From: Andrea Franchini <hello@andreafranchini.com> Date: Fri, 3 Mar 2023 15:36:53 +0100 Subject: [PATCH] Add env DOML_VERSION to force version in Webserver --- mc_openapi/__main__.py | 2 +- mc_openapi/doml_mc/xmi_parser/doml_model.py | 3 ++- mc_openapi/handlers.py | 11 +++++++++-- tests/doml/v2.1/nginx-aws-ec2.domlx | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/mc_openapi/__main__.py b/mc_openapi/__main__.py index 3ce0690..cfcfda5 100644 --- a/mc_openapi/__main__.py +++ b/mc_openapi/__main__.py @@ -55,7 +55,7 @@ else: doml_ver = None if args.doml_version is not None: try: - doml_ver = DOMLVersion[args.doml_version] + doml_ver = DOMLVersion.get(args.doml_version) except: # Suggest valid DOML versions print(f"Unknown DOML version '{args.doml_version}'") diff --git a/mc_openapi/doml_mc/xmi_parser/doml_model.py b/mc_openapi/doml_mc/xmi_parser/doml_model.py index 0659bf6..9841a6e 100644 --- a/mc_openapi/doml_mc/xmi_parser/doml_model.py +++ b/mc_openapi/doml_mc/xmi_parser/doml_model.py @@ -73,7 +73,8 @@ def parse_doml_model(raw_model: bytes, doml_version: Optional[DOMLVersion]) -> T if doml_version is None: doml_versions = [x for x in DOMLVersion] - print(doml_versions) + # Use the most recent DOML version first + doml_versions.reverse() def get_model(raw_model, doml_version): try: diff --git a/mc_openapi/handlers.py b/mc_openapi/handlers.py index 99b3d85..e4e82a2 100644 --- a/mc_openapi/handlers.py +++ b/mc_openapi/handlers.py @@ -1,4 +1,5 @@ import datetime +import os from mc_openapi.doml_mc.domlr_parser.parser import DOMLRTransformer, Parser from mc_openapi.doml_mc.imc import RequirementStore @@ -18,8 +19,14 @@ def make_error(user_msg, debug_msg=None): def post(body): doml_xmi = body try: - - dmc = ModelChecker(doml_xmi) + doml_version = None + try: + doml_version: str = os.environ["DOML_VERSION"] + doml_version = DOMLVersion.get(doml_version) + print("Setting DOML version from DOML_VERSION") + except: + pass + dmc = ModelChecker(doml_xmi, doml_version) user_req_store = None user_req_str_consts = [] diff --git a/tests/doml/v2.1/nginx-aws-ec2.domlx b/tests/doml/v2.1/nginx-aws-ec2.domlx index 9bf3980..67ae86d 100644 --- a/tests/doml/v2.1/nginx-aws-ec2.domlx +++ b/tests/doml/v2.1/nginx-aws-ec2.domlx @@ -28,8 +28,8 @@ <cidr>0.0.0.0/0</cidr> </rules> </securityGroups> - <networks name="vpc" protocol="tcp/ip" addressRange="/24" connectedIfaces="//@infrastructure/@groups.0/@machineDefinition/@ifaces.0"> - <subnets name="vpc_subnet" protocol="tcp/ip" addressRange="/24"/> + <networks name="vpc" protocol="tcp/ip" addressRange="0.0.0.0/24" connectedIfaces="//@infrastructure/@groups.0/@machineDefinition/@ifaces.0"> + <subnets name="vpc_subnet" protocol="tcp/ip" addressRange="0.0.0.0/24"/> </networks> </infrastructure> <concretizations name="con_infra"> -- GitLab