public Map getBookiesList()

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;
    }