use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class ApplicationApiHandler method deployment.
private HttpResponse deployment(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) {
ApplicationId id = ApplicationId.from(tenantName, applicationName, instanceName);
Application application = controller.applications().get(id).orElseThrow(() -> new NotExistsException(id + " not found"));
DeploymentId deploymentId = new DeploymentId(application.id(), ZoneId.from(environment, region));
Deployment deployment = application.deployments().get(deploymentId.zoneId());
if (deployment == null)
throw new NotExistsException(application + " is not deployed in " + deploymentId.zoneId());
Slime slime = new Slime();
toSlime(slime.setObject(), deploymentId, deployment, request);
return new SlimeJsonResponse(slime);
}
use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class ApplicationSerializer method toSlime.
// ------------------ Serialization
public Slime toSlime(Application application) {
Slime slime = new Slime();
Cursor root = slime.setObject();
root.setString(idField, application.id().serializedForm());
root.setString(deploymentSpecField, application.deploymentSpec().xmlForm());
root.setString(validationOverridesField, application.validationOverrides().xmlForm());
deploymentsToSlime(application.deployments().values(), root.setArray(deploymentsField));
toSlime(application.deploymentJobs(), root.setObject(deploymentJobsField));
toSlime(application.change(), root, deployingField);
toSlime(application.outstandingChange(), root, outstandingChangeField);
application.ownershipIssueId().ifPresent(issueId -> root.setString(ownershipIssueIdField, issueId.value()));
root.setDouble(queryQualityField, application.metrics().queryServiceQuality());
root.setDouble(writeQualityField, application.metrics().writeServiceQuality());
application.rotation().ifPresent(rotation -> root.setString(rotationField, rotation.id().asString()));
return slime;
}
use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class UpgraderResponse method render.
@Override
public void render(OutputStream outputStream) throws IOException {
Slime slime = new Slime();
Cursor root = slime.setObject();
root.setDouble("upgradesPerMinute", upgrader.upgradesPerMinute());
Cursor array = root.setArray("confidenceOverrides");
upgrader.confidenceOverrides().forEach((version, confidence) -> {
Cursor object = array.addObject();
object.setString(version.toString(), confidence.name());
});
new JsonFormat(true).encode(outputStream, slime);
}
use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class JobQueueSerializer method toJson.
public byte[] toJson(Iterable<ApplicationId> queue) {
try {
Slime slime = new Slime();
Cursor array = slime.setArray();
queue.forEach((id -> array.addString(id.serializedForm())));
return SlimeUtils.toJsonBytes(slime);
} catch (IOException e) {
throw new RuntimeException("Serialization of a job queue failed", e);
}
}
use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class ZoneApiHandler method root.
private HttpResponse root(HttpRequest request) {
List<Environment> environments = zoneRegistry.zones().all().ids().stream().map(ZoneId::environment).distinct().sorted(Comparator.comparing(Environment::value)).collect(Collectors.toList());
Slime slime = new Slime();
Cursor root = slime.setArray();
environments.forEach(environment -> {
Cursor object = root.addObject();
object.setString("name", environment.value());
// Returning /zone/v2 is a bit strange, but that's what the original Jersey implementation did
object.setString("url", request.getUri().resolve("/zone/v2/environment/").resolve(environment.value()).toString());
});
return new SlimeJsonResponse(slime);
}
Aggregations