Search in sources :

Example 56 with Slime

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);
}
Also used : DeploymentId(com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId) SlimeJsonResponse(com.yahoo.vespa.hosted.controller.restapi.SlimeJsonResponse) NotExistsException(com.yahoo.vespa.hosted.controller.NotExistsException) Deployment(com.yahoo.vespa.hosted.controller.application.Deployment) ApplicationId(com.yahoo.config.provision.ApplicationId) Slime(com.yahoo.slime.Slime) Application(com.yahoo.vespa.hosted.controller.Application)

Example 57 with 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;
}
Also used : Slime(com.yahoo.slime.Slime) Cursor(com.yahoo.slime.Cursor)

Example 58 with 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);
}
Also used : JsonFormat(com.yahoo.slime.JsonFormat) Slime(com.yahoo.slime.Slime) Cursor(com.yahoo.slime.Cursor)

Example 59 with 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);
    }
}
Also used : HashSet(java.util.HashSet) Cursor(com.yahoo.slime.Cursor) List(java.util.List) Inspector(com.yahoo.slime.Inspector) ApplicationId(com.yahoo.config.provision.ApplicationId) SlimeUtils(com.yahoo.vespa.config.SlimeUtils) ArrayTraverser(com.yahoo.slime.ArrayTraverser) Slime(com.yahoo.slime.Slime) Set(java.util.Set) IOException(java.io.IOException) ArrayDeque(java.util.ArrayDeque) Deque(java.util.Deque) IOException(java.io.IOException) Slime(com.yahoo.slime.Slime) Cursor(com.yahoo.slime.Cursor)

Example 60 with Slime

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);
}
Also used : SlimeJsonResponse(com.yahoo.vespa.hosted.controller.restapi.SlimeJsonResponse) Environment(com.yahoo.config.provision.Environment) Slime(com.yahoo.slime.Slime) Cursor(com.yahoo.slime.Cursor)

Aggregations

Slime (com.yahoo.slime.Slime)131 Cursor (com.yahoo.slime.Cursor)76 Test (org.junit.Test)43 ByteArrayOutputStream (java.io.ByteArrayOutputStream)23 SlimeJsonResponse (com.yahoo.vespa.hosted.controller.restapi.SlimeJsonResponse)22 DefParser (com.yahoo.config.codegen.DefParser)14 InnerCNode (com.yahoo.config.codegen.InnerCNode)14 StringReader (java.io.StringReader)14 JsonFormat (com.yahoo.slime.JsonFormat)10 ApplicationId (com.yahoo.config.provision.ApplicationId)9 Inspector (com.yahoo.slime.Inspector)9 Application (com.yahoo.vespa.hosted.controller.Application)9 SlimeAdapter (com.yahoo.data.access.slime.SlimeAdapter)8 IOException (java.io.IOException)8 Version (com.yahoo.component.Version)7 JsonDecoder (com.yahoo.slime.JsonDecoder)6 ConfigPayload (com.yahoo.vespa.config.ConfigPayload)6 HttpResponse (com.yahoo.container.jdisc.HttpResponse)5 DeployLogger (com.yahoo.config.application.api.DeployLogger)4 TenantName (com.yahoo.config.provision.TenantName)4