| | |
| | | |
| | | List<DN> userBaseDNs = uData.getBaseDNs(); |
| | | List<Set<ReplicaDescriptor>> replicaLists = new LinkedList<>(); |
| | | |
| | | boolean oneReplicated = false; |
| | | |
| | | boolean displayAll = userBaseDNs.isEmpty(); |
| | | for (SuffixDescriptor suffix : cache.getSuffixes()) |
| | | { |
| | |
| | | TableBuilder tableBuilder = new TableBuilder(); |
| | | |
| | | /* Table headings. */ |
| | | tableBuilder.appendHeading( |
| | | INFO_REPLICATION_STATUS_HEADER_SUFFIX_DN.get()); |
| | | tableBuilder.appendHeading( |
| | | INFO_REPLICATION_STATUS_HEADER_SERVERPORT.get()); |
| | | tableBuilder.appendHeading( |
| | | INFO_REPLICATION_STATUS_HEADER_NUMBER_ENTRIES.get()); |
| | | tableBuilder.appendHeading( |
| | | INFO_REPLICATION_STATUS_HEADER_REPLICATION_ENABLED.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_SUFFIX_DN.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_SERVERPORT.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_NUMBER_ENTRIES.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_REPLICATION_ENABLED.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_DS_ID.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_RS_ID.get()); |
| | | tableBuilder.appendHeading( |
| | | INFO_REPLICATION_STATUS_HEADER_REPLICATION_PORT.get()); |
| | | tableBuilder.appendHeading( |
| | | INFO_REPLICATION_STATUS_HEADER_MISSING_CHANGES.get()); |
| | | tableBuilder.appendHeading( |
| | | INFO_REPLICATION_STATUS_HEADER_AGE_OF_OLDEST_MISSING_CHANGE.get()); |
| | | tableBuilder.appendHeading( |
| | | INFO_REPLICATION_STATUS_HEADER_SECURE.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_REPLICATION_PORT.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_MISSING_CHANGES.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_AGE_OF_OLDEST_MISSING_CHANGE.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_SECURE.get()); |
| | | |
| | | /* Table data. */ |
| | | for (ReplicaDescriptor replica : orderedReplicas) |
| | | { |
| | | ServerDescriptor replicaServer = replica.getServer(); |
| | | |
| | | tableBuilder.startRow(); |
| | | // Suffix DN |
| | | tableBuilder.appendCell(LocalizableMessage.raw(replica.getSuffix().getDN().toString())); |
| | | tableBuilder.appendCell(fromObject(replica.getSuffix().getDN())); |
| | | // Server port |
| | | tableBuilder.appendCell(LocalizableMessage.raw("%s", getHostPort2(replica.getServer(), cnx))); |
| | | tableBuilder.appendCell(fromObject(getHostPort2(replicaServer, cnx))); |
| | | // Number of entries |
| | | int nEntries = replica.getEntries(); |
| | | if (nEntries >= 0) |
| | | { |
| | | tableBuilder.appendCell(LocalizableMessage.raw(String.valueOf(nEntries))); |
| | | } |
| | | else |
| | | { |
| | | tableBuilder.appendCell(EMPTY_MSG); |
| | | } |
| | | tableBuilder.appendCell(fromPositiveInt(replica.getEntries())); |
| | | |
| | | if (!replica.isReplicated()) |
| | | { |
| | |
| | | else |
| | | { |
| | | // Replication enabled |
| | | tableBuilder.appendCell( |
| | | LocalizableMessage.raw(Boolean.toString(replica.isReplicationEnabled()))); |
| | | tableBuilder.appendCell(fromBoolean(replica.isReplicationEnabled())); |
| | | |
| | | // DS instance ID |
| | | tableBuilder.appendCell( |
| | | LocalizableMessage.raw(Integer.toString(replica.getReplicationId()))); |
| | | tableBuilder.appendCell(fromInt(replica.getReplicationId())); |
| | | |
| | | // RS ID and port. |
| | | if (replica.getServer().isReplicationServer()) |
| | | if (replicaServer.isReplicationServer()) |
| | | { |
| | | tableBuilder.appendCell(Integer.toString(replica.getServer() |
| | | .getReplicationServerId())); |
| | | tableBuilder.appendCell(LocalizableMessage.raw(String.valueOf(replica |
| | | .getServer().getReplicationServerPort()))); |
| | | tableBuilder.appendCell(fromInt(replicaServer.getReplicationServerId())); |
| | | tableBuilder.appendCell(fromInt(replicaServer.getReplicationServerPort())); |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | |
| | | // Missing changes |
| | | int missingChanges = replica.getMissingChanges(); |
| | | if (missingChanges >= 0) |
| | | { |
| | | tableBuilder.appendCell(LocalizableMessage.raw(String.valueOf(missingChanges))); |
| | | } |
| | | else |
| | | { |
| | | tableBuilder.appendCell(EMPTY_MSG); |
| | | } |
| | | tableBuilder.appendCell(fromPositiveInt(replica.getMissingChanges())); |
| | | |
| | | // Age of oldest missing change |
| | | long ageOfOldestMissingChange = replica.getAgeOfOldestMissingChange(); |
| | | if (ageOfOldestMissingChange > 0) |
| | | { |
| | | Date date = new Date(ageOfOldestMissingChange); |
| | | tableBuilder.appendCell(LocalizableMessage.raw(date.toString())); |
| | | } |
| | | else |
| | | { |
| | | tableBuilder.appendCell(EMPTY_MSG); |
| | | } |
| | | tableBuilder.appendCell(fromDate(replica.getAgeOfOldestMissingChange())); |
| | | |
| | | // Secure |
| | | if (!replica.getServer().isReplicationServer()) |
| | | if (!replicaServer.isReplicationServer()) |
| | | { |
| | | tableBuilder.appendCell(EMPTY_MSG); |
| | | } |
| | | else |
| | | { |
| | | tableBuilder.appendCell( |
| | | LocalizableMessage.raw(Boolean.toString( |
| | | replica.getServer().isReplicationSecure()))); |
| | | tableBuilder.appendCell(fromBoolean(replicaServer.isReplicationSecure())); |
| | | } |
| | | } |
| | | } |
| | |
| | | // Suffix DN |
| | | tableBuilder.appendCell(EMPTY_MSG); |
| | | // Server port |
| | | tableBuilder.appendCell(LocalizableMessage.raw("%s", getHostPort2(server, cnx))); |
| | | tableBuilder.appendCell(fromObject(getHostPort2(server, cnx))); |
| | | // Number of entries |
| | | if (scriptFriendly) |
| | | { |
| | |
| | | } |
| | | |
| | | // Replication enabled |
| | | tableBuilder.appendCell(Boolean.toString(true)); |
| | | tableBuilder.appendCell(fromBoolean(true)); |
| | | |
| | | // DS ID |
| | | tableBuilder.appendCell(EMPTY_MSG); |
| | | |
| | | // RS ID |
| | | tableBuilder.appendCell( |
| | | LocalizableMessage.raw(Integer.toString(server.getReplicationServerId()))); |
| | | tableBuilder.appendCell(fromInt(server.getReplicationServerId())); |
| | | |
| | | // Replication port |
| | | int replicationPort = server.getReplicationServerPort(); |
| | | if (replicationPort >= 0) |
| | | { |
| | | tableBuilder.appendCell( |
| | | LocalizableMessage.raw(String.valueOf(replicationPort))); |
| | | } |
| | | else |
| | | { |
| | | tableBuilder.appendCell(EMPTY_MSG); |
| | | } |
| | | tableBuilder.appendCell(fromPositiveInt(server.getReplicationServerPort())); |
| | | |
| | | // Missing changes |
| | | tableBuilder.appendCell(EMPTY_MSG); |
| | |
| | | tableBuilder.appendCell(EMPTY_MSG); |
| | | |
| | | // Secure |
| | | tableBuilder.appendCell( |
| | | LocalizableMessage.raw(Boolean.toString(server.isReplicationSecure()))); |
| | | tableBuilder.appendCell(fromBoolean(server.isReplicationSecure())); |
| | | } |
| | | |
| | | TablePrinter printer; |
| | |
| | | tableBuilder.print(printer); |
| | | } |
| | | |
| | | private LocalizableMessage fromObject(Object value) |
| | | { |
| | | return LocalizableMessage.raw("%s", value); |
| | | } |
| | | |
| | | private LocalizableMessage fromDate(long ageOfOldestMissingChange) |
| | | { |
| | | if (ageOfOldestMissingChange > 0) |
| | | { |
| | | Date date = new Date(ageOfOldestMissingChange); |
| | | return LocalizableMessage.raw(date.toString()); |
| | | } |
| | | return EMPTY_MSG; |
| | | } |
| | | |
| | | private LocalizableMessage fromBoolean(boolean value) |
| | | { |
| | | return LocalizableMessage.raw(Boolean.toString(value)); |
| | | } |
| | | |
| | | private LocalizableMessage fromInt(int value) |
| | | { |
| | | return LocalizableMessage.raw(Integer.toString(value)); |
| | | } |
| | | |
| | | private LocalizableMessage fromPositiveInt(int value) |
| | | { |
| | | return value >= 0 ? LocalizableMessage.raw(Integer.toString(value)) : EMPTY_MSG; |
| | | } |
| | | |
| | | private boolean isRepServerNotInDomain(Set<ReplicaDescriptor> replicas, ServerDescriptor server) |
| | | { |
| | | boolean isDomain = false; |
| | |
| | | { |
| | | TableBuilder tableBuilder = new TableBuilder(); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_SERVERPORT.get()); |
| | | tableBuilder.appendHeading( |
| | | INFO_REPLICATION_STATUS_HEADER_REPLICATION_PORT.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_REPLICATION_PORT.get()); |
| | | tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_SECURE.get()); |
| | | |
| | | for (ServerDescriptor server : servers) |
| | | { |
| | | tableBuilder.startRow(); |
| | | // Server port |
| | | tableBuilder.appendCell(LocalizableMessage.raw("%s", getHostPort2(server, cnx))); |
| | | tableBuilder.appendCell(fromObject(getHostPort2(server, cnx))); |
| | | // Replication port |
| | | int replicationPort = server.getReplicationServerPort(); |
| | | if (replicationPort >= 0) |
| | | { |
| | | tableBuilder.appendCell(LocalizableMessage.raw(String.valueOf(replicationPort))); |
| | | } |
| | | else |
| | | { |
| | | tableBuilder.appendCell(EMPTY_MSG); |
| | | } |
| | | tableBuilder.appendCell(fromPositiveInt(server.getReplicationServerPort())); |
| | | // Secure |
| | | tableBuilder.appendCell(LocalizableMessage.raw(Boolean.toString(server.isReplicationSecure()))); |
| | | tableBuilder.appendCell(fromBoolean(server.isReplicationSecure())); |
| | | } |
| | | |
| | | PrintStream out = getOutputStream(); |