if (rsStatus != null) { String addressStr = Strings.join(",", client.getServerAddressList()); String replicaSetName = rsStatus.getName(); replicaSetSpecs.add(new ReplicaSet(addressStr, replicaSetName, null));
private List<Shard> getShards(boolean isMongos) { List<Shard> shards = new ArrayList<>(); if (isMongos) { try (DBCursor cursor = getConfigDb().getCollection("shards").find()) { while (cursor.hasNext()) { DBObject item = cursor.next(); List<ServerAddress> shardServers = getServerAddressForReplica(item); if (shardServers != null) { String shardName = item.get(MongoDBRiver.MONGODB_ID_FIELD).toString(); MongoClient shardClient = mongoClientService.getMongoShardClient(definition, shardServers); ensureIsReplicaSet(shardClient); Timestamp<?> latestOplogTimestamp = getCurrentOplogTimestamp(shardClient); shards.add(new Shard(shardName, shardServers, latestOplogTimestamp)); } } } return shards; } else { ensureIsReplicaSet(clusterClient); List<ServerAddress> servers = clusterClient.getServerAddressList(); Timestamp<?> latestOplogTimestamp = getCurrentOplogTimestamp(clusterClient); shards.add(new Shard("unsharded", servers, latestOplogTimestamp)); return shards; } }
@Override public List<ServerAddress> servers() { return client.getServerAddressList(); } @Override
private ServerAddress getServerAddress() { return client.getServerAddressList().get(0); }
public boolean initializeReplicaSet(String replicaSetName, Integer id) { ServerAddress primary = client.getServerAddressList().get(0); BasicBSONObject config = ReplicaSetConfig.builder(replicaSetName) .member(primary, id) .build(); BasicDBObject dbObject = new BasicDBObject("replSetInitiate", config); LOG.debug("Initiating replica set with: " + dbObject); Optional<CommandResult> result = runDBCommand("admin", dbObject); if (result.isPresent() && result.get().ok() && LOG.isDebugEnabled()) { LOG.debug("Completed intiating MongoDB replica set {} on entity {}", replicaSetName, this); } return result.isPresent() && result.get().ok(); }
rootUri = buildRootUri(ns.getDatabaseName(), ns.getCollectionName(), client.getServerAddressList());