From 5087c8a647e3af37222d9eae76d432d9cd03cb57 Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Sun, 22 Jan 2017 10:51:26 -0800 Subject: [PATCH] Add docker-image infos to PipelineYamlSchema --- .../commons/yaml/schema/YTypeFactory.java | 5 + .../vscode/concourse/PipelineYmlSchema.java | 107 ++++++++++++------ .../branch.md | 0 .../commit_verification_key_ids.md | 0 .../commit_verification_keys.md | 0 .../disable_ci_skip.md | 0 .../git_config.md | 0 .../gpg_keyserver.md | 0 .../ignore_paths.md | 0 .../password.md | 0 .../{GitResourceSource => GitSource}/paths.md | 0 .../private_key.md | 0 .../skip_ssl_verification.md | 0 .../tag_filter.md | 0 .../{GitResourceSource => GitSource}/uri.md | 0 .../username.md | 0 .../concourse/PipelineYamlEditorTest.java | 1 - .../src/test/resources/workspace/pipeline.yml | 1 - 18 files changed, 80 insertions(+), 34 deletions(-) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/branch.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/commit_verification_key_ids.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/commit_verification_keys.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/disable_ci_skip.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/git_config.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/gpg_keyserver.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/ignore_paths.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/password.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/paths.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/private_key.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/skip_ssl_verification.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/tag_filter.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/uri.md (100%) rename vscode-extensions/vscode-concourse/src/main/resources/desc/{GitResourceSource => GitSource}/username.md (100%) diff --git a/vscode-extensions/commons/commons-yaml/src/main/java/org/springframework/ide/vscode/commons/yaml/schema/YTypeFactory.java b/vscode-extensions/commons/commons-yaml/src/main/java/org/springframework/ide/vscode/commons/yaml/schema/YTypeFactory.java index f7938e274..f3001c43e 100644 --- a/vscode-extensions/commons/commons-yaml/src/main/java/org/springframework/ide/vscode/commons/yaml/schema/YTypeFactory.java +++ b/vscode-extensions/commons/commons-yaml/src/main/java/org/springframework/ide/vscode/commons/yaml/schema/YTypeFactory.java @@ -548,6 +548,7 @@ public class YTypeFactory { final private YType type; private Renderable description = Renderables.NO_DESCRIPTION; private boolean isRequired; + private boolean isDeprecated; private YTypedPropertyImpl(String name, YType type) { this.name = name; @@ -588,6 +589,10 @@ public class YTypeFactory { public boolean isRequired() { return isRequired; } + + public void isDeprecated(boolean isDeprecated) { + this.isDeprecated = isDeprecated; + } } public YAtomicType yatomic(String name) { diff --git a/vscode-extensions/vscode-concourse/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java b/vscode-extensions/vscode-concourse/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java index 1dc1813df..9198b08e9 100644 --- a/vscode-extensions/vscode-concourse/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java +++ b/vscode-extensions/vscode-concourse/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java @@ -12,7 +12,6 @@ package org.springframework.ide.vscode.concourse; import org.springframework.ide.vscode.commons.util.Renderable; import org.springframework.ide.vscode.commons.util.Renderables; -import org.springframework.ide.vscode.commons.util.StringUtil; import org.springframework.ide.vscode.commons.util.ValueParsers; import org.springframework.ide.vscode.commons.yaml.ast.NodeUtil; import org.springframework.ide.vscode.commons.yaml.ast.YamlFileAST; @@ -27,7 +26,6 @@ import org.springframework.ide.vscode.commons.yaml.schema.YTypeFactory.YBeanType import org.springframework.ide.vscode.commons.yaml.schema.YTypeFactory.YBeanUnionType; import org.springframework.ide.vscode.commons.yaml.schema.YTypeFactory.YTypedPropertyImpl; import org.springframework.ide.vscode.commons.yaml.schema.YTypeUtil; -import org.springframework.ide.vscode.commons.yaml.schema.YTypedProperty; import org.springframework.ide.vscode.commons.yaml.schema.YamlSchema; /** @@ -222,39 +220,84 @@ public class PipelineYmlSchema implements YamlSchema { } private void initializeDefaultResourceTypes() { - //////////////////////////////////////////////////// - // git - YBeanType gitSource = f.ybean("GitResourceSource"); - addProp(gitSource, "uri", t_string).isRequired(true); - addProp(gitSource, "branch", t_string).isRequired(true); - addProp(gitSource, "private_key", t_string); - addProp(gitSource, "username", t_string); - addProp(gitSource, "password", t_string); - addProp(gitSource, "paths", t_strings); - addProp(gitSource, "ignore_paths", t_strings); - addProp(gitSource, "skip_ssl_verification", t_boolean); - addProp(gitSource, "tag_filter", t_string); - addProp(gitSource, "git_config", t_pair_list); - addProp(gitSource, "disable_ci_skip", t_boolean); - addProp(gitSource, "commit_verification_keys", t_strings); - addProp(gitSource, "commit_verification_key_ids", t_strings); - addProp(gitSource, "gpg_keyserver", t_string); + // git : + { + YBeanType source = f.ybean("GitSource"); + addProp(source, "uri", t_string).isRequired(true); + addProp(source, "branch", t_string).isRequired(true); + addProp(source, "private_key", t_string); + addProp(source, "username", t_string); + addProp(source, "password", t_string); + addProp(source, "paths", t_strings); + addProp(source, "ignore_paths", t_strings); + addProp(source, "skip_ssl_verification", t_boolean); + addProp(source, "tag_filter", t_string); + addProp(source, "git_config", t_pair_list); + addProp(source, "disable_ci_skip", t_boolean); + addProp(source, "commit_verification_keys", t_strings); + addProp(source, "commit_verification_key_ids", t_strings); + addProp(source, "gpg_keyserver", t_string); - YBeanType gitGetParams = f.ybean("GitGetParams"); - addProp(gitGetParams, "depth", t_pos_integer); - addProp(gitGetParams, "submodules", f.yany("GitSubmodules").addHints("all", "none")); - addProp(gitGetParams, "disable_git_lfs", t_boolean); + YBeanType get = f.ybean("GitGetParams"); + addProp(get, "depth", t_pos_integer); + addProp(get, "submodules", f.yany("GitSubmodules").addHints("all", "none")); + addProp(get, "disable_git_lfs", t_boolean); - YBeanType gitPutParams = f.ybean("GitPutParams"); - addProp(gitPutParams, "repository", t_ne_string).isRequired(true); - addProp(gitPutParams, "rebase", t_boolean); - addProp(gitPutParams, "tag", t_ne_string); - addProp(gitPutParams, "only_tag", t_boolean); - addProp(gitPutParams, "tag_prefix", t_string); - addProp(gitPutParams, "force", t_boolean); - addProp(gitPutParams, "annotate", t_ne_string); + YBeanType put = f.ybean("GitPutParams"); + addProp(put, "repository", t_ne_string).isRequired(true); + addProp(put, "rebase", t_boolean); + addProp(put, "tag", t_ne_string); + addProp(put, "only_tag", t_boolean); + addProp(put, "tag_prefix", t_string); + addProp(put, "force", t_boolean); + addProp(put, "annotate", t_ne_string); - resourceTypes.def("git", gitSource, gitGetParams, gitPutParams); + resourceTypes.def("git", source, get, put); + } + //docker-image: + { + YBeanType source = f.ybean("DockerImageSource"); + addProp(source, "repository", t_ne_string).isRequired(true); + addProp(source, "tag", t_ne_string); + addProp(source, "username", t_ne_string); + addProp(source, "password", t_ne_string); + addProp(source, "aws_access_key_id", t_ne_string); + addProp(source, "aws_secret_access_key", t_ne_string); + addProp(source, "insecure_registries", t_strings); + addProp(source, "registry_mirror", t_strings); + YBeanType t_cert_entry = f.ybean("DomainAndCert", + f.yprop("domain", t_ne_string), + f.yprop("cert", t_ne_string) + ); + addProp(source, "ca_certs", f.yseq(t_cert_entry)); + addProp(source, "client_certs", f.yseq(t_cert_entry)); + + YBeanType get = f.ybean("DockerImageGetParams"); + addProp(get, "save", t_boolean); + addProp(get, "rootfs", t_boolean); + addProp(get, "skip_download", t_boolean); + + YBeanType put = f.ybean("DockerImagePutParams"); + addProp(put, "build", t_ne_string); + addProp(put, "load", t_ne_string); + addProp(put, "dockerfile", t_ne_string); + addProp(put, "cache", t_boolean); + addProp(put, "cache_tag", t_ne_string); + addProp(put, "load_base", t_ne_string); + addProp(put, "load_file", t_ne_string); + addProp(put, "load_repository", t_ne_string); + addProp(put, "load_tag", t_ne_string); + addProp(put, "import_file", t_ne_string); + addProp(put, "pull_repository", t_ne_string).isDeprecated(true); + addProp(put, "pull_tag", t_ne_string).isDeprecated(true); + addProp(put, "tag", t_ne_string); + addProp(put, "tag_prefix", t_ne_string); + addProp(put, "tag_as_latest", t_boolean); + addProp(put, "build_args", t_string_params); + addProp(put, "build_args_file", t_ne_string); + + resourceTypes.def("docker-image", source, get, put); + } } private String getResourceType(String resourceNameProp, ConcourseModel models, DynamicSchemaContext dc) { diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/branch.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/branch.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/branch.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/branch.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/commit_verification_key_ids.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/commit_verification_key_ids.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/commit_verification_key_ids.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/commit_verification_key_ids.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/commit_verification_keys.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/commit_verification_keys.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/commit_verification_keys.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/commit_verification_keys.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/disable_ci_skip.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/disable_ci_skip.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/disable_ci_skip.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/disable_ci_skip.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/git_config.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/git_config.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/git_config.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/git_config.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/gpg_keyserver.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/gpg_keyserver.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/gpg_keyserver.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/gpg_keyserver.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/ignore_paths.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/ignore_paths.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/ignore_paths.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/ignore_paths.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/password.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/password.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/password.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/password.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/paths.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/paths.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/paths.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/paths.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/private_key.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/private_key.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/private_key.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/private_key.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/skip_ssl_verification.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/skip_ssl_verification.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/skip_ssl_verification.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/skip_ssl_verification.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/tag_filter.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/tag_filter.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/tag_filter.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/tag_filter.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/uri.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/uri.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/uri.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/uri.md diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/username.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/username.md similarity index 100% rename from vscode-extensions/vscode-concourse/src/main/resources/desc/GitResourceSource/username.md rename to vscode-extensions/vscode-concourse/src/main/resources/desc/GitSource/username.md diff --git a/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/PipelineYamlEditorTest.java b/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/PipelineYamlEditorTest.java index 23b895bcd..47d8ab1a8 100644 --- a/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/PipelineYamlEditorTest.java +++ b/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/PipelineYamlEditorTest.java @@ -17,7 +17,6 @@ import java.util.Arrays; import java.util.stream.Collectors; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.springframework.ide.vscode.commons.util.IOUtil; import org.springframework.ide.vscode.languageserver.testharness.Editor; diff --git a/vscode-extensions/vscode-concourse/src/test/resources/workspace/pipeline.yml b/vscode-extensions/vscode-concourse/src/test/resources/workspace/pipeline.yml index 243fb8854..6c3577111 100644 --- a/vscode-extensions/vscode-concourse/src/test/resources/workspace/pipeline.yml +++ b/vscode-extensions/vscode-concourse/src/test/resources/workspace/pipeline.yml @@ -60,7 +60,6 @@ resources: type: docker-image source: username: {{docker_hub_username}} - email: {{docker_hub_email}} password: {{docker_hub_password}} repository: kdvolder/sts4-build-env ########################################################################################