List of usage examples for org.apache.cassandra.service StorageServiceMBean getTokenToEndpointMap
@Deprecated
public Map<String, String> getTokenToEndpointMap();
From source file:org.ayache.cassandra.repair.scheduler.NodeChooserTest.java
/** * Test of getNextNodeToRepair method, of class NodeChooser. */// w w w.j a va2s . c om @Test public void testGetNextNodeToRepair() throws Exception { System.out.println("getNextNodeToRepair"); StorageServiceMBean mock = Mockito.mock(StorageServiceMBean.class); List<String> nodes = Arrays.asList("127.0.0.1", "127.0.0.2", "127.0.0.3", "127.0.0.4", "127.0.0.5", "127.0.0.6", "127.0.0.7", "127.0.0.8", "127.0.0.9"); Map<InetAddress, Float> ownership = new HashMap<>(); Map<String, String> tokenToEndpoints = new LinkedHashMap<>(); int Rf = 3; for (String node : nodes) { ownership.put(InetAddress.getByName(node), 1f / nodes.size() * (float) Rf); tokenToEndpoints.put(node, node); } Mockito.when(mock.getKeyspaces()).thenReturn(Arrays.asList("TestKeyspace")); Mockito.when(mock.effectiveOwnership(Mockito.anyString())).thenReturn(ownership); Mockito.when(mock.getLiveNodes()).thenReturn(nodes); Mockito.when(mock.getTokenToEndpointMap()).thenReturn(tokenToEndpoints); NodeChooser instance = new NodeChooser(mock, new EndpointSnitchInfoMBean() { @Override public String getRack(String host) throws UnknownHostException { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public String getDatacenter(String host) throws UnknownHostException { return "DC1"; } @Override public String getSnitchName() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }, "DC1", null, true); Collection<String> expResult = new HashSet<>(Arrays.asList("127.0.0.1", "127.0.0.5")); Collection<String> result = instance.getNextNodeToRepair(); assertEquals(expResult, result); instance = new NodeChooser(mock, new EndpointSnitchInfoMBean() { @Override public String getRack(String host) throws UnknownHostException { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public String getDatacenter(String host) throws UnknownHostException { return "DC1"; } @Override public String getSnitchName() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }, "DC1", "127.0.0.2", true); expResult = new HashSet<>(Arrays.asList("127.0.0.3", "127.0.0.7")); result = instance.getNextNodeToRepair(); assertEquals(expResult, result); instance = new NodeChooser(mock, new EndpointSnitchInfoMBean() { @Override public String getRack(String host) throws UnknownHostException { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public String getDatacenter(String host) throws UnknownHostException { return "DC1"; } @Override public String getSnitchName() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }, "DC1", "127.0.0.8", true); expResult = new HashSet<>(Arrays.asList("127.0.0.9", "127.0.0.4")); result = instance.getNextNodeToRepair(); assertEquals(expResult, result); instance = new NodeChooser(mock, new EndpointSnitchInfoMBean() { @Override public String getRack(String host) throws UnknownHostException { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public String getDatacenter(String host) throws UnknownHostException { return "DC1"; } @Override public String getSnitchName() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }, "DC1", "127.0.0.9", true); expResult = new HashSet<>(Arrays.asList("127.0.0.1", "127.0.0.5")); result = instance.getNextNodeToRepair(); assertEquals(expResult, result); // // TODO review the generated test code and remove the default call to fail. // fail("The test case is a prototype."); }
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 */// ww w .jav a 2 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()]); }