Package validation

Registered by Steve McLellan on 2014-04-29

Early error detection simplifies application development, troubleshooting and support. Currently Murano does not provide mechanisms to perform validation of the Murano application package before running deployment process. Thus Murano cannot prevent uploading of invalid package and developer cannot verify that application package contains valid structure and code before deployment process. Many problems with application packages (such as invalid package structure, errors in code, typos, etc.) can be detected and solved by using static validation tool.

A new toolkit for validation MuranoPL language and Murano application packages should be introduced. Key points:

 - The toolkit SHOULD be implemented as a standalone Python package (library) with CLI interface.
 - Validation library will be used to validate Murano packages during loading process.
 - CLI tool can be used by application developer to perform early checks before package is assembled.
 - Toolkit should be extensible with custom validators. It will provide API for extension purposes.
 - Toolkit should be configurable to run list of specified inspections or to ignore specified inspections.

Toolkit should implement the following validation suites:
 - Manifest validation
 - Classes validation
 - UI definition validation

Other validators can be implemented later as part of this tool or as external packages

Blueprint information

Kirill Zaitsev
Sergey Slipushenko
Sergey Slipushenko
Series goal:
Good progress
Milestone target:
Started by
Kirill Zaitsev on 2016-08-22

Related branches



Gerrit topic:,topic:358582,n,z

Addressed by:
    Added core and CLI

Gerrit topic:,topic:bp/package-validation,n,z

Addressed by:
    Code Structure checker added with tests

Addressed by:
    Adding MuranoPL validator

Addressed by:
    Adding UI Validator

Addressed by:
    Adding ManifestValidator

Addressed by:
    Bunch of fixes for code_structure, base, manifest:

Addressed by:
    Report yaml parsing errors instead of silent

Addressed by:
    Accept null description in manifest

Addressed by:
    Fix error report in version

Addressed by:
    Improve package version validation

Addressed by:
    Improving tests coverage

Addressed by:
    Improve logging system

Addressed by:
    Add i18n support

Addressed by:
    [WIP] Added errors registrraton procedure

Addressed by:
    Added docs autogeneration for error list

Addressed by:
    Added functional test base

Addressed by:
    Bunch of bugfixes


Work Items

This blueprint contains Public information 
Everyone can see this information.


No subscribers.