Example usage for org.apache.cassandra.service StorageServiceMBean getTokenToEndpointMap

List of usage examples for org.apache.cassandra.service StorageServiceMBean getTokenToEndpointMap

Introduction

In this page you can find the example usage for org.apache.cassandra.service StorageServiceMBean getTokenToEndpointMap.

Prototype

@Deprecated
public Map<String, String> getTokenToEndpointMap();

Source Link

Document

Retrieve a map of tokens to endpoints, including the bootstrapping ones.

Usage

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