use of com.yahoo.vespa.hosted.controller.restapi.Uri in project vespa by vespa-engine.
the class DeploymentApiHandler method toSlime.
private void toSlime(Cursor object, Application application, HttpRequest request) {
object.setString("tenant", application.id().tenant().value());
object.setString("application", application.id().application().value());
object.setString("instance", application.id().instance().value());
object.setString("url", new Uri(request.getUri()).withPath("/application/v4/tenant/" + application.id().tenant().value() + "/application/" + application.id().application().value()).toString());
object.setString("upgradePolicy", toString(application.deploymentSpec().upgradePolicy()));
}
use of com.yahoo.vespa.hosted.controller.restapi.Uri in project vespa by vespa-engine.
the class ServiceApiResponse method rewriteIfUrl.
private String rewriteIfUrl(String urlOrAnyString, Uri requestUri) {
if (urlOrAnyString == null)
return null;
String hostPattern = "(" + String.join("|", configServerURIs.stream().map(URI::toString).map(s -> s.substring(0, s.length() - 1)).map(Pattern::quote).toArray(String[]::new)) + ")";
String remoteServicePath = "/serviceview/" + "v1/tenant/" + application.tenant().value() + "/application/" + application.application().value() + "/environment/" + zone.environment().value() + "/region/" + zone.region().value() + "/instance/" + application.instance() + "/service/";
Pattern remoteServiceResourcePattern = Pattern.compile("^(" + hostPattern + Pattern.quote(remoteServicePath) + ")");
Matcher matcher = remoteServiceResourcePattern.matcher(urlOrAnyString);
if (matcher.find()) {
String proxiedPath = urlOrAnyString.substring(matcher.group().length());
return requestUri.append(proxiedPath).toString();
} else {
// not a service url
return urlOrAnyString;
}
}
Aggregations