in src/main/java/org/apache/pulsar/manager/service/impl/NamespacesServiceImpl.java [62:128]
public Map<String, Object> getNamespaceList(Integer pageNum, Integer pageSize, String tenant, String requestHost) {
Map<String, Object> namespacesMap = Maps.newHashMap();
List<Map<String, Object>> namespacesArray = new ArrayList<>();
if (directRequestBroker) {
List<String> namespacesList;
try {
namespacesList = pulsarAdminService.namespaces(requestHost).getNamespaces(tenant);
} catch (PulsarAdminException e) {
PulsarAdminOperationException pulsarAdminOperationException
= new PulsarAdminOperationException("Failed to get namespaces list.");
log.error(pulsarAdminOperationException.getMessage(), e);
throw pulsarAdminOperationException;
}
if (!namespacesList.isEmpty()) {
Optional<TopicStatsEntity> topicStatsEntityOptional = topicsStatsRepository.findMaxTime();
Map<String, TopicStatsEntity> topicStatsEntityMap = Maps.newHashMap();
if (topicStatsEntityOptional.isPresent()) {
TopicStatsEntity topicStatsEntity = topicStatsEntityOptional.get();
String environment = request.getHeader("environment");
ArrayList<String> namespaceList = new ArrayList<>();
for (String namespace : namespacesList) {
String[] path = namespace.split("/");
if (path.length > 1) {
namespaceList.add(path[1]);
}
}
Page<TopicStatsEntity> namespaceCountPage = brokerStatsService.findByMultiNamespace(
1, 1, environment, tenant,
namespaceList, topicStatsEntity.getTimestamp());
namespaceCountPage.count(true);
Page<TopicStatsEntity> namespaceAllCountPage = brokerStatsService.findByMultiNamespace(
1, (int)namespaceCountPage.getTotal(), environment, tenant,
namespaceList, topicStatsEntity.getTimestamp());
for (TopicStatsEntity statsEntity : namespaceAllCountPage) {
topicStatsEntityMap.put(statsEntity.getNamespace(), statsEntity);
}
}
for (String tenantNamespace : namespacesList) {
String[] path = tenantNamespace.split("/");
if (path.length > 1) {
String namespace = path[1];
Map<String, Object> topicsEntity = Maps.newHashMap();
Map<String, Object> topics = topicsService.getTopicsList(
0, 0, tenant, namespace, requestHost);
topicsEntity.put("topics", topics.get("total"));
topicsEntity.put("namespace", namespace);
if (topicStatsEntityMap.get(namespace) != null) {
TopicStatsEntity topicStatsEntity = topicStatsEntityMap.get(namespace);
topicsEntity.put("inMsg", topicStatsEntity.getMsgRateIn());
topicsEntity.put("outMsg", topicStatsEntity.getMsgRateOut());
topicsEntity.put("inBytes", topicStatsEntity.getMsgThroughputIn());
topicsEntity.put("outBytes", topicStatsEntity.getMsgThroughputOut());
topicsEntity.put("storageSize", topicStatsEntity.getStorageSize());
}
namespacesArray.add(topicsEntity);
}
}
namespacesMap.put("isPage", false);
namespacesMap.put("total", namespacesList.size());
namespacesMap.put("data", namespacesArray);
namespacesMap.put("pageNum", 1);
namespacesMap.put("pageSize", namespacesArray.size());
}
}
return namespacesMap;
}