sonata-nfv / tng-schema

5GTANGO descriptor, record, and package specifications and schemas (data models)
http://www.5gtango.eu
Apache License 2.0
4 stars 15 forks source link
5g 5gtango 5gtango-schemas datamodel json-schema nfv sdn specification yaml-files

Build Status Join the chat at https://gitter.im/sonata-nfv/Lobby

tng-schema

The tng-schema repository contains the schema files for the various descriptors used by 5GTANGO as well as some examples and tests. The schema files in this repository serve as ground truth for the whole 5GTANGO project. Thus, every tool and sub-project should be able to parse and handle the latest versions of these files (or - once available - tagged versions in corresponding branches).

The 5GTANGO schemas are a fork of the SONATA NFV schemas which have been developed in the 5GPPP project SONATA (http://sonata-nfv.eu).

The schema files are written in JSON-Schema Draft-04.

Documentation

The documentation can be found in the wiki, e.g., linking to the 5GTANGO Package Specification (latest).

Dependencies

The schemas and descriptors are based on JSON-Schema Draft-04.

The validation tests of descriptors against their schemas depend on a number of Python packages that are listed and can be installed through setup.py.

Development

To contribute to the development of the 5GTANGO schema files, you may use the very same development workflow as for any other 5GTANGO Github project. That is, you have to fork the repository and create pull requests. Moreover, all discussions regarding the 5GTANGO schemas take place on GitHub, and NOT on the wiki.

Contributing

You may contribute to the schema files similar to other 5GTANGO (sub-) projects, i.e. by creating pull requests. However, since changes in the schema file may affect several other tools and projects, the pull requests might be discussed on the mailing list before it is merged to the master branch.

CI Integration

The repository is integrated with Travis CI. Thus, every pull request is checked automatically. The Travis job validates all the JSON and YAML files in the repository to be a valid JSON/YAML format. Moreover, Travis executes all files named 'test_.sh' that reside in /test/ directories automatically. Thus, it is quite easy to add new tests. Just write a corresponding bash script. Tests are considered successful when they return with exit code 0, and to be a failure otherwise.

Run tests manually

You can also run the test manually on your local machine. To do so, you need to install the validation tool located in the tools folder of this repository:

cd tools/validate/
sudo python setup.py install

Once you did this you can trigger the tests like this (in the root of this repository):

test.sh

Useful Tools and Links

There are some useful tools that support working the JSON and YAML files.

License

The 5GTANGO schemata and descriptors are published under Apache 2.0 license. Please see the LICENSE file for more details.


Lead Developers

The following lead developers are responsible for this repository and have admin rights. They can, for example, merge pull requests.

Feedback-Chanel