use of org.infinispan.client.rest.RestResponse in project infinispan by infinispan.
the class RestMetricsResource method testTimerMetrics.
@Test
public void testTimerMetrics() throws Exception {
RestClient client = SERVER_TEST.rest().create();
RestMetricsClient metricsClient = client.metrics();
// this is a histogram of write times
String metricName = "cache_manager_default_cache_" + SERVER_TEST.getMethodName() + "_statistics_store_times";
int NUM_PUTS = 10;
try (RestResponse response = sync(metricsClient.metrics())) {
assertEquals(200, response.getStatus());
checkIsPrometheus(response.contentType());
String body = response.getBody();
assertThat(body).contains("base", "vendor", metricName);
checkRule(body, "vendor_" + metricName, (stringValue) -> {
double parsed = Double.parseDouble(stringValue);
assertThat(parsed).isZero();
});
}
// put some entries then check that the stats were updated
RestCacheClient cache = client.cache(SERVER_TEST.getMethodName());
for (int i = 0; i < NUM_PUTS; i++) {
RestResponse putResp = sync(cache.put("k" + i, "v" + i));
assertEquals(204, putResp.getStatus());
}
try (RestResponse response = sync(metricsClient.metrics())) {
assertEquals(200, response.getStatus());
checkIsPrometheus(response.contentType());
String body = response.getBody();
assertThat(body).contains("base", "vendor", metricName);
checkRule(body, "vendor_" + metricName, (stringValue) -> {
double parsed = Double.parseDouble(stringValue);
assertThat(parsed).isPositive();
});
}
}
use of org.infinispan.client.rest.RestResponse in project infinispan by infinispan.
the class RestMetricsResource method testBaseAndVendorMetrics.
@Test
public void testBaseAndVendorMetrics() throws Exception {
RestMetricsClient metricsClient = SERVER_TEST.rest().create().metrics();
try (RestResponse response = sync(metricsClient.metrics())) {
assertEquals(200, response.getStatus());
// that is the default
checkIsPrometheus(response.contentType());
String body = response.getBody();
checkRule(body, "base_classloader_loadedClasses_count", (stringValue) -> {
double parsed = Double.parseDouble(stringValue);
assertThat(parsed).isPositive();
});
checkRule(body, "vendor_memoryPool_Metaspace_usage_bytes", (stringValue) -> {
double parsed = Double.parseDouble(stringValue);
assertThat(parsed).isPositive();
});
}
}
use of org.infinispan.client.rest.RestResponse in project infinispan by infinispan.
the class RestOperations method testCounter.
@Test
public void testCounter() {
RestClientConfigurationBuilder builder = new RestClientConfigurationBuilder();
builder.protocol(protocol);
RestClient client = SERVER_TEST.rest().withClientConfiguration(builder).create();
CounterConfiguration configuration = CounterConfiguration.builder(CounterType.WEAK).initialValue(5).concurrencyLevel(1).build();
AbstractCounterConfiguration config = ConvertUtil.configToParsedConfig("test-counter", configuration);
String configJson = AbstractRestResourceTest.counterConfigToJson(config);
RestCounterClient counter = client.counter("test");
RestResponse rsp = sync(counter.create(RestEntity.create(MediaType.APPLICATION_JSON, configJson)));
assertEquals(HttpResponseStatus.OK.code(), rsp.getStatus());
rsp = sync(counter.get());
assertEquals("5", rsp.getBody());
}
use of org.infinispan.client.rest.RestResponse in project infinispan by infinispan.
the class KeyCloakServerRule method getAccessTokenForCredentials.
public String getAccessTokenForCredentials(String realm, String client, String secret, String username, String password, Path trustStore, String trustStorePassword) {
RestClientConfigurationBuilder builder = new RestClientConfigurationBuilder();
int port;
if (trustStore != null) {
builder.security().ssl().trustStoreFileName(trustStore.toString()).trustStorePassword(trustStorePassword.toCharArray()).hostnameVerifier((hostname, session) -> true);
port = 8443;
} else {
port = 8080;
}
builder.addServer().host(container.getContainerIpAddress()).port(container.getMappedPort(port)).connectionTimeout(5000).socketTimeout(5000);
try (RestClient c = RestClient.forConfiguration(builder.build())) {
String url = String.format("/auth/realms/%s/protocol/openid-connect/token", realm);
Map<String, List<String>> form = new HashMap<>();
form.put("client_id", Collections.singletonList(client));
form.put("client_secret", Collections.singletonList(secret));
form.put("username", Collections.singletonList(username));
form.put("password", Collections.singletonList(password));
form.put("grant_type", Collections.singletonList("password"));
RestResponse response = c.raw().postForm(url, Collections.singletonMap("Content-Type", "application/x-www-form-urlencoded"), form).toCompletableFuture().get(5, TimeUnit.SECONDS);
Map<String, Json> map = Json.read(response.getBody()).asJsonMap();
return map.get("access_token").asString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
use of org.infinispan.client.rest.RestResponse in project infinispan by infinispan.
the class Common method awaitStatus.
public static RestResponse awaitStatus(Supplier<CompletionStage<RestResponse>> request, int pendingStatus, int completeStatus) {
int count = 0;
RestResponse response;
while ((response = await(request.get())).getStatus() == pendingStatus || count++ < 100) {
response.close();
TestingUtil.sleepThread(10);
}
assertEquals(completeStatus, response.getStatus());
return response;
}
Aggregations