/** * @param tags tags map * @return a good secondary by tag value or null if can't find one */ ServerAddress getASecondary(DBObject tags) { // store the reference in local, so that it doesn't change out from under us while looping List<Tag> tagList = new ArrayList<Tag>(); for (String key : tags.keySet()) { tagList.add(new Tag(key, tags.get(key).toString())); } Node node = _replicaSetHolder.get().getASecondary(tagList); if (node != null) { return node.getServerAddress(); } return null; }
List<ServerAddress> getServerAddressList() { List<ServerAddress> addrs = new ArrayList<ServerAddress>(); for (Node node : _replicaSetHolder.get().getAll()) addrs.add(node.getServerAddress()); return addrs; }
/** @return master or null if don't have one */ public ServerAddress getMaster() { Node n = getMasterNode(); if (n == null) return null; return n.getServerAddress(); }