Search in sources :

Example 1 with GridClientNodeBean

use of org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean in project ignite by apache.

the class RestBinaryProtocolSelfTest method testNode.

/**
     * @throws Exception If failed.
     */
public void testNode() throws Exception {
    assertNull(client.node(UUID.randomUUID(), false, false));
    assertNull(client.node("wrongHost", false, false));
    GridClientNodeBean node = client.node(grid().localNode().id(), true, true);
    assertNotNull(node);
    assertFalse(node.getAttributes().isEmpty());
    assertNotNull(node.getMetrics());
    assertNotNull(node.getTcpAddresses());
    assertEquals(PORT, node.getTcpPort());
    assertEquals(grid().localNode().id(), node.getNodeId());
    node = client.node(grid().localNode().id(), false, false);
    assertNotNull(node);
    assertNull(node.getAttributes());
    assertNull(node.getMetrics());
    assertNotNull(node.getTcpAddresses());
    assertEquals(PORT, node.getTcpPort());
    assertEquals(grid().localNode().id(), node.getNodeId());
    node = client.node(HOST, true, true);
    assertNotNull(node);
    assertFalse(node.getAttributes().isEmpty());
    assertNotNull(node.getMetrics());
    assertNotNull(node.getTcpAddresses());
    assertEquals(PORT, node.getTcpPort());
    assertEquals(grid().localNode().id(), node.getNodeId());
    node = client.node(HOST, false, false);
    assertNotNull(node);
    assertNull(node.getAttributes());
    assertNull(node.getMetrics());
    assertNotNull(node.getTcpAddresses());
    assertEquals(PORT, node.getTcpPort());
    assertEquals(grid().localNode().id(), node.getNodeId());
}
Also used : GridClientNodeBean(org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean)

Example 2 with GridClientNodeBean

use of org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean in project ignite by apache.

the class GridClientNioTcpConnection method topology.

/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override
public GridClientFuture<List<GridClientNode>> topology(boolean inclAttrs, boolean inclMetrics, UUID destNodeId) throws GridClientConnectionResetException, GridClientClosedException {
    GridClientTopologyRequest msg = new GridClientTopologyRequest();
    TcpClientFuture fut = new TcpClientFuture() {

        @Override
        public void onDone(Object res) {
            Collection<GridClientNodeBean> beans = (Collection<GridClientNodeBean>) res;
            Collection<GridClientNodeImpl> nodes = new ArrayList<>(beans.size());
            for (GridClientNodeBean bean : beans) nodes.add(nodeBeanToNode(bean));
            super.onDone(top.updateTopology(nodes));
        }
    };
    msg.includeAttributes(inclAttrs);
    msg.includeMetrics(inclMetrics);
    msg.destinationId(destNodeId);
    return makeRequest(msg, fut);
}
Also used : GridClientNodeBean(org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean) GridClientNodeImpl(org.apache.ignite.internal.client.impl.GridClientNodeImpl) ArrayList(java.util.ArrayList) Collection(java.util.Collection) GridClientTopologyRequest(org.apache.ignite.internal.processors.rest.client.message.GridClientTopologyRequest)

Example 3 with GridClientNodeBean

use of org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean in project ignite by apache.

the class RestBinaryProtocolSelfTest method testTopology.

/**
     * @throws Exception If failed.
     */
public void testTopology() throws Exception {
    List<GridClientNodeBean> top = client.topology(true, true);
    assertNotNull(top);
    assertEquals(1, top.size());
    GridClientNodeBean node = F.first(top);
    assertNotNull(node);
    assertFalse(node.getAttributes().isEmpty());
    assertNotNull(node.getMetrics());
    assertNotNull(node.getTcpAddresses());
    assertEquals(grid().localNode().id(), node.getNodeId());
    top = client.topology(false, false);
    assertNotNull(top);
    assertEquals(1, top.size());
    node = F.first(top);
    assertNotNull(node);
    assertNull(node.getAttributes());
    assertNull(node.getMetrics());
    assertNotNull(node.getTcpAddresses());
    assertEquals(grid().localNode().id(), node.getNodeId());
}
Also used : GridClientNodeBean(org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean)

Example 4 with GridClientNodeBean

use of org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean in project ignite by apache.

the class GridClientNioTcpConnection method node.

/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override
public GridClientFuture<GridClientNode> node(final UUID id, boolean inclAttrs, boolean inclMetrics, UUID destNodeId) throws GridClientConnectionResetException, GridClientClosedException {
    assert id != null;
    TcpClientFuture fut = refreshNodeReqs.get(id);
    // Return request that is in progress.
    if (fut != null)
        return fut;
    GridClientTopologyRequest msg = new GridClientTopologyRequest();
    fut = new TcpClientFuture() {

        @Override
        public void onDone(Object res) {
            //Clean up the node id requests map.
            refreshNodeReqs.remove(id);
            GridClientNodeImpl node = nodeBeanToNode((GridClientNodeBean) res);
            if (node != null)
                top.updateNode(node);
            super.onDone(node);
        }
    };
    GridClientFutureAdapter old = refreshNodeReqs.putIfAbsent(id, fut);
    // If concurrent thread put request, do not send the message.
    if (old != null)
        return old;
    msg.nodeId(id);
    msg.includeAttributes(inclAttrs);
    msg.includeMetrics(inclMetrics);
    msg.destinationId(destNodeId);
    return makeRequest(msg, fut);
}
Also used : GridClientNodeBean(org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean) GridClientNodeImpl(org.apache.ignite.internal.client.impl.GridClientNodeImpl) GridClientTopologyRequest(org.apache.ignite.internal.processors.rest.client.message.GridClientTopologyRequest) GridClientFutureAdapter(org.apache.ignite.internal.client.impl.GridClientFutureAdapter)

