@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 testFetchResultSharedNothing() throws AnalysisException {
        new Expectations() {
            {
                RunMode.isSharedDataMode();
                minTimes = 0;
                result = false;
            }
        };

        ComputeNodeProcDir dir = new ComputeNodeProcDir(systemInfoService);
        ProcResult result = dir.fetchResult();
        Assert.assertNotNull(result);
        Assert.assertTrue(result instanceof BaseProcResult);
        int columnIndex = getTabletNumColumnIndex(result.getColumnNames());
        // no "TabletNum" column in shared-nothing mode
        Assert.assertEquals(-1, columnIndex);
    }