Skip to content
Snippets Groups Projects
Commit bfe25516 authored by carignani's avatar carignani
Browse files

Parametrized version in doc2tosca

parent acccb51e
No related branches found
No related tags found
No related merge requests found
VERSION = "0.0.1" VERSION = "0.0.2"
\ No newline at end of file
...@@ -16,6 +16,8 @@ BASE_FILENAME = "generated_etsi_nfv_sol001_{}_types.yaml" ...@@ -16,6 +16,8 @@ BASE_FILENAME = "generated_etsi_nfv_sol001_{}_types.yaml"
TOSCA_VERSION = "tosca_simple_yaml_1_2" TOSCA_VERSION = "tosca_simple_yaml_1_2"
SPEC_VERSION = "2.6.1" SPEC_VERSION = "2.6.1"
allowed_versions = ["2.6.1","2.7.1"]
MODEL_NAMES = ['vnfd', 'nsd', 'pnfd', 'common'] MODEL_NAMES = ['vnfd', 'nsd', 'pnfd', 'common']
HDR = '''tosca_definitions_version: {tosca_version} HDR = '''tosca_definitions_version: {tosca_version}
...@@ -141,36 +143,39 @@ def generate_tables_between(a_id, b_id, content, buf): ...@@ -141,36 +143,39 @@ def generate_tables_between(a_id, b_id, content, buf):
print(" Regex != 1 ") print(" Regex != 1 ")
return definitions_count return definitions_count
def dump_header(model_name, buf, imports=None): def dump_header(model_name, buf, spec_version=SPEC_VERSION, imports=None):
''' '''
Writes the header to the file for a specific model Writes the header to the file for a specific model
''' '''
buf.write(HDR.format( buf.write(HDR.format(
tosca_version=TOSCA_VERSION, tosca_version=TOSCA_VERSION,
model=model_name, model=model_name,
spec_version=SPEC_VERSION, spec_version=spec_version,
imports=imports)) imports=imports))
MODELS = {} MODELS = {}
for mn in MODEL_NAMES: def generate_templates(filename, spec_version=SPEC_VERSION):
MODELS[mn] = tosca_model_info(
mn,
'- https://forge.etsi.org/rep/nfv/SOL001/raw/v{}/etsi_nfv_sol001_common_types.yaml'.format(SPEC_VERSION)
)
def generate_templates(filename):
''' '''
Takes a filename or file object and loads the definition into the MODELS dictionary Takes a filename or file object and loads the definition into the MODELS dictionary
''' '''
if isinstance(filename, str): if isinstance(filename, str):
print("Opening " + filename) print("Opening " + filename)
for mn in MODEL_NAMES:
MODELS[mn] = tosca_model_info(
mn,
'- https://forge.etsi.org/rep/nfv/SOL001/raw/v{}/etsi_nfv_sol001_common_types.yaml'.format(spec_version)
)
sol_001 = docx.Document(filename) sol_001 = docx.Document(filename)
for m in MODELS: for m in MODELS:
dump_header(MODELS[m]['name'], MODELS[m]['buf'], MODELS[m]['imports']) dump_header(
MODELS[m]['name'],
MODELS[m]['buf'],
spec_version,
MODELS[m]['imports'])
p_id = 0 p_id = 0
...@@ -211,7 +216,6 @@ def print_to_files(prefix=None): ...@@ -211,7 +216,6 @@ def print_to_files(prefix=None):
Prefix is a path to a folder to work into Prefix is a path to a folder to work into
''' '''
for m in MODELS: for m in MODELS:
if prefix != None: if prefix != None:
MODELS[m]['fn'] = os.path.join(prefix, MODELS[m]['fn']) MODELS[m]['fn'] = os.path.join(prefix, MODELS[m]['fn'])
......
...@@ -74,9 +74,16 @@ For any other inquiry, contact <a href="mailto:cti_support@etsi.org">ETSI CTI</a ...@@ -74,9 +74,16 @@ For any other inquiry, contact <a href="mailto:cti_support@etsi.org">ETSI CTI</a
<center> <center>
<a href="doc2tosca-info">Details</a> <a href="doc2tosca-info">Details</a>
</center> </center>
<form action="doc2tosca" method="post" enctype="multipart/form-data"> <form action="doc2tosca" id="doc2tosca-form" name="doc2tosca-form" method="post" enctype="multipart/form-data">
Docx file:<br /> Docx file:<br />
<input type="file" name="file" /><br /><br /> <input type="file" name="file" /></br></br>
Version:
<select class="form-control form-control-sm" form="doc2tosca-form" name="doc-version">
{% for version in doc_allowed_versions %}
<option value="{{version}}">{{version}}</option>
{% endfor %}
</select>
<br /><br />
<center> <center>
<input type="submit" class="btn btn-primary" value="Upload" /> <input type="submit" class="btn btn-primary" value="Upload" />
</center> </center>
......
...@@ -20,10 +20,8 @@ class ReverseProxied(object): ...@@ -20,10 +20,8 @@ class ReverseProxied(object):
self.script_name = script_name self.script_name = script_name
self.scheme = scheme self.scheme = scheme
self.server = server self.server = server
print("Reverse Proxy set up")
def __call__(self, environ, start_response): def __call__(self, environ, start_response):
print("ReverseProxy called")
script_name = environ.get('HTTP_X_SCRIPT_NAME', '') or self.script_name script_name = environ.get('HTTP_X_SCRIPT_NAME', '') or self.script_name
if script_name: if script_name:
environ['SCRIPT_NAME'] = script_name environ['SCRIPT_NAME'] = script_name
...@@ -34,9 +32,6 @@ class ReverseProxied(object): ...@@ -34,9 +32,6 @@ class ReverseProxied(object):
if scheme: if scheme:
environ['wsgi.url_scheme'] = scheme environ['wsgi.url_scheme'] = scheme
server = environ.get('HTTP_X_FORWARDED_HOST', '') or self.server server = environ.get('HTTP_X_FORWARDED_HOST', '') or self.server
print('HTTP_X_FORWARDED_SERVER ' + environ.get('HTTP_X_FORWARDED_SERVER'))
print('HTTP_X_FORWARDED_FOR ' + environ.get('HTTP_X_FORWARDED_FOR'))
print('HTTP_X_FORWARDED_HOST ' + environ.get('HTTP_X_FORWARDED_HOST'))
if server: if server:
environ['HTTP_HOST'] = server environ['HTTP_HOST'] = server
return self.app(environ, start_response) return self.app(environ, start_response)
...@@ -68,7 +63,7 @@ def hello(): ...@@ -68,7 +63,7 @@ def hello():
''' '''
Render home page Render home page
''' '''
return render_template("./home.html", VERSION=config.VERSION) return render_template("./home.html", VERSION=config.VERSION, doc_allowed_versions=doc2tosca.allowed_versions)
@app.route("/doc2tosca-info") @app.route("/doc2tosca-info")
def doc2tosca_info(): def doc2tosca_info():
...@@ -158,6 +153,8 @@ def get_all_yaml_file_paths(directory): ...@@ -158,6 +153,8 @@ def get_all_yaml_file_paths(directory):
def after_request(response): def after_request(response):
if request.path != '/doc2tosca': if request.path != '/doc2tosca':
return response return response
if g.get('tmp_dir') == None:
return response
shutil.rmtree(g.tmp_dir, ignore_errors=True) shutil.rmtree(g.tmp_dir, ignore_errors=True)
print("Deleted {}\n\n".format(g.tmp_dir)) print("Deleted {}\n\n".format(g.tmp_dir))
return response return response
...@@ -168,14 +165,25 @@ def mk_doc2tosca(): ...@@ -168,14 +165,25 @@ def mk_doc2tosca():
zip_fn = "tosca_defs.zip" zip_fn = "tosca_defs.zip"
if 'file' not in request.files: if 'file' not in request.files:
flash('No file part') flash('No file uploaded')
return redirect(request.url) return redirect("/tosca-ie")
ufiles = request.files.getlist("file") ufiles = request.files.getlist("file")
try:
print(request.form)
doc_version = request.form.get('doc-version')
except:
flash("Something went wrong :/")
return redirect("/tosca-ie")
if doc_version not in doc2tosca.allowed_versions:
flash('Incorrect doc version selected')
return redirect("/tosca-ie")
sol001_file = ufiles[0] sol001_file = ufiles[0]
doc2tosca.generate_templates(sol001_file) doc2tosca.generate_templates(sol001_file, doc_version)
tmp_dir = tempfile.mkdtemp() tmp_dir = tempfile.mkdtemp()
print("TMP DIR: " + tmp_dir) print("TMP DIR: " + tmp_dir)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment