use of org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.NoTargetsException in project sts4 by spring-projects.
the class ManifestYamlLanguageServer method applyCfLoginParameterSettings.
@SuppressWarnings("unchecked")
private void applyCfLoginParameterSettings(CfTargetsInfo info) {
List<Target> cfTargets = info.getCfTargets();
if (cfTargets != null) {
CfTargetsInfoProvder cfClientParamsProvider = new CfTargetsInfoProvder(info);
cfClientConfig.setClientParamsProvider(new ClientParamsProvider() {
@Override
public Collection<CFClientParams> getParams() throws NoTargetsException, ExecutionException {
List<ClientParamsProvider> providers = ImmutableList.of(defaultClientParamsProvider, cfClientParamsProvider);
List<CFClientParams> params = new ArrayList<>();
for (ClientParamsProvider provider : providers) {
try {
params.addAll(provider.getParams());
} catch (Exception e) {
// ignore
}
}
if (params.isEmpty()) {
throw new NoTargetsException(getMessages().noTargetsFound());
}
return params;
}
@Override
public CFParamsProviderMessages getMessages() {
return cfTargets.isEmpty() ? defaultClientParamsProvider.getMessages() : cfClientParamsProvider.getMessages();
}
});
}
}
use of org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.NoTargetsException in project sts4 by spring-projects.
the class RouteValueParser method dynamicValidation.
private Object dynamicValidation(String str, Matcher matcher) throws Exception {
if (domains == null) {
// If domains is unknown we can't do the dynamic checks, so bail out.
return str;
}
try {
Collection<String> cloudDomains = Collections.emptyList();
try {
cloudDomains = domains.call();
} catch (ValueParseException e) {
/*
* If domains hint provider throws exception it is
* ValueParserException not NoTargetsException. This means no
* communication with CF -> abort dyncamic validation
*/
return matcher;
}
if (cloudDomains == null) {
// If domains is unknown we can't do the dynamic checks, so bail out.
return str;
}
CFRoute route = CFRoute.builder().from(str, cloudDomains).build();
if (route.getDomain() == null || route.getDomain().isEmpty()) {
throw new ValueParseException("Domain is missing.");
}
if ((route.getPath() != null && !route.getPath().isEmpty()) && (route.getPort() != CFRoute.NO_PORT)) {
throw new ValueParseException("Unable to determine type of route. HTTP port may have a path but no port. TCP route may have port but no path.");
}
if (route.getPort() > MAX_PORT_NUMBER) {
String portAndColumn = matcher.group(2);
int start = str.indexOf(portAndColumn) + 1;
int end = start + portAndColumn.length() - 1;
throw new ValueParseException("Invalid port number. Port range must be between 1 and " + MAX_PORT_NUMBER, start, end);
}
if (!cloudDomains.contains(route.getDomain())) {
String hostDomain = matcher.group(1);
throw new ReconcileException("Unknown 'Domain'. Valid domains are: " + cloudDomains, ManifestYamlSchemaProblemsTypes.UNKNOWN_DOMAIN_PROBLEM, hostDomain.lastIndexOf(route.getDomain()), hostDomain.length());
}
return str;
} catch (ConnectionException | NoTargetsException e) {
// No connection to CF? Abort dynamic validation
return str;
}
}
Aggregations