@Override
    public ProcResult fetchResult()
            throws AnalysisException {
        BaseProcResult result = new BaseProcResult();
        result.setNames(getMetadata());

        final List<List<String>> computeNodesInfos = getClusterComputeNodesInfos();
        for (List<String> computeNodesInfo : computeNodesInfos) {
            List<String> oneInfo = new ArrayList<>(computeNodesInfo.size());
            oneInfo.addAll(computeNodesInfo);
            result.addRow(oneInfo);
        }
        return result;
    }
@Test
    public void testWarehouse(@Mocked WarehouseManager warehouseManager) throws AnalysisException {
        new Expectations() {
            {
                systemInfoService.getComputeNodeIds(anyBoolean);
                result = Lists.newArrayList(1000L, 1001L);
            }
        };

        new Expectations() {
            {
                RunMode.isSharedDataMode();
                minTimes = 0;
                result = true;

                globalStateMgr.getWarehouseMgr();
                minTimes = 0;
                result = warehouseManager;

                warehouseManager.getWarehouse(anyLong);
                minTimes = 0;
                result = new DefaultWarehouse(WarehouseManager.DEFAULT_WAREHOUSE_ID,
                        WarehouseManager.DEFAULT_WAREHOUSE_NAME);
            }
        };

        ComputeNodeProcDir dir = new ComputeNodeProcDir(systemInfoService);
        ProcResult result = dir.fetchResult();
    }