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