use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class BinaryFormatTest method requireThatPartitionedFeatureRangeCanBeSerialized.
@Test
public void requireThatPartitionedFeatureRangeCanBeSerialized() {
FeatureRange expected = new FeatureRange("foo", 8L, 20L);
FeatureRange f = new FeatureRange("foo", 8L, 20L);
f.addPartition(new RangeEdgePartition("foo=0", 0, 8, -1));
f.addPartition(new RangeEdgePartition("foo=20", 20, 0, 0));
f.addPartition(new RangePartition("foo", 10, 19, false));
assertSerializesTo(expected, f);
Slime slime = com.yahoo.slime.BinaryFormat.decode(BinaryFormat.encode(f));
assertEquals(BinaryFormat.TYPE_FEATURE_RANGE, slime.get().field(BinaryFormat.NODE_TYPE).asLong());
Inspector in1 = slime.get().field(BinaryFormat.HASHED_PARTITIONS);
assertEquals(1, in1.entries());
assertEquals(0xf2b6d1cc6322cb99L, in1.entry(0).asLong());
Inspector in2 = slime.get().field(BinaryFormat.HASHED_EDGE_PARTITIONS);
assertEquals(2, in2.entries());
Inspector obj1 = in2.entry(0);
assertEquals(0xb2b301e26efffdc2L, obj1.field(BinaryFormat.HASH).asLong());
assertEquals(0, obj1.field(BinaryFormat.VALUE).asLong());
assertEquals(0x80000008L, obj1.field(BinaryFormat.PAYLOAD).asLong());
Inspector obj2 = in2.entry(1);
assertEquals(0x22acb2ed72523c36L, obj2.field(BinaryFormat.HASH).asLong());
assertEquals(20, obj2.field(BinaryFormat.VALUE).asLong());
assertEquals(0x40000001L, obj2.field(BinaryFormat.PAYLOAD).asLong());
}
use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class ApplicationApiHandler method recursiveRoot.
private HttpResponse recursiveRoot(HttpRequest request) {
Slime slime = new Slime();
Cursor tenantArray = slime.setArray();
for (Tenant tenant : controller.tenants().asList()) toSlime(tenantArray.addObject(), tenant, request, true);
return new SlimeJsonResponse(slime);
}
use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class ApplicationApiHandler method authenticatedUser.
private HttpResponse authenticatedUser(HttpRequest request) {
String userIdString = request.getProperty("userOverride");
if (userIdString == null)
userIdString = getUserId(request).map(UserId::id).orElseThrow(() -> new ForbiddenException("You must be authenticated or specify userOverride"));
UserId userId = new UserId(userIdString);
List<Tenant> tenants = controller.tenants().asList(userId);
Slime slime = new Slime();
Cursor response = slime.setObject();
response.setString("user", userId.id());
Cursor tenantsArray = response.setArray("tenants");
for (Tenant tenant : tenants) tenantInTenantsListToSlime(tenant, request.getUri(), tenantsArray.addObject());
response.setBool("tenantExists", tenants.stream().map(Tenant::getId).anyMatch(id -> id.isTenantFor(userId)));
return new SlimeJsonResponse(slime);
}
use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class ApplicationApiHandler method cookieFreshness.
private HttpResponse cookieFreshness(HttpRequest request) {
Slime slime = new Slime();
String passThruHeader = request.getHeader(SetBouncerPassthruHeaderFilter.BOUNCER_PASSTHRU_HEADER_FIELD);
slime.setObject().setBool("shouldRefreshCookie", !SetBouncerPassthruHeaderFilter.BOUNCER_PASSTHRU_COOKIE_OK.equals(passThruHeader));
return new SlimeJsonResponse(slime);
}
use of com.yahoo.slime.Slime in project vespa by vespa-engine.
the class ApplicationApiHandler method tenants.
private HttpResponse tenants(HttpRequest request) {
Slime slime = new Slime();
Cursor response = slime.setArray();
for (Tenant tenant : controller.tenants().asList()) tenantInTenantsListToSlime(tenant, request.getUri(), response.addObject());
return new SlimeJsonResponse(slime);
}
Aggregations