diff --git a/src/doc2tosca.py b/src/doc2tosca.py index b05c15fa3ed4b569fbb7320285ec14753978d7c7..6ea05a7474f2b63df6f15980afb0ebff47bc17a4 100644 --- a/src/doc2tosca.py +++ b/src/doc2tosca.py @@ -30,7 +30,9 @@ metadata: template_name: etsi_nfv_sol001_{model}_types template_author: ETSI_NFV template_version: {spec_version} +''' +IMPORTS = ''' imports: {imports} @@ -113,7 +115,7 @@ def is_tosca_def(table): match_definition_incipit(txt) -def tosca_model_info(name, version, imports): +def tosca_model_info(name, version, imports=None): ''' Returns a dictionary to hold information on the model ''' @@ -291,25 +293,47 @@ def generate_header( buf.write(HDR.format( tosca_version=tosca_version, model=model_name, - spec_version=spec_version, - imports=imports)) + spec_version=spec_version + )) + if imports is not None: + buf.write(IMPORTS.format( + imports=imports + )) def init_models(yaml_root, spec_ver, tosc_ver): for model in MODEL_NAMES: - import_stmt = 'etsi_nfv_sol001_common_types.yaml' + import_common_stmt = 'etsi_nfv_sol001_common_types.yaml' + import_vnfd_stmt = 'etsi_nfv_sol001_vnfd_types.yaml' + import_pnfd_stmt = 'etsi_nfv_sol001_pnfd_types.yaml' if yaml_root != 'local': - import_stmt = \ + import_common_stmt = \ 'https://forge.etsi.org/rep/nfv/SOL001/raw/{}/{}'.format( - spec_ver, import_stmt + spec_ver, import_common_stmt ) - - MODELS[model] = tosca_model_info( - model, - spec_ver, - '- ' + import_stmt - ) + import_vnfd_stmt = \ + 'https://forge.etsi.org/rep/nfv/SOL001/raw/{}/{}'.format( + spec_ver, import_vnfd_stmt + ) + import_pnfd_stmt = \ + 'https://forge.etsi.org/rep/nfv/SOL001/raw/{}/{}'.format( + spec_ver, import_pnfd_stmt + ) + imports = '- ' + import_common_stmt + if model != 'common': + if model == 'nsd': + imports = imports + '\n' + ' - ' + import_vnfd_stmt + '\n' + ' - ' + import_pnfd_stmt + MODELS[model] = tosca_model_info( + model, + spec_ver, + imports + ) + else: + MODELS[model] = tosca_model_info( + model, + spec_ver + ) for mod in MODELS: generate_header(