Allow 0 instances in cf manifest

This commit is contained in:
Kris De Volder
2019-05-08 11:10:06 -07:00
parent 3b396e975f
commit ac2408dddd
2 changed files with 15 additions and 4 deletions

View File

@@ -34,7 +34,6 @@ import org.springframework.ide.vscode.commons.yaml.schema.YTypeFactory.YTypedPro
import org.springframework.ide.vscode.commons.yaml.schema.YTypeUtil;
import org.springframework.ide.vscode.commons.yaml.schema.YValueHint;
import org.springframework.ide.vscode.commons.yaml.schema.YamlSchema;
import org.springframework.ide.vscode.commons.yaml.schema.constraints.Constraints;
import org.yaml.snakeyaml.nodes.Node;
import com.google.common.collect.ImmutableList;
@@ -202,7 +201,7 @@ public final class ManifestYmlSchema implements YamlSchema {
f.yprop("env", t_env),
f.yprop("host", t_ne_string),
f.yprop("hosts", f.yseq(t_host)),
f.yprop("instances", t_strictly_pos_integer),
f.yprop("instances", t_pos_integer),
f.yprop("memory", t_memory),
f.yprop("name", t_application_name).isRequired(true),
f.yprop("no-hostname", t_boolean),

View File

@@ -134,6 +134,18 @@ public class ManifestYamlEditorTest {
"applications|Unknown property"
);
}
@Test public void zeroInstancesIsFine() throws Exception {
//See: https://www.pivotaltracker.com/story/show/165839251
Editor editor = harness.newEditor(
"applications:\n" +
"- name: some-name\n" +
" instances: -1\n" +
"- name: some-other-name\n" +
" instances: 0"
);
editor.assertProblems("-1|Value must be positive");
}
@Test
public void reconcileStructuralProblems() throws Exception {
@@ -167,7 +179,7 @@ public class ManifestYamlEditorTest {
);
editor.assertProblems(
"- bad sequence|Expecting a 'Memory' but found a 'Sequence'",
"bad: map|Expecting a 'Strictly Positive Integer' but found a 'Map'"
"bad: map|Expecting a 'Positive Integer' but found a 'Map'"
);
// Add a structural case for `buildpacks` (old `buildpack` was scalar, but `buildpacks` is sequence)
@@ -212,7 +224,7 @@ public class ManifestYamlEditorTest {
" disk_quota: -2048M\n"
);
editor.assertProblems(
"-3|Value must be at least 1",
"-3|Value must be positive",
"-1024M|Negative value is not allowed",
"-2048M|Negative value is not allowed"
);