Search in sources :

Example 86 with Json

use of org.infinispan.commons.dataconversion.internal.Json in project infinispan by infinispan.

the class ContainerResourceTest method testHealth.

@Test
public void testHealth() {
    RestResponse response = join(cacheManagerClient.health());
    ResponseAssertion.assertThat(response).isOk();
    Json jsonNode = Json.read(response.getBody());
    Json clusterHealth = jsonNode.at("cluster_health");
    // One of the caches is in FAILED state
    assertEquals(clusterHealth.at("health_status").asString(), HealthStatus.FAILED.toString());
    assertEquals(clusterHealth.at("number_of_nodes").asInteger(), 2);
    assertEquals(clusterHealth.at("node_names").asJsonList().size(), 2);
    Json cacheHealth = jsonNode.at("cache_health");
    List<String> cacheNames = extractCacheNames(cacheHealth);
    assertTrue(cacheNames.contains("cache1"));
    assertTrue(cacheNames.contains("cache2"));
    response = join(cacheManagerClient.health(true));
    ResponseAssertion.assertThat(response).isOk();
    ResponseAssertion.assertThat(response).hasNoContent();
}
Also used : RestResponse(org.infinispan.client.rest.RestResponse) Json(org.infinispan.commons.dataconversion.internal.Json) Test(org.testng.annotations.Test)

Example 87 with Json

use of org.infinispan.commons.dataconversion.internal.Json in project infinispan by infinispan.

the class ContainerResourceTest method testCachesWithIgnoreCache.

@Test
public void testCachesWithIgnoreCache() {
    if (security) {
        Security.doAs(TestingUtil.makeSubject(AuthorizationPermission.ADMIN.name()), (PrivilegedAction<CompletableFuture<Void>>) () -> serverStateManager.ignoreCache("cache1"));
    } else {
        serverStateManager.ignoreCache("cache1");
    }
    RestResponse response = join(cacheManagerClient.caches());
    ResponseAssertion.assertThat(response).isOk();
    String json = response.getBody();
    Json jsonNode = Json.read(json);
    List<String> names = find(jsonNode, "name");
    Set<String> expectedNames = Util.asSet("defaultcache", "cache1", "cache2", "invalid");
    assertEquals(expectedNames, new HashSet<>(names));
    List<String> status = find(jsonNode, "status");
    assertTrue(status.contains("RUNNING"));
    assertTrue(status.contains("IGNORED"));
}
Also used : CompletableFuture(java.util.concurrent.CompletableFuture) RestResponse(org.infinispan.client.rest.RestResponse) Json(org.infinispan.commons.dataconversion.internal.Json) Test(org.testng.annotations.Test)

Example 88 with Json

use of org.infinispan.commons.dataconversion.internal.Json in project infinispan by infinispan.

the class CounterResourceTest method testWeakCounterLifecycle.

@Test
public void testWeakCounterLifecycle() {
    CounterConfiguration counterConfig = CounterConfiguration.builder(CounterType.WEAK).initialValue(5).storage(Storage.VOLATILE).concurrencyLevel(6).build();
    createCounter("sample-counter", counterConfig);
    RestCounterClient counterClient = client.counter("sample-counter");
    RestResponse response = join(counterClient.configuration(APPLICATION_JSON_TYPE));
    Json jsonNode = Json.read(response.getBody());
    Json config = jsonNode.at("weak-counter");
    assertEquals(config.at("initial-value").asInteger(), 5);
    assertEquals(config.at("storage").asString(), "VOLATILE");
    assertEquals(config.at("concurrency-level").asInteger(), 6);
    response = join(counterClient.delete());
    assertThat(response).isOk();
    response = join(counterClient.configuration());
    assertThat(response).isNotFound();
}
Also used : RestCounterClient(org.infinispan.client.rest.RestCounterClient) RestResponse(org.infinispan.client.rest.RestResponse) Json(org.infinispan.commons.dataconversion.internal.Json) AbstractCounterConfiguration(org.infinispan.counter.configuration.AbstractCounterConfiguration) CounterConfiguration(org.infinispan.counter.api.CounterConfiguration) Test(org.testng.annotations.Test)

Example 89 with Json

use of org.infinispan.commons.dataconversion.internal.Json in project infinispan by infinispan.

the class ServerResource method connectorIpFilterSet.

