Simplify contraints between release attributes
This commit is contained in:
@@ -219,16 +219,11 @@ public class BoshDeploymentManifestSchema implements YamlSchema {
|
||||
|
||||
YBeanType t_release = f.ybean("Release");
|
||||
addProp(t_release, "name", t_release_name_def).isPrimary(true);
|
||||
addProp(t_release, "version", t_release_version);
|
||||
//TODO: the checking here is just 'my best guess'. Unclarity remains:
|
||||
// See: https://github.com/cloudfoundry/docs-bosh/issues/330
|
||||
addProp(t_release, "version", t_release_version).isRequired(true);
|
||||
addProp(t_release, "url", t_url);
|
||||
addProp(t_release, "sha1", t_ne_string);
|
||||
addProp(v2Schema, "releases", f.yseq(t_release)).isRequired(true);
|
||||
t_release.require(Constraints.requireAtLeastOneOf("url", "version"));
|
||||
// ^^^^^^^ allthough docs seem to imply you shouldn't
|
||||
// define both url and version it seems that bosh tolerates it.
|
||||
t_release.require(BoshConstraints.SHA1_REQUIRED_FOR_HTTP_URL);
|
||||
addProp(v2Schema, "releases", f.yseq(t_release)).isRequired(true);
|
||||
|
||||
YBeanType t_stemcell = f.ybean("Stemcell");
|
||||
|
||||
|
||||
@@ -294,12 +294,15 @@ public class BoshEditorTest {
|
||||
"- name: some-release\n" +
|
||||
" url: https://my.releases.com/funky.tar.gz\n" +
|
||||
"- name: other-relase\n" +
|
||||
" version: other-version\n" +
|
||||
" url: file:///root/releases/a-nice-file.tar.gz\n" +
|
||||
"- name: bad-url\n" +
|
||||
" version: more-version\n" +
|
||||
" url: proto://something.com\n" +
|
||||
"#x"
|
||||
);
|
||||
editor.assertProblems(
|
||||
"^-^ name: some-release|'version' is required",
|
||||
"url|'sha1' is recommended when the 'url' is http(s)",
|
||||
"proto|Url scheme must be one of [http, https, file]",
|
||||
"x|are required"
|
||||
|
||||
Reference in New Issue
Block a user