From 4fa7299585339c0df2337427f178de157c8cd779 Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Mon, 10 Jul 2017 15:30:00 -0700 Subject: [PATCH] Add `stemcells` property to schema --- .../bosh/BoshDeploymentManifestSchema.java | 6 +++++- .../desc/BoshDeploymentManifest/stemcells.md | 11 +++++++++++ .../ide/vscode/concourse/BoshEditorTest.java | 18 +++++++----------- 3 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 headless-services/bosh-language-server/src/main/resources/desc/BoshDeploymentManifest/stemcells.md 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 cbd3907d4..8a1896447 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 @@ -60,8 +60,12 @@ public class BoshDeploymentManifestSchema implements YamlSchema { YBeanType t_release = f.ybean("Release"); addProp(t_release, "name", t_ne_string).isRequired(true); addProp(t_release, "version", t_version).isRequired(true); - addProp(TOPLEVEL_TYPE, "releases", f.yseq(t_release)).isRequired(true); + + YType t_stemcell = t_params; //TODO: https://www.pivotaltracker.com/story/show/148627093 + addProp(TOPLEVEL_TYPE, "stemcells", f.yseq(t_stemcell)).isRequired(true); + + } @Override diff --git a/headless-services/bosh-language-server/src/main/resources/desc/BoshDeploymentManifest/stemcells.md b/headless-services/bosh-language-server/src/main/resources/desc/BoshDeploymentManifest/stemcells.md new file mode 100644 index 000000000..e2c91ff1a --- /dev/null +++ b/headless-services/bosh-language-server/src/main/resources/desc/BoshDeploymentManifest/stemcells.md @@ -0,0 +1,11 @@ +*Required.* The name and version of each stemcell in the deployment. + +Example: + + stemcells: + - alias: default + os: ubuntu-trusty + version: 3147 + - alias: default2 + name: bosh-aws-xen-hvm-ubuntu-trusty-go_agent + version: 3149 diff --git a/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/concourse/BoshEditorTest.java b/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/concourse/BoshEditorTest.java index 7261103f0..20c856a35 100644 --- a/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/concourse/BoshEditorTest.java +++ b/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/concourse/BoshEditorTest.java @@ -39,25 +39,20 @@ public class BoshEditorTest { "releases:\n" + "- name: redis\n" + " version: 12\n" + + "stemcells:\n" + + "- alias: default\n" + + " os: ubuntu-trusty\n" + + " version: 3421.11\n" + "blah: hoooo\n" ); editor.assertProblems( "blah|Unknown property" ); - } - @Test public void toplevelV2PropertyHovers() throws Exception { - Editor editor = harness.newEditor( - "name: some-name\n" + - "director_uuid: cf8dc1fc-9c42-4ffc-96f1-fbad983a6ce6\n" + - "releases:\n" + - "- name: redis\n" + - " version: 12\n" + - "blah: hoooo\n" - ); editor.assertHoverContains("name", "The name of the deployment"); editor.assertHoverContains("director_uuid", "This string must match the UUID of the currently targeted Director"); editor.assertHoverContains("releases", "The name and version of each release in the deployment"); + editor.assertHoverContains("stemcells", "The name and version of each stemcell"); } @Test public void toplevelV2PropertyCompletions() throws Exception { @@ -67,7 +62,8 @@ public class BoshEditorTest { editor.assertCompletions( "director_uuid: <*>", "name: <*>", - "releases:\n- <*>" + "releases:\n- <*>", + "stemcells:\n- <*>" ); }