@Override public void validate(ConfigProblemSetBuilder p, AwsAccount n) { p.addProblem(Severity.WARNING, "No validation for the AWS provider has been implemented."); }
@Override public void validate(ConfigProblemSetBuilder ps, PersistentStorage n) { PersistentStore.PersistentStoreType persistentStoreType = n.getPersistentStoreType(); if (persistentStoreType == null) { ps.addProblem(Severity.WARNING, "Your deployment will most likely fail until you configure and enable a persistent store."); } } }
@Override public void validate(ConfigProblemSetBuilder p, FileRoleProvider provider) { if (StringUtils.isEmpty(provider.getPath())) { p.addProblem(Problem.Severity.ERROR, "No permission file path specified."); } } }
@Override public void validate(ConfigProblemSetBuilder p, GithubRoleProvider provider) { if (StringUtils.isEmpty(provider.getOrganization())) { p.addProblem(Problem.Severity.ERROR, "No organization specified."); } if (StringUtils.isEmpty(provider.getAccessToken())) { p.addProblem(Problem.Severity.ERROR, "No access token specified."); } } }
@Override public void validate(ConfigProblemSetBuilder p, GithubRoleProvider provider) { if (StringUtils.isEmpty(provider.getOrganization())) { p.addProblem(Problem.Severity.ERROR, "No organization specified."); } if (StringUtils.isEmpty(provider.getAccessToken())) { p.addProblem(Problem.Severity.ERROR, "No access token specified."); } } }
@Override public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) throws IOException { p.addProblem(Problem.Severity.ERROR, "Error locating " + sourceImage + " in these projects: " + imageProjects + ": " + e.getMessage() + "."); }
@Override public void validate(ConfigProblemSetBuilder p, AbstractCanaryAccount n) { if (n.getName() == null) { p.addProblem(Severity.FATAL, "Canary account name must be specified"); } else if (!Pattern.matches(namePattern, n.getName())) { p.addProblem(Severity.ERROR, "Canary account name must match pattern " + namePattern) .setRemediation("It must start and end with a lower-case character or number, and only contain lower-case characters, numbers, dashes, or underscores"); } } }
@Override public void validate(ConfigProblemSetBuilder p, AbstractCanaryAccount n) { if (n.getName() == null) { p.addProblem(Severity.FATAL, "Canary account name must be specified"); } else if (!Pattern.matches(namePattern, n.getName())) { p.addProblem(Severity.ERROR, "Canary account name must match pattern " + namePattern) .setRemediation("It must start and end with a lower-case character or number, and only contain lower-case characters, numbers, dashes, or underscores"); } } }
@Override public void validate(ConfigProblemSetBuilder p, EcsAccount n) { p.addProblem(Severity.WARNING, "This only validates that a corresponding AWS account has been " + "created for your ECS account."); String ecsAwsAccount = n.getAwsAccount(); List<Account> accounts = accountService.getAllAccounts(configService.getCurrentDeployment(), "aws"); Optional<Account> account = accounts.stream().filter(act -> act.getName().equals(ecsAwsAccount)).findAny(); if (!account.isPresent()) { p.addProblem(Severity.ERROR, "No AWS Account found matching " + ecsAwsAccount); } }
@Override public void validate(ConfigProblemSetBuilder p, LdapRoleProvider l) { if (l.getUrl() == null) { p.addProblem(Severity.ERROR, "No url specified."); } if (StringUtils.isEmpty(l.getManagerDn()) && !StringUtils.isEmpty(l.getManagerPassword())) { p.addProblem(Problem.Severity.ERROR, "No manager dn specified."); } if (StringUtils.isEmpty(l.getManagerPassword()) && !StringUtils.isEmpty(l.getManagerDn())) { p.addProblem(Problem.Severity.ERROR, "No manager password specified."); } } }
@Override public void validate(ConfigProblemSetBuilder p, GooglePublisher n) { if (StringUtils.isEmpty(n.getProject())) { p.addProblem(Severity.ERROR, "Missing project ID for Google publisher " + n.getName(), "project"); } if (StringUtils.isEmpty(n.getTopicName())) { p.addProblem(Severity.ERROR, "Missing topic name for Google publisher " + n.getName(), "topic-name"); } } }
private void validateOnlySpinnakerConfig(ConfigProblemSetBuilder psBuilder, KubernetesAccount account) { Boolean onlySpinnakerManaged = account.getOnlySpinnakerManaged(); if (account.getProviderVersion() == Provider.ProviderVersion.V1) { if (onlySpinnakerManaged) { psBuilder.addProblem(WARNING, "Kubernetes accounts at V1 does not support configuring caching behavior for a only spinnaker managed resources."); } } }
@Override public void validate(ConfigProblemSetBuilder p, Authn n) { if (!n.isEnabled() && maybeShouldBeEnabled(n)) { p.addProblem(Problem.Severity.WARNING, "An authentication method is fully or " + "partially configured, but not enabled. It must be enabled to take effect."); } }
@Override public void validate(ConfigProblemSetBuilder p, GooglePubsub n) { Set<String> publisherNames = new HashSet<>(); for (GooglePublisher gp : n.getPublishers()) { if (publisherNames.contains(gp.getName())) { p.addProblem(Severity.ERROR, "Publisher name appears more than once: " + gp.getName()); } publisherNames.add(gp.getName()); } } }
@Override public void validate(ConfigProblemSetBuilder p, X509 x509) { if (!x509.isEnabled()) { return; } if (x509.getRoleOid() != null && (x509.getRoleOid() == "")) { p.addProblem(Problem.Severity.ERROR, "roleOid specified but given blank line"); } } }
@Override public void validate(ConfigProblemSetBuilder p, Provider n) { if (n.isEnabled()) { if (n.getAccounts() == null || n.getAccounts().isEmpty()) { p.addProblem(Problem.Severity.WARNING, "Provider " + n.getNodeName() + " is enabled, but no accounts have been configured."); } } } }
@Override public void validate(ConfigProblemSetBuilder p, X509 x509) { if (!x509.isEnabled()) { return; } if (x509.getRoleOid() != null && (x509.getRoleOid() == "")) { p.addProblem(Problem.Severity.ERROR, "roleOid specified but given blank line"); } } }
@Override public void validate(final ConfigProblemSetBuilder p, final DCOSProvider provider) { Set<String> clusters = new HashSet<>(); for (DCOSCluster cluster : provider.getClusters()) { if (clusters.contains(cluster.getName())) { p.addProblem(Problem.Severity.FATAL, "Account \"" + cluster.getName() + "\" appears more than once") .setRemediation("Change the name of the cluster in " + provider.getNodeName()); } else { clusters.add(cluster.getName()); } } } }
public ConfigProblemSetBuilder extend(HalException e) { e.getProblems() .getProblems() .forEach(p -> addProblem(p.getSeverity(), p.getMessage()) .setOptions(p.getOptions()) .setRemediation(p.getRemediation()) ); return this; }
public ConfigProblemSetBuilder extend(HalException e) { e.getProblems() .getProblems() .forEach(p -> addProblem(p.getSeverity(), p.getMessage()) .setOptions(p.getOptions()) .setRemediation(p.getRemediation()) ); return this; }