Parser User Guide¶
Parser is an open source project and licensed under Apache 2. Parser will help to provide a tooling mechanism, by parsing and then further translating Telecom operators deployment descriptors 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 contains installation guide , execution guide as well as testing guide for Parser’s three submodules: tosca2heat, yang2tosca and policy2tosca.
Contents:
Parser tosca2heat Installation¶
Please follow the below installation steps to install tosca2heat submodule in 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.
Parser tosca2heat 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
Parser tosca2heat References¶
Parser yang2tosca Execution¶
Step 1: Change directory to where the scripts are present.
cd parser/yang2tosca
- Step 2: Copy the YANG file which needs to be converted into TOSCA to
- current (parser/yang2tosca) folder.
Step 3: Run the python script “parser.py” with the YANG file as an input option.
python parser.py -n "YANG filename"
Example:
python parser.py -n example.yaml
- Step 4: Verify the TOSCA YAMl which file has been created with the same name
- as the YANG file with a “_tosca” suffix.
cat "YANG filename_tosca.yaml"
Example:
cat example_tosca.yaml
Parser policy2tosca Execution¶
Step 1: To see a list of commands available.
policy2tosca --help
Step 2: To see help for an individual command, include the command name on the command line
policy2tosca help <service>
Step 3: To inject/remove policy types/policy definitions provide the TOSCA file as input to policy2tosca command line.
policy2tosca <service> [arguments]
Example:
policy2tosca add-definition --policy_name rule2 --policy_type tosca.policies.Placement.Geolocation
–description “test description” –properties region:us-north-1,region:us-north-2,min_inst:2 –targets VNF2,VNF4 –metadata “map of strings” –triggers “1,2,3,4” –source example.yaml
Step 4: Verify the TOSCA YAMl updated with the injection/removal executed.
cat "<source tosca file>"
Example:
cat example_tosca.yaml
Parser tosca2heat test usage¶
- 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
- 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