From f933ba6860582030286f4516b2daac9e697f09c8 Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Mon, 10 Jul 2017 16:23:07 -0700 Subject: [PATCH] Add 'variables' to bosh schema --- .../bosh/BoshDeploymentManifestSchema.java | 4 ++++ .../desc/BoshDeploymentManifest/variables.md | 20 +++++++++++++++++++ .../ide/vscode/concourse/BoshEditorTest.java | 15 ++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 headless-services/bosh-language-server/src/main/resources/desc/BoshDeploymentManifest/variables.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 3fb2f39ad..da647c853 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 @@ -72,6 +72,10 @@ public class BoshDeploymentManifestSchema implements YamlSchema { addProp(TOPLEVEL_TYPE, "instance_groups", f.yseq(t_instance_group)).isRequired(true); addProp(TOPLEVEL_TYPE, "properties", t_params).isDeprecated("Deprecated in favor of job level properties and links"); + + YType t_variable = t_params; //TODO: https://www.pivotaltracker.com/story/show/148627441 + addProp(TOPLEVEL_TYPE, "variables", f.yseq(t_variable)); + } @Override diff --git a/headless-services/bosh-language-server/src/main/resources/desc/BoshDeploymentManifest/variables.md b/headless-services/bosh-language-server/src/main/resources/desc/BoshDeploymentManifest/variables.md new file mode 100644 index 000000000..378bc56b7 --- /dev/null +++ b/headless-services/bosh-language-server/src/main/resources/desc/BoshDeploymentManifest/variables.md @@ -0,0 +1,20 @@ +*Optional*. Describes variables. + +Example: + + variables: + - name: admin_password + type: password + - name: default_ca + type: certificate + options: + is_ca: true + common_name: some-ca + - name: director_ssl + type: certificate + options: + ca: default_ca + common_name: cc.cf.internal + alternative_names: [cc.cf.internal] + +See (CLI Variable Interpolation)[https://bosh.io/docs/cli-int.html] for more details about variables. \ No newline at end of file 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 c314f7069..7c11ea14f 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 @@ -75,6 +75,20 @@ public class BoshEditorTest { " persistent_disk_type: medium\n" + " networks:\n" + " - name: default\n" + + "variables:\n" + + "- name: admin_password\n" + + " type: password\n" + + "- name: default_ca\n" + + " type: certificate\n" + + " options:\n" + + " is_ca: true\n" + + " common_name: some-ca\n" + + "- name: director_ssl\n" + + " type: certificate\n" + + " options:\n" + + " ca: default_ca\n" + + " common_name: cc.cf.internal\n" + + " alternative_names: [cc.cf.internal]\n" + "properties:\n" + " a-property: the-value\n" + "blah: hoooo\n" @@ -91,6 +105,7 @@ public class BoshEditorTest { editor.assertHoverContains("update", "This specifies instance update properties"); editor.assertHoverContains("instance_groups", "Specifies the mapping between release [jobs](https://bosh.io/docs/terminology.html#job) and instance groups."); editor.assertHoverContains("properties", 3, "Describes global properties. Deprecated"); + editor.assertHoverContains("variables", "Describes variables"); }