private CompletionStage<RestResponse> connectorIpFilterSet(RestRequest restRequest) {
    NettyRestResponse.Builder builder = new NettyRestResponse.Builder().status(NO_CONTENT);
    String connectorName = restRequest.variables().get("connector");
    ProtocolServer connector = invocationHelper.getServer().getProtocolServers().get(connectorName);
    if (connector == null)
        return completedFuture(builder.status(NOT_FOUND).build());
    Json json = Json.read(restRequest.contents().asString());
    if (!json.isArray()) {
        return completedFuture(builder.status(BAD_REQUEST).build());
    }
    List<Json> list = json.asJsonList();
    List<IpSubnetFilterRule> rules = new ArrayList<>(list.size());
    for (Json o : list) {
        if (!o.has("type") || !o.has("cidr")) {
            return completedFuture(builder.status(BAD_REQUEST).build());
        } else {
            rules.add(new IpSubnetFilterRule(o.at("cidr").asString(), IpFilterRuleType.valueOf(o.at("type").asString())));
        }
    }
    // Verify that none of the REJECT rules match the address from which the request was made
    if (connector.equals(invocationHelper.getProtocolServer()) || connector.equals(invocationHelper.getProtocolServer().getEnclosingProtocolServer())) {
        InetSocketAddress remoteAddress = restRequest.getRemoteAddress();
        for (IpSubnetFilterRule rule : rules) {
            if (rule.ruleType() == IpFilterRuleType.REJECT && rule.matches(remoteAddress)) {
                return completedFuture(builder.status(CONFLICT).entity(Messages.MSG.rejectRuleMatchesRequestAddress(rule, remoteAddress)).build());
            }
        }
    }
    ServerStateManager serverStateManager = invocationHelper.getServer().getServerStateManager();
    return Security.doAs(restRequest.getSubject(), (PrivilegedAction<CompletionStage<RestResponse>>) () -> serverStateManager.setConnectorIpFilterRule(connectorName, rules).thenApply(r -> builder.build()));
}
Also used : ProtocolServer(org.infinispan.server.core.ProtocolServer) ServerStateManager(org.infinispan.server.core.ServerStateManager) InetSocketAddress(java.net.InetSocketAddress) ArrayList(java.util.ArrayList) ResourceUtil.addEntityAsJson(org.infinispan.rest.resources.ResourceUtil.addEntityAsJson) Json(org.infinispan.commons.dataconversion.internal.Json) NettyRestResponse(org.infinispan.rest.NettyRestResponse) CompletionStage(java.util.concurrent.CompletionStage) IpSubnetFilterRule(org.infinispan.server.core.transport.IpSubnetFilterRule)

Example 90 with Json

use of org.infinispan.commons.dataconversion.internal.Json in project infinispan by infinispan.

the class ServerResource method ipFilterRulesAsJson.

private Json ipFilterRulesAsJson(ProtocolServer connector) {
    Collection<IpSubnetFilterRule> rules = connector.getConfiguration().ipFilter().rules();
    Json array = Json.array();
    for (IpSubnetFilterRule rule : rules) {
        array.add(Json.object().set("type", rule.ruleType().name().toLowerCase()).set("from", rule.cidr()));
    }
    return array;
}
Also used : ResourceUtil.addEntityAsJson(org.infinispan.rest.resources.ResourceUtil.addEntityAsJson) Json(org.infinispan.commons.dataconversion.internal.Json) IpSubnetFilterRule(org.infinispan.server.core.transport.IpSubnetFilterRule)

Aggregations

Json (org.infinispan.commons.dataconversion.internal.Json)130 RestResponse (org.infinispan.client.rest.RestResponse)51 Test (org.testng.annotations.Test)51 RestClient (org.infinispan.client.rest.RestClient)15 Util.getResourceAsString (org.infinispan.commons.util.Util.getResourceAsString)13 Test (org.junit.Test)13 RestCacheClient (org.infinispan.client.rest.RestCacheClient)12 MultipleCacheManagersTest (org.infinispan.test.MultipleCacheManagersTest)12 AbstractMultipleSitesTest (org.infinispan.xsite.AbstractMultipleSitesTest)7 ArrayList (java.util.ArrayList)6 List (java.util.List)6 Map (java.util.Map)6 NettyRestResponse (org.infinispan.rest.NettyRestResponse)6 ResourceUtil.addEntityAsJson (org.infinispan.rest.resources.ResourceUtil.addEntityAsJson)6 HashMap (java.util.HashMap)5 RestEntity (org.infinispan.client.rest.RestEntity)5 IOException (java.io.IOException)4 HashSet (java.util.HashSet)4 Request (okhttp3.Request)4 RestSchemaClient (org.infinispan.client.rest.RestSchemaClient)4