private Map<String, HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus> getReplSetStatus(String species, String assembly) { MongoDataStore mongoDatastore = createMongoDBDatastore(ADMIN_DATABASE); Document statusDocument = mongoDatastore.getReplSetStatus(); Map<String, HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus> statusMap = new HashMap<>(4); String repset = (String) statusDocument.get(SET); if (StringUtils.isNotBlank(repset)) { HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus datastoreStatus = new HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus(); datastoreStatus.setRepset(repset); // Overall database response time is measured by raising a query to Gene collection datastoreStatus.setResponseTime(getQueryResponseTime(species, assembly)); datastoreStatus.setRole(REPLICA_SET); statusMap.put(repset, datastoreStatus); } for (Map memberStatus : (List<Map>) statusDocument.get(MEMBERS)) { HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus datastoreStatus = new HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus(); datastoreStatus.setRepset(repset); datastoreStatus.setRole(((String) memberStatus.get(STATE_STR)).toLowerCase()); String memberName = ((String) memberStatus.get(NAME)).split(COLON)[0]; // Per-machine response time is measured by doing ping to the machine. it's not possible to create a connection // to one single machine in the rep set datastoreStatus.setResponseTime(getPingResponseTime(memberName)); statusMap.put(memberName, datastoreStatus); } return statusMap; }
private Map<String, HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus> getReplSetStatus(String species, String assembly) { MongoDataStore mongoDatastore = createMongoDBDatastore(ADMIN_DATABASE); Document statusDocument = mongoDatastore.getReplSetStatus(); Map<String, HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus> statusMap = new HashMap<>(4); String repset = (String) statusDocument.get(SET); if (StringUtils.isNotBlank(repset)) { HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus datastoreStatus = new HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus(); datastoreStatus.setRepset(repset); // Overall database response time is measured by raising a query to Gene collection datastoreStatus.setResponseTime(getQueryResponseTime(species, assembly)); datastoreStatus.setRole(REPLICA_SET); statusMap.put(repset, datastoreStatus); } for (Map memberStatus : (List<Map>) statusDocument.get(MEMBERS)) { HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus datastoreStatus = new HealthStatus.ApplicationDetails.DependenciesStatus.DatastoreDependenciesStatus.DatastoreStatus(); datastoreStatus.setRepset(repset); datastoreStatus.setRole(((String) memberStatus.get(STATE_STR)).toLowerCase()); String memberName = ((String) memberStatus.get(NAME)).split(COLON)[0]; // Per-machine response time is measured by doing ping to the machine. it's not possible to create a connection // to one single machine in the rep set datastoreStatus.setResponseTime(getPingResponseTime(memberName)); statusMap.put(memberName, datastoreStatus); } return statusMap; }