From 51954fe3063ac9116ea8e3579a15172eb2f6fcca Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Fri, 28 Jul 2017 16:06:11 -0700 Subject: [PATCH] Simplify contraints between release attributes --- .../ide/vscode/bosh/BoshDeploymentManifestSchema.java | 9 ++------- .../springframework/ide/vscode/bosh/BoshEditorTest.java | 3 +++ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/headless-services/bosh-language-server/src/main/java/org/springframework/ide/vscode/bosh/BoshDeploymentManifestSchema.java b/headless-services/bosh-language-server/src/main/java/org/springframework/ide/vscode/bosh/BoshDeploymentManifestSchema.java index c75ec38aa..81e47cb14 100644 --- a/headless-services/bosh-language-server/src/main/java/org/springframework/ide/vscode/bosh/BoshDeploymentManifestSchema.java +++ b/headless-services/bosh-language-server/src/main/java/org/springframework/ide/vscode/bosh/BoshDeploymentManifestSchema.java @@ -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"); diff --git a/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/BoshEditorTest.java b/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/BoshEditorTest.java index e0ffbfc0b..f88af74a6 100644 --- a/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/BoshEditorTest.java +++ b/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/BoshEditorTest.java @@ -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"