List of usage examples for org.apache.cassandra.service StorageServiceMBean getOwnership
@Deprecated
public Map<InetAddress, Float> getOwnership();
From source file:org.wso2.carbon.cassandra.mgt.CassandraClusterAdmin.java
License:Apache License
/** * Get information about all the nodes in a cluster * * @return an array of <code>NodeInformation</code> * @throws CassandraServerManagementException * for errors during accessing nodes *//*from w ww.j a v a2 s. c o m*/ public NodeInformation[] getNodes() throws CassandraServerManagementException { StorageServiceMBean ssMBean = null; try { ssMBean = CassandraAdminDataHolder.getInstance().getCassandraMBeanLocator().locateStorageServiceMBean(); } catch (CassandraServerManagementException e) { handleException("Error occurred while retrieving node information list", e); } if (ssMBean == null) { handleException("Storage Server MBean is null"); } Map<String, String> tokenToEndpoint = ssMBean.getTokenToEndpointMap(); List<String> sortedTokens = new ArrayList<String>(tokenToEndpoint.keySet()); Collections.sort(sortedTokens); /* Calculate per-token ownership of the ring */ Map<InetAddress, Float> ownerships = ssMBean.getOwnership(); List<NodeInformation> nodeInfoList = new ArrayList<NodeInformation>(); for (String token : sortedTokens) { String primaryEndpoint = tokenToEndpoint.get(token); String status = ssMBean.getLiveNodes().contains(primaryEndpoint) ? CassandraManagementConstants.NodeStatuses.NODE_STATUS_UP : ssMBean.getUnreachableNodes().contains(primaryEndpoint) ? CassandraManagementConstants.NodeStatuses.NODE_STATUS_DOWN : CassandraManagementConstants.NodeStatuses.NODE_STATUS_UNKNOWN; String state = ssMBean.getJoiningNodes().contains(primaryEndpoint) ? CassandraManagementConstants.NodeStatuses.NODE_STATUS_JOINING : ssMBean.getLeavingNodes().contains(primaryEndpoint) ? CassandraManagementConstants.NodeStatuses.NODE_STATUS_LEAVING : CassandraManagementConstants.NodeStatuses.NODE_STATUS_NORMAL; Map<String, String> loadMap = ssMBean.getLoadMap(); String load = loadMap.containsKey(primaryEndpoint) ? loadMap.get(primaryEndpoint) : CassandraManagementConstants.NodeStatuses.NODE_STATUS_UNKNOWN; Float ownership = ownerships.get(token); String owns = "N/A"; if (ownership != null) { owns = new DecimalFormat("##0.00%").format(ownership); } NodeInformation nodeInfo = new NodeInformation(); nodeInfo.setAddress(primaryEndpoint); nodeInfo.setState(state); nodeInfo.setStatus(status); nodeInfo.setOwn(owns); nodeInfo.setLoad(load); nodeInfo.setToken(token); nodeInfoList.add(nodeInfo); } return nodeInfoList.toArray(new NodeInformation[nodeInfoList.size()]); }