ProblemSet validateMatchingFilter(NodeFilter filter) { DaemonTaskHandler.newStage("Running validation"); Halconfig halconfig = parser.getHalconfig(); ConfigProblemSetBuilder psBuilder = new ConfigProblemSetBuilder(applicationContext); recursiveValidate(psBuilder, halconfig, filter); return psBuilder.build(); }
@Override public void validate(ConfigProblemSetBuilder p, AwsAccount n) { p.addProblem(Severity.WARNING, "No validation for the AWS provider has been implemented."); }
protected List<String> versionOptions(ConfigProblemSetBuilder psBuilder) { VersionsService service = psBuilder.getContext().getBean(VersionsService.class); Versions versions = service.getVersions(); if (versions == null) { return Collections.emptyList(); } else { return versions.getVersions().stream().map(Version::getVersion).collect(Collectors.toList()); } } }
public <T extends Node> FieldOptions options(NodeFilter filter, Class<T> nodeClass, String field) { ConfigProblemSetBuilder problemSetBuilder = new ConfigProblemSetBuilder(applicationContext); List<T> nodes = lookupService.getMatchingNodesOfType(filter, nodeClass); List<String> options = nodes.stream().map(n -> { problemSetBuilder.setNode(n); return n.fieldOptions(problemSetBuilder, field); }).reduce(new ArrayList<>(), (a, b) -> { a.addAll(b); return a; }); return new FieldOptions().setOptions(options).setProblemSet(problemSetBuilder.build()); }
public ConfigProblemBuilder addProblem(Severity severity, String message, String field) { ConfigProblemBuilder problemBuilder = new ConfigProblemBuilder(severity, message); if (node != null) { problemBuilder.setNode(node); if (field != null && !field.isEmpty()) { problemBuilder.setOptions(node.fieldOptions(new ConfigProblemSetBuilder(context), field)); } } builders.add(problemBuilder); return problemBuilder; }
p.addProblem(Problem.Severity.WARNING, "You have not yet selected a version of Spinnaker to deploy.", "version"); return; p.addProblem(Problem.Severity.ERROR, "Version \"" + version + "\" may no longer be deployed with Halyard: " + illegalVersion.get().getReason()); return; p.addProblem(Problem.Severity.FATAL, "You can't run Spinnaker from a branch when your deployment type isn't \"LocalGit\".") .setRemediation("Either pick a version (hal version list) or set a different deployment type (hal config deploy edit --type <t>)."); return; p.addProblem(Problem.Severity.FATAL, "Could not fetch your desired version.") .setRemediation("Is it possible that you're trying to checkout a branch? Prefix the version with \"" + Versions.BRANCH_PREFIX + "\"."); return; p.extend(e); return; } catch (Exception e) { p.addProblem(Problem.Severity.FATAL, "Unexpected error trying to validate version \"" + version + "\": " + e.getMessage(), "version"); return; && !StringUtils.isEmpty(minimumHalyardVersion) && Versions.lessThan(runningVersion, minimumHalyardVersion)) { p.addProblem(Problem.Severity.ERROR, "Halyard version \"" + runningVersion + "\" is less than Halyard version \"" + minimumHalyardVersion + "\" required for Spinnaker \"" + version + "\""); p.addProblem(Problem.Severity.WARNING, "Version \"" + version + "\" was patched by \"" + patchVersion.get().getVersion() + "\". Please upgrade when possible.") .setRemediation("https://spinnaker.io/setup/install/upgrades/"); } else { p.addProblem(Problem.Severity.WARNING, "Version \"" + version + "\" is no longer supported by the Spinnaker team. Please upgrade when possible.") .setRemediation("https://spinnaker.io/setup/install/upgrades/");
/** * Runs every validator defined against the given node. * * @param psBuilder contains the problems encountered during validation so far. * @param node is the node being validated. * * @return # of validators run (for logging purposes). */ public int runAllValidators(ConfigProblemSetBuilder psBuilder, Node node) { psBuilder.setNode(node); int validatorRuns = 0; for (Validator validator : validators) { validatorRuns += runMatchingValidators(psBuilder, validator, node, node.getClass()) ? 1 : 0; } return validatorRuns; }
public <T extends Node> FieldOptions options(NodeFilter filter, Class<T> nodeClass, String field) { ConfigProblemSetBuilder problemSetBuilder = new ConfigProblemSetBuilder(applicationContext); List<T> nodes = lookupService.getMatchingNodesOfType(filter, nodeClass); List<String> options = nodes.stream().map(n -> { problemSetBuilder.setNode(n); return n.fieldOptions(problemSetBuilder, field); }).reduce(new ArrayList<>(), (a, b) -> { a.addAll(b); return a; }); return new FieldOptions().setOptions(options).setProblemSet(problemSetBuilder.build()); }
public ConfigProblemBuilder addProblem(Severity severity, String message, String field) { ConfigProblemBuilder problemBuilder = new ConfigProblemBuilder(severity, message); if (node != null) { problemBuilder.setNode(node); if (field != null && !field.isEmpty()) { problemBuilder.setOptions(node.fieldOptions(new ConfigProblemSetBuilder(context), field)); } } builders.add(problemBuilder); return problemBuilder; }
p.addProblem(Problem.Severity.WARNING, "You have not yet selected a version of Spinnaker to deploy.", "version"); return; p.addProblem(Problem.Severity.ERROR, "Version \"" + version + "\" may no longer be deployed with Halyard: " + illegalVersion.get().getReason()); return; p.addProblem(Problem.Severity.FATAL, "You can't run Spinnaker from a branch when your deployment type isn't \"LocalGit\".") .setRemediation("Either pick a version (hal version list) or set a different deployment type (hal config deploy edit --type <t>)."); return; p.addProblem(Problem.Severity.FATAL, "Could not fetch your desired version.") .setRemediation("Is it possible that you're trying to checkout a branch? Prefix the version with \"" + Versions.BRANCH_PREFIX + "\"."); return; p.extend(e); return; } catch (Exception e) { p.addProblem(Problem.Severity.FATAL, "Unexpected error trying to validate version \"" + version + "\": " + e.getMessage(), "version"); return; && !StringUtils.isEmpty(minimumHalyardVersion) && Versions.lessThan(runningVersion, minimumHalyardVersion)) { p.addProblem(Problem.Severity.ERROR, "Halyard version \"" + runningVersion + "\" is less than Halyard version \"" + minimumHalyardVersion + "\" required for Spinnaker \"" + version + "\""); p.addProblem(Problem.Severity.WARNING, "Version \"" + version + "\" was patched by \"" + patchVersion.get().getVersion() + "\". Please upgrade when possible.") .setRemediation("https://spinnaker.io/setup/install/upgrades/"); } else { p.addProblem(Problem.Severity.WARNING, "Version \"" + version + "\" is no longer supported by the Spinnaker team. Please upgrade when possible.") .setRemediation("https://spinnaker.io/setup/install/upgrades/");
/** * Runs every validator defined against the given node. * * @param psBuilder contains the problems encountered during validation so far. * @param node is the node being validated. * * @return # of validators run (for logging purposes). */ public int runAllValidators(ConfigProblemSetBuilder psBuilder, Node node) { psBuilder.setNode(node); int validatorRuns = 0; for (Validator validator : validators) { validatorRuns += runMatchingValidators(psBuilder, validator, node, node.getClass()) ? 1 : 0; } return validatorRuns; }
public ConfigProblemBuilder addProblem(Severity severity, String message) { return addProblem(severity, message, null); }
ProblemSet validateMatchingFilter(NodeFilter filter) { DaemonTaskHandler.newStage("Running validation"); Halconfig halconfig = parser.getHalconfig(); ConfigProblemSetBuilder psBuilder = new ConfigProblemSetBuilder(applicationContext); recursiveValidate(psBuilder, halconfig, filter); return psBuilder.build(); }
protected List<String> versionOptions(ConfigProblemSetBuilder psBuilder) { VersionsService service = psBuilder.getContext().getBean(VersionsService.class); Versions versions = service.getVersions(); if (versions == null) { return Collections.emptyList(); } else { return versions.getVersions().stream().map(Version::getVersion).collect(Collectors.toList()); } } }
@Override public void validate(ConfigProblemSetBuilder p, AwsAccount n) { p.addProblem(Severity.WARNING, "No validation for the AWS provider has been implemented."); }
static Compute getCompute(AccountDeploymentDetails<GoogleAccount> details) { ConfigProblemSetBuilder problemSetBuilder = new ConfigProblemSetBuilder(null); GoogleNamedAccountCredentials credentials = details.getAccount().getNamedAccountCredentials("", problemSetBuilder); if (credentials == null) { throw new HalException(problemSetBuilder.build().getProblems()); } return credentials.getCompute(); }
public ConfigProblemBuilder addProblem(Severity severity, String message) { return addProblem(severity, message, null); }
static Compute getCompute(AccountDeploymentDetails<GoogleAccount> details) { ConfigProblemSetBuilder problemSetBuilder = new ConfigProblemSetBuilder(null); GoogleNamedAccountCredentials credentials = details.getAccount().getNamedAccountCredentials("", problemSetBuilder); if (credentials == null) { throw new HalException(problemSetBuilder.build().getProblems()); } return credentials.getCompute(); }
private void notNullOrEmpty(String param, String paramName, ConfigProblemSetBuilder psBuilder) { if (param == null || param.isEmpty()) { psBuilder.addProblem(Severity.FATAL, "You must provide a " + paramName); } } }
private void notNullOrEmpty(String param, String paramName, ConfigProblemSetBuilder psBuilder) { if (param == null || param.isEmpty()) { psBuilder.addProblem(Problem.Severity.FATAL, "You must provide a " + paramName); } } }