From c9b781bedc8bd714d3a27913329a3647de90df64 Mon Sep 17 00:00:00 2001
From: Michele Carignani <michele.carignani@etsi.org>
Date: Mon, 17 Jun 2019 14:41:45 +0200
Subject: [PATCH] select import root path

---
 src/doc2tosca.py        | 7 +++++--
 src/templates/home.html | 6 ++++++
 src/web_app.py          | 3 ++-
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/doc2tosca.py b/src/doc2tosca.py
index 1322b35..1190876 100644
--- a/src/doc2tosca.py
+++ b/src/doc2tosca.py
@@ -155,7 +155,7 @@ def dump_header(model_name, buf, spec_version=SPEC_VERSION, imports=None):
 
 MODELS = {}
 
-def generate_templates(filename, spec_version=SPEC_VERSION):
+def generate_templates(filename, spec_version=SPEC_VERSION, yaml_root_path='uri'):
     '''
     Takes a filename or file object and loads the definition into the MODELS dictionary
     '''
@@ -163,9 +163,12 @@ def generate_templates(filename, spec_version=SPEC_VERSION):
         print("Opening " + filename)
 
     for mn in MODEL_NAMES:
+        import_stmt = 'etsi_nfv_sol001_common_types.yaml'
+        if yaml_root_path != 'local':
+            import_stmt = 'https://forge.etsi.org/rep/nfv/SOL001/raw/{}/'.format(spec_version) + import_stmt
         MODELS[mn] = tosca_model_info(
             mn, 
-            '- https://forge.etsi.org/rep/nfv/SOL001/raw/{}/etsi_nfv_sol001_common_types.yaml'.format(spec_version)
+            '- ' + import_stmt
         )
 
     try:
diff --git a/src/templates/home.html b/src/templates/home.html
index 294e280..f66e6ec 100644
--- a/src/templates/home.html
+++ b/src/templates/home.html
@@ -86,6 +86,12 @@ For any other inquiry, contact <a href="mailto:cti_support@etsi.org">ETSI CTI</a
 			<br />
 			Custom version (overrides the selector):
 			<input type="text" name="custom-doc-version">
+			<br />
+			Root of import statements:
+			<select class="form-control form-control-sm" form="doc2tosca-form" name="yaml-root-path">
+				<option value="uri">Forge URL</option>
+				<option value="local">Local (no path)</option>
+			</select>
 			<br /><br />
 			<center>
 				<input type="submit" class="btn btn-primary" value="Upload" />
diff --git a/src/web_app.py b/src/web_app.py
index 60c993e..cfb0e25 100644
--- a/src/web_app.py
+++ b/src/web_app.py
@@ -174,6 +174,7 @@ def mk_doc2tosca():
         print(request.form)
         doc_version = request.form.get('doc-version')
         custom_doc_version = request.form.get('custom-doc-version')
+        yaml_root_path = request.form.get('yaml-root-path')
     except:
         flash("Something went wrong :/")
         return redirect("/tosca-ie")
@@ -187,7 +188,7 @@ def mk_doc2tosca():
     if custom_doc_version != "":
         doc_version = custom_doc_version
     try:
-        doc2tosca.generate_templates(sol001_file, doc_version)
+        doc2tosca.generate_templates(sol001_file, doc_version, yaml_root_path)
     except ValueError as e:
         flash(str(e))
         return redirect("/tosca-ie")
-- 
GitLab