Example 5 with GridClientNodeBean

use of org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean in project ignite by apache.

the class GridTopologyCommandHandler method createNodeBean.

/**
     * Creates node bean out of grid node. Notice that cache attribute is handled separately.
     *
     * @param node Grid node.
     * @param mtr {@code true} to add metrics.
     * @param attr {@code true} to add attributes.
     * @return Grid Node bean.
     */
private GridClientNodeBean createNodeBean(ClusterNode node, boolean mtr, boolean attr) {
    assert node != null;
    GridClientNodeBean nodeBean = new GridClientNodeBean();
    nodeBean.setNodeId(node.id());
    nodeBean.setConsistentId(node.consistentId());
    nodeBean.setTcpPort(attribute(node, ATTR_REST_TCP_PORT, 0));
    nodeBean.setTcpAddresses(nonEmptyList(node.<Collection<String>>attribute(ATTR_REST_TCP_ADDRS)));
    nodeBean.setTcpHostNames(nonEmptyList(node.<Collection<String>>attribute(ATTR_REST_TCP_HOST_NAMES)));
    GridCacheProcessor cacheProc = ctx.cache();
    Map<String, CacheMode> nodeCaches = ctx.discovery().nodeCaches(node);
    Collection<GridClientCacheBean> caches = new ArrayList<>(nodeCaches.size());
    for (String cacheName : nodeCaches.keySet()) caches.add(createCacheBean(cacheProc.cacheConfiguration(cacheName)));
    nodeBean.setCaches(caches);
    if (mtr) {
        ClusterMetrics metrics = node.metrics();
        GridClientNodeMetricsBean metricsBean = new GridClientNodeMetricsBean();
        metricsBean.setStartTime(metrics.getStartTime());
        metricsBean.setAverageActiveJobs(metrics.getAverageActiveJobs());
        metricsBean.setAverageCancelledJobs(metrics.getAverageCancelledJobs());
        metricsBean.setAverageCpuLoad(metrics.getAverageCpuLoad());
        metricsBean.setAverageJobExecuteTime(metrics.getAverageJobExecuteTime());
        metricsBean.setAverageJobWaitTime(metrics.getAverageJobWaitTime());
        metricsBean.setAverageRejectedJobs(metrics.getAverageRejectedJobs());
        metricsBean.setAverageWaitingJobs(metrics.getAverageWaitingJobs());
        metricsBean.setCurrentActiveJobs(metrics.getCurrentActiveJobs());
        metricsBean.setCurrentCancelledJobs(metrics.getCurrentCancelledJobs());
        metricsBean.setCurrentCpuLoad(metrics.getCurrentCpuLoad());
        metricsBean.setCurrentGcCpuLoad(metrics.getCurrentGcCpuLoad());
        metricsBean.setCurrentDaemonThreadCount(metrics.getCurrentDaemonThreadCount());
        metricsBean.setCurrentIdleTime(metrics.getCurrentIdleTime());
        metricsBean.setCurrentJobExecuteTime(metrics.getCurrentJobExecuteTime());
        metricsBean.setCurrentJobWaitTime(metrics.getCurrentJobWaitTime());
        metricsBean.setCurrentRejectedJobs(metrics.getCurrentRejectedJobs());
        metricsBean.setCurrentThreadCount(metrics.getCurrentThreadCount());
        metricsBean.setCurrentWaitingJobs(metrics.getCurrentWaitingJobs());
        metricsBean.setHeapMemoryCommitted(metrics.getHeapMemoryCommitted());
        metricsBean.setHeapMemoryInitialized(metrics.getHeapMemoryInitialized());
        metricsBean.setHeapMemoryMaximum(metrics.getHeapMemoryMaximum());
        metricsBean.setHeapMemoryUsed(metrics.getHeapMemoryUsed());
        metricsBean.setLastDataVersion(metrics.getLastDataVersion());
        metricsBean.setLastUpdateTime(metrics.getLastUpdateTime());
        metricsBean.setMaximumActiveJobs(metrics.getMaximumActiveJobs());
        metricsBean.setMaximumCancelledJobs(metrics.getMaximumCancelledJobs());
        metricsBean.setMaximumJobExecuteTime(metrics.getMaximumJobExecuteTime());
        metricsBean.setMaximumJobWaitTime(metrics.getMaximumJobWaitTime());
        metricsBean.setMaximumRejectedJobs(metrics.getMaximumRejectedJobs());
        metricsBean.setMaximumThreadCount(metrics.getMaximumThreadCount());
        metricsBean.setMaximumWaitingJobs(metrics.getMaximumWaitingJobs());
        metricsBean.setNodeStartTime(metrics.getNodeStartTime());
        metricsBean.setNonHeapMemoryCommitted(metrics.getNonHeapMemoryCommitted());
        metricsBean.setNonHeapMemoryInitialized(metrics.getNonHeapMemoryInitialized());
        metricsBean.setNonHeapMemoryMaximum(metrics.getNonHeapMemoryMaximum());
        metricsBean.setNonHeapMemoryUsed(metrics.getNonHeapMemoryUsed());
        metricsBean.setStartTime(metrics.getStartTime());
        metricsBean.setTotalCancelledJobs(metrics.getTotalCancelledJobs());
        metricsBean.setTotalCpus(metrics.getTotalCpus());
        metricsBean.setTotalExecutedJobs(metrics.getTotalExecutedJobs());
        metricsBean.setTotalIdleTime(metrics.getTotalIdleTime());
        metricsBean.setTotalRejectedJobs(metrics.getTotalRejectedJobs());
        metricsBean.setTotalStartedThreadCount(metrics.getTotalStartedThreadCount());
        metricsBean.setTotalExecutedTasks(metrics.getTotalExecutedTasks());
        metricsBean.setSentMessagesCount(metrics.getSentMessagesCount());
        metricsBean.setSentBytesCount(metrics.getSentBytesCount());
        metricsBean.setReceivedMessagesCount(metrics.getReceivedMessagesCount());
        metricsBean.setReceivedBytesCount(metrics.getReceivedBytesCount());
        metricsBean.setUpTime(metrics.getUpTime());
        nodeBean.setMetrics(metricsBean);
    }
    if (attr) {
        Map<String, Object> attrs = new HashMap<>(node.attributes());
        attrs.remove(ATTR_CACHE);
        attrs.remove(ATTR_TX_CONFIG);
        attrs.remove(ATTR_SECURITY_SUBJECT);
        attrs.remove(ATTR_SECURITY_SUBJECT_V2);
        attrs.remove(ATTR_SECURITY_CREDENTIALS);
        attrs.remove(ATTR_BINARY_CONFIGURATION);
        attrs.remove(ATTR_NODE_CONSISTENT_ID);
        for (Iterator<Map.Entry<String, Object>> i = attrs.entrySet().iterator(); i.hasNext(); ) {
            Map.Entry<String, Object> e = i.next();
            if (!e.getKey().startsWith("org.apache.ignite.") && !e.getKey().startsWith("plugins.") && System.getProperty(e.getKey()) == null) {
                i.remove();
                continue;
            }
            if (e.getValue() != null) {
                if (e.getValue().getClass().isEnum() || e.getValue() instanceof InetAddress)
                    e.setValue(e.getValue().toString());
                else if (e.getValue().getClass().isArray())
                    i.remove();
            }
        }
        nodeBean.setAttributes(attrs);
    }
    return nodeBean;
}
Also used : GridClientNodeBean(org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean) HashMap(java.util.HashMap) GridClientCacheBean(org.apache.ignite.internal.processors.rest.client.message.GridClientCacheBean) ArrayList(java.util.ArrayList) GridClientNodeMetricsBean(org.apache.ignite.internal.processors.rest.client.message.GridClientNodeMetricsBean) GridClientCacheMode(org.apache.ignite.internal.client.GridClientCacheMode) CacheMode(org.apache.ignite.cache.CacheMode) GridCacheProcessor(org.apache.ignite.internal.processors.cache.GridCacheProcessor) ClusterMetrics(org.apache.ignite.cluster.ClusterMetrics) Collection(java.util.Collection) HashMap(java.util.HashMap) Map(java.util.Map) InetAddress(java.net.InetAddress)

Aggregations

GridClientNodeBean (org.apache.ignite.internal.processors.rest.client.message.GridClientNodeBean)5 ArrayList (java.util.ArrayList)2 Collection (java.util.Collection)2 GridClientNodeImpl (org.apache.ignite.internal.client.impl.GridClientNodeImpl)2 GridClientTopologyRequest (org.apache.ignite.internal.processors.rest.client.message.GridClientTopologyRequest)2 InetAddress (java.net.InetAddress)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 CacheMode (org.apache.ignite.cache.CacheMode)1 ClusterMetrics (org.apache.ignite.cluster.ClusterMetrics)1 GridClientCacheMode (org.apache.ignite.internal.client.GridClientCacheMode)1 GridClientFutureAdapter (org.apache.ignite.internal.client.impl.GridClientFutureAdapter)1 GridCacheProcessor (org.apache.ignite.internal.processors.cache.GridCacheProcessor)1 GridClientCacheBean (org.apache.ignite.internal.processors.rest.client.message.GridClientCacheBean)1 GridClientNodeMetricsBean (org.apache.ignite.internal.processors.rest.client.message.GridClientNodeMetricsBean)1