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());
}
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);
}
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());
}
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);
}
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;
}
Aggregations