Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


3 TOSCA Parsers


Table of Contents

There are three TOSCA parsers submited into modeling project, their API are listed below:


1. 

...

NFV Tosca Parser API: (Python Lib + CLI + REST API)      

         Implementation of nfv-toscaparser derived from openstack tosca parser is based on the following OASIS specification:

             TOSCA Simple Profile YAML 1.2 Referecne  http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.2/TOSCA-Simple-Profile-YAML-v1.2.html

             TOSCA Simple Profile YAML NFV 1.0 Referecne  http://docs.oasis-open.org/tosca/tosca-nfv/v1.0/tosca-nfv-v1.0

...

.html

  • 1)  CLI
    •  Installation nfv-toscaparser

                      Firstly, uninstall the previous verson of toscaparser  

...

                           pip install --pre -U nfv-toscaparser 

...

    • Use cli, which is used to validate tosca simple based service template. It can be used as:

        tosca-parser --template-file=<path to the YAML template>  [--nrpv]  [--debug]

...

     --debug debug mode for print more details other than raise exceptions when errors happen  2) use

    • The parse output will display in STDOUT, including nodes name, inputs and outputs

  • 2)  Library(Python)
    •    Installation nfv-toscaparser, same as CLI;
    •    Use api, which is used to parse and get the result of service template. it can be used as

   ToscaTemplate  tosca=ToscaTemplate(path=None, parsed_params=None, a_file=True, yaml_dict_tpl=None, 

...

                                          no_required_paras_valid=False, debug=False )


    •   Access members(including method or data) in tosca.


  • 3) REST API
    •    Installation nfv-toscaparser microservice, and run it;
    •    Use Restfual API
      •  List template versions
        • PATH: /v1/template_versions
        • METHOD:  GET
        • DecriptionLists all supported tosca template versions.
        • Response Codes

          Success

          CodeReason
          200 - OKRequest was successful.

          Error

          CodeReason
          400 - Bad RequestSome content in the request was invalid.
          404 - Not FoundThe requested resource could not be found.
          500 - Internal Server ErrorSomething went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

          Request Parameters

          NameTypeDescription
          No

          Response Parameters

          NameTypeDescription
          template_versionsarrayA list of tosca template version object each describes the type name and version information for a template version.
      • Validates a service template
        • PATH: /v1/validate
        • METHOD:  POST
        • Decription: Validate a service template and return the result

        • Response Codes

          Success

          CodeReason
          200 - OKRequest was successful.

          Error

          CodeReason
          400 - Bad RequestSome content in the request was invalid.
          500 - Internal Server ErrorSomething went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

          Request Parameters

          NameTypeDescription
          environment (Optional)objectA JSON environment for the template service.
          environment_files (Optional)objectAn ordered list of names for environment files found in the files dict.
          files (Optional)object

          Supplies the contents of files referenced in the template or the environment.

          The value is a JSON object, where each key is a relative or absolute URI which serves as the name of a file, and the associated value provides the contents of the file. The following code shows the general structure of this parameter.

          { ...
              "files": {
                  "fileA.yaml": "Contents of the file",
                  "file:///usr/fileB.template": "Contents of the file",
                  "http://example.com/fileC.template": "Contents of the file"
              }
          ...
          }
          ignore_errors (Optional)stringList of comma-separated error codes to ignore.
          show_nested (Optional)booleanSet true to include nested template service in the list.
          template (Optional)object

          The service template on which to perform the operation.

          This parameter is always provided as a string in the JSON request body. The content of the string is a JSON- or YAML-formatted service template. For example:

          "template": {
              "tosca_definitions_version": "tosca_simple_yaml_1_0",
              ...
          }
          

          This parameter is required only when you omit the template_url parameter. If you specify both parameters, this value overrides thetemplate_url parameter value.

          template_url (Optional)stringA URI to the location containing the service template on which to perform the operation. See the description of the template parameter for information about the expected template content located at the URI. This parameter is only required when you omit the template parameter. If you specify both parameters, this parameter is ignored.

          Request Example

          {
              "template_url": "/PATH_TO_TOSCA_TEMPLATES/HelloWord_Instance.csar"
          }

          Response Parameters

          NameTypeDescription
          DescriptionstringThe description specified in the template.
          Error Information (Optional)stringError information
      • Parse a service template
        • PATH: /v1/parse
        • METHOD:  POST
        • Decription: Parse a service template and return the parsed info
        • Response Code: same as "Validates a service template"
        • Request Parameters: same as "Validates a service template"
        • Response Parameters
        NameTypeDescription
        DescriptionstringThe description specified in the template.
        Input parametersobjectInput parameter list.
        Service TemplateobjectService template body
        Output parametersobjectInput parameter list.
        Error Information (Optional)stringError information

2. Apache ARIA-TOSCA(Python + CLI + REST API):

...