Parser User Guide

Parser is an open source project and licensed under Apache 2. Parser will help to provide a tooling mechanism, by parsing Telecom operators VNF descriptors (YANG templates) into TOSCA templates and then further translate TOSCA templates into certain common templates, which could be used in IaaS orchestration projects like OpenStack Heat(the template file is HOT, which stands for Heat Orchestrator Template), this document is about simple TOSCA to HOT, and the example is a vRNC (virtual Radio Network Controller) definition with format translated from simple TOSCA(parser’s input file format) to HOT(parser’s output file format), which can be deployed by heat directly.

Contents:

Installation

Please follow the below installation steps to install parser.

Step 1: Clone the parser project.

git clone https://gerrit.opnfv.org/gerrit/parser

Step 2: Install the heat-translator sub project.

# uninstall pre-installed tosca-parser
pip uninstall -y heat-translator

# change directory to heat-translator
cd parser/tosca2heat/heat-translator

# install requirements
pip install -r requirements.txt

# install heat-translator
python setup.py install

Step 3: Install the tosca-parser sub project.

  # uninstall pre-installed tosca-parser
  pip uninstall -y tosca-parser

  # change directory to tosca-parser
  cd parser/tosca2heat/tosca-parser

  # install requirements
  pip install -r requirements.txt

  # install tosca-parser
  python setup.py install


**Notes** It must uninstall pre-installed tosca-parser and heat-translator before install the two
components, and install heat-translator before installing tosca-parser, which is sure to use the
OPNFV version of tosca-parser and heat-translator other than openstack's components.

Execution

Step 1: Change directory to where the tosca yaml files are present, example is below with vRNC definiton.

cd parser/tosca2heat/tosca-parser/toscaparser/extensions/nfv/tests/data/vRNC/Definitions

Step 2: Run the python command heat-translator with the TOSCA yaml file as an input option.

heat-translator --template-file=<input file> --template-type=tosca
                --outpurt-file=<output hot file>

Example:

heat-translator --template-file=vRNC.yaml \
    --template-type=tosca --output-file=vRNC_hot.yaml

Notes: heat-translator will call class of ToscaTemplate in tosca-parser firstly to validate and parse input yaml file, then tranlate the file into hot file, if you only want to validate or check the input file and don’t want to translate, please use tosaca-parser as following:

tosca-parser --template-file=<input yaml file>

Example:

tosca-parser --template-file=vRNC.yaml

Test use tox

  1. run tox in tosca-parser sub project
# change directory to tosca-parser
cd parser/tosca2heat/tosca-parser

# run with pep8
tox -epep8

# run unit test
tox -epy27

or

# change directory to tosca-parser
cd parser/tosca2heat/tosca-parser

# run tox
tox
  1. run tox in heat-translator sub project
# change directory to heat-translator
cd parser/tosca2heat/heat-translator

# run with pep8
tox -epep8

# run unit test
tox -epy27
tox -epy34

or

# change directory to heat-translator
cd parser/tosca2heat/heat-translator

# run tox
tox