@Override public void printResources(List<Resource> resources) { resources.forEach(resource -> System.out.println(String.format("%s %s", resource.id(), resource.concurrency()))); }
@Override public CompletionStage<Resource> resourceEdit(String resourceId, int concurrency) { final Resource resource = Resource.create(resourceId, concurrency); return execute(forUri(urlBuilder("resources", resourceId), "PUT", resource), Resource.class); }
@Override public void storeResource(Resource resource) throws IOException { resourceStore.put(resource.id(), resource); }
@Override public CompletionStage<Resource> resourceCreate(String resourceId, int concurrency) { final Resource resource = Resource.create(resourceId, concurrency); return execute(forUri(urlBuilder("resources"), "POST", resource), Resource.class); }
private Response<Resource> updateResource(String id, Resource resource) { if (!resource.id().equals(id)) { return Response.forStatus( Status.BAD_REQUEST.withReasonPhrase("ID of payload does not match ID in uri.")); } try { storage.storeResource(resource); } catch (IOException e) { throw new RuntimeException(e); } return Response.forStatus(Status.OK).withPayload(resource); } }
@Override public void printResources(List<Resource> resources) { final String format = "%50s %12s"; System.out.println(String.format(format, "RESOURCE", "CONCURRENCY")); resources.forEach(resource -> System.out.println( String.format(format, resource.id(), resource.concurrency()))); }
private Resource entityToResource(Entity entity) { return Resource.create(entity.getKey().getName(), entity.getLong(PROPERTY_LIMIT)); }
private void updateResourceStats(Map<String, Resource> resources, Map<String, Long> currentResourceUsage) { resources.values().forEach(r -> stats.recordResourceConfigured(r.id(), r.concurrency())); currentResourceUsage.forEach(stats::recordResourceUsed); Sets.difference(resources.keySet(), currentResourceUsage.keySet()) .forEach(r -> stats.recordResourceUsed(r, 0)); }
concurrency -> resources.put(GLOBAL_RESOURCE_ID, Resource.create(GLOBAL_RESOURCE_ID, concurrency)));
private Entity resourceToEntity(CheckedDatastore datastore, Resource resource) { final Key key = datastore.newKeyFactory().setKind(KIND_COUNTER_LIMIT).newKey(resource.id()); return Entity.newBuilder(key) .set(PROPERTY_LIMIT, resource.concurrency()) .build(); }