Concourse: validate params for resource_type definition

This commit is contained in:
Kris De Volder
2019-11-13 15:53:11 -08:00
parent 1a267fa0a2
commit d1d90feb8c
4 changed files with 126 additions and 85 deletions

View File

@@ -246,6 +246,7 @@ public class PipelineYmlSchema implements YamlSchema {
addProp(t_image_resource, "type", t_resource_type_name).isRequired(true);
t_image_resource.addProperty(resourceProperties.get("source"));
addProp(t_image_resource, "params", t_params);
//TODO: make ImageResourceParams dynamic based on resource type. Somewhat like below, but that code isn't exactly
// right (yet :-)
// addProp(t_image_resource, "params", f.contextAware("ImageResourceParams", (dc) ->
@@ -433,7 +434,9 @@ public class PipelineYmlSchema implements YamlSchema {
addProp(resourceType, "type", t_resource_type_name).isRequired(true);
addProp(resourceType, "source", resourceSource);
addProp(resourceType, "privileged", t_boolean);
addProp(resourceType, "params", t_params);
addProp(resourceType, "params", f.contextAware("GetParams", (dc) ->
resourceTypes.getInParamsType( getParentPropertyValue("type", models, dc))
));
addProp(resourceType, "check_every", t_duration);
addProp(resourceType, "tags", t_strings);
addProp(resourceType, "unique_version_history", t_boolean);

View File

@@ -1781,7 +1781,8 @@ public class ConcourseEditorTest {
" check_every: bad-duration\n" +
" privileged: is-priviliged\n" +
" params:\n" +
" foo: bar\n"+
" foo_param: bar\n"+
" format: rootfs\n" +
" tags: tags-list\n" +
" unique_version_history: is-unique-hist\n" +
" source:\n" +
@@ -1790,6 +1791,7 @@ public class ConcourseEditorTest {
editor.assertProblems(
"bad-duration|Duration",
"is-priviliged|boolean",
"foo_param|Unknown",
"tags-list|Sequence",
"is-unique-hist|boolean"
);