This is an automated email from the ASF dual-hosted git repository. not-in-ldap pushed a commit to branch validation in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit fbd3a02a5579a5f40baea6c7e2baf63bf9d850ea Author: Tristan Maat <[email protected]> AuthorDate: Thu Sep 7 11:04:09 2017 +0100 project.py: Add project config node validations --- buildstream/project.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/buildstream/project.py b/buildstream/project.py index fb91d30..442aaeb 100644 --- a/buildstream/project.py +++ b/buildstream/project.py @@ -142,6 +142,13 @@ class Project(): # Load builtin default projectfile = os.path.join(self.directory, "project.conf") config = _yaml.load(_site.default_project_config) + _yaml.validate_node(config, [ + 'required-versions', + 'element-path', 'variables', + 'environment', 'environment-nocache', + 'split-rules', 'elements', 'plugins', + 'aliases', 'name' + ]) # Special variables which have a computed default value must # be processed here before compositing any overrides @@ -157,6 +164,13 @@ class Project(): # Load project local config and override the builtin project_conf = _yaml.load(projectfile) + _yaml.validate_node(project_conf, [ + 'required-versions', + 'element-path', 'variables', + 'environment', 'environment-nocache', + 'split-rules', 'elements', 'plugins', + 'aliases', 'name' + ]) _yaml.composite(config, project_conf, typesafe=True) # Resolve arches keyword, project may have arch conditionals @@ -233,6 +247,7 @@ class Project(): # Version requirements versions = _yaml.node_get(self._unresolved_config, Mapping, 'required-versions') + _yaml.validate_node(versions, ['project', 'elements', 'sources']) # Assert project version first format_version = _yaml.node_get(versions, int, 'project') @@ -259,6 +274,7 @@ class Project(): # Load the plugin paths plugins = _yaml.node_get(self._unresolved_config, Mapping, 'plugins', default_value={}) + _yaml.validate_node(plugins, ['elements', 'sources']) self._plugin_source_paths = [os.path.join(self.directory, path) for path in self._extract_plugin_paths(plugins, 'sources')] self._plugin_element_paths = [os.path.join(self.directory, path)
