in src/main/java/org/apache/pulsar/manager/service/impl/BookiesServiceImpl.java [64:121]
public Map<String, Object> getBookiesList(Integer pageNum, Integer pageSize, String cluster) {
Map<String, Object> bookiesMap = Maps.newHashMap();
List<Map<String, Object>> bookiesArray = new ArrayList<>();
if (bookieEnable) {
Gson gson = new Gson();
Map<String, String> header = Maps.newHashMap();
header.put("Content-Type", "application/json");
if (StringUtils.isNotBlank(pulsarJwtToken)) {
header.put("Authorization", String.format("Bearer %s", pulsarJwtToken));
}
String bookieUrl = this.environmentCacheService.getBookieUrl(request);
if(StringUtils.isBlank(bookieUrl)){
return bookiesMap;
}
String rwBookieList = HttpUtil.doGet(
bookieUrl + "/api/v1/bookie/list_bookies?type=rw&print_hostnames=true", header);
Map<String, String> rwBookies = gson.fromJson(
rwBookieList, new TypeToken<Map<String, String>>() {}.getType());
String roBookieList = HttpUtil.doGet(
bookieUrl + "/api/v1/bookie/list_bookies?type=ro&print_hostnames=true", header);
Map<String, String> roBookies = gson.fromJson(
roBookieList, new TypeToken<Map<String, String>>() {}.getType());
String listBookieInfo = HttpUtil.doGet(
bookieUrl + "/api/v1/bookie/list_bookie_info", header);
Map<String, String> listBookies = gson.fromJson(
listBookieInfo, new TypeToken<Map<String, String>>() {}.getType());
for (String key: listBookies.keySet()) {
Map<String, Object> bookieEntity = Maps.newHashMap();
if (rwBookies != null && rwBookies.containsKey(key)) {
bookieEntity.put("bookie", key);
bookieEntity.put("status", "rw");
} else if (roBookies != null && roBookies.containsKey(key)) {
bookieEntity.put("bookie", key);
bookieEntity.put("status", "ro");
}
if ((rwBookies != null && rwBookies.containsKey(key)) || (roBookies != null && roBookies.containsKey(key))) {
Matcher matcher = pattern.matcher(listBookies.get(key));
List<String> storageSizeList = new ArrayList<>();
while (matcher.find()) {
String res = matcher.group();
storageSizeList.add(res.trim());
}
bookieEntity.put("storage", storageSizeList);
bookiesArray.add(bookieEntity);
}
}
bookiesMap.put("isPage", false);
bookiesMap.put("total", bookiesArray.size());
bookiesMap.put("data", bookiesArray);
bookiesMap.put("pageNum", 1);
bookiesMap.put("pageSize", bookiesArray.size());
bookiesMap.put("enableBookieHttp", true);
return bookiesMap;
}
bookiesMap.put("enableBookieHttp", false);
return bookiesMap;
}