/** * Get list of userspace table names * @param controller Unused (set to null). * @param req GetTableNamesRequest * @return GetTableNamesResponse * @throws ServiceException */ @Override public GetTableNamesResponse getTableNames(RpcController controller, GetTableNamesRequest req) throws ServiceException { try { master.checkInitialized(); final String regex = req.hasRegex() ? req.getRegex() : null; final String namespace = req.hasNamespace() ? req.getNamespace() : null; List<TableName> tableNames = master.listTableNames(namespace, regex, req.getIncludeSysTables()); GetTableNamesResponse.Builder builder = GetTableNamesResponse.newBuilder(); if (tableNames != null && tableNames.size() > 0) { // Add the table names to the response for (TableName table: tableNames) { builder.addTableNames(ProtobufUtil.toProtoTableName(table)); } } return builder.build(); } catch (IOException e) { throw new ServiceException(e); } }
/** * Get list of userspace table names * @param controller Unused (set to null). * @param req GetTableNamesRequest * @return GetTableNamesResponse * @throws ServiceException */ @Override public GetTableNamesResponse getTableNames( RpcController controller, GetTableNamesRequest req) throws ServiceException { try { Collection<HTableDescriptor> descriptors = this.tableDescriptors.getAll().values(); GetTableNamesResponse.Builder builder = GetTableNamesResponse.newBuilder(); for (HTableDescriptor descriptor: descriptors) { if (descriptor.getTableName().isSystemTable()) { continue; } builder.addTableNames(ProtobufUtil.toProtoTableName(descriptor.getTableName())); } return builder.build(); } catch (IOException e) { throw new ServiceException(e); } }
/** * Get list of userspace table names * @param controller Unused (set to null). * @param req GetTableNamesRequest * @return GetTableNamesResponse * @throws ServiceException */ @Override public GetTableNamesResponse getTableNames(RpcController controller, GetTableNamesRequest req) throws ServiceException { try { master.checkInitialized(); Collection<HTableDescriptor> descriptors = master.getTableDescriptors().getAll().values(); GetTableNamesResponse.Builder builder = GetTableNamesResponse.newBuilder(); for (HTableDescriptor descriptor: descriptors) { if (descriptor.getTableName().isSystemTable()) { continue; } builder.addTableNames(ProtobufUtil.toProtoTableName(descriptor.getTableName())); } return builder.build(); } catch (IOException e) { throw new ServiceException(e); } }
@Test (timeout=180000) public void testTableNamesEnumeration() throws Exception { MiniHBaseCluster cluster = UTIL.getHBaseCluster(); HMaster master = cluster.getMaster(); MasterCoprocessorHost host = master.getMasterCoprocessorHost(); CPMasterObserver cp = (CPMasterObserver)host.findCoprocessor( CPMasterObserver.class.getName()); cp.resetStates(); master.getMasterRpcServices().getTableNames(null, GetTableNamesRequest.newBuilder().build()); assertTrue("Coprocessor should be called on table names request", cp.wasGetTableNamesCalled()); }
/** * Creates a protocol buffer GetTableNamesRequest * * @param pattern The compiled regular expression to match against * @param includeSysTables False to match only against userspace tables * @return a GetTableNamesRequest */ public static GetTableNamesRequest buildGetTableNamesRequest(final Pattern pattern, boolean includeSysTables) { GetTableNamesRequest.Builder builder = GetTableNamesRequest.newBuilder(); if (pattern != null) builder.setRegex(pattern.toString()); builder.setIncludeSysTables(includeSysTables); return builder.build(); }
@Override public TableName[] listTableNames(final Pattern pattern, final boolean includeSysTables) throws IOException { return executeCallable(new MasterCallable<TableName[]>(getConnection()) { @Override public TableName[] call(int callTimeout) throws ServiceException { PayloadCarryingRpcController controller = rpcControllerFactory.newController(); controller.setCallTimeout(callTimeout); GetTableNamesRequest req = RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables); return ProtobufUtil.getTableNameArray(master.getTableNames(controller, req) .getTableNamesList()); } }); }
/** * @deprecated Use {@link Admin#listTableNames()} instead */ @Deprecated @Override public TableName[] listTableNames() throws IOException { MasterKeepAliveConnection master = getKeepAliveMasterService(); try { return ProtobufUtil.getTableNameArray(master.getTableNames(null, GetTableNamesRequest.newBuilder().build()) .getTableNamesList()); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } finally { master.close(); } }
@Test public void testTableNamesEnumeration() throws Exception { MiniHBaseCluster cluster = UTIL.getHBaseCluster(); HMaster master = cluster.getMaster(); MasterCoprocessorHost host = master.getMasterCoprocessorHost(); CPMasterObserver cp = (CPMasterObserver)host.findCoprocessor( CPMasterObserver.class.getName()); cp.resetStates(); master.getMasterRpcServices().getTableNames(null, GetTableNamesRequest.newBuilder().build()); assertTrue("Coprocessor should be called on table names request", cp.wasGetTableNamesCalled()); }
@Override public TableName[] listTableNames(final Pattern pattern, final boolean includeSysTables) throws IOException { return executeCallable(new MasterCallable<TableName[]>(getConnection()) { @Override public TableName[] call(int callTimeout) throws ServiceException { GetTableNamesRequest req = RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables); return ProtobufUtil.getTableNameArray(master.getTableNames(null, req) .getTableNamesList()); } }); }
@Override public TableName[] listTableNames() throws IOException { MasterKeepAliveConnection master = getKeepAliveMasterService(); try { return ProtobufUtil.getTableNameArray(master.getTableNames(null, GetTableNamesRequest.newBuilder().build()) .getTableNamesList()); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } finally { master.close(); } }