/** * Returns a set of instance names. * * @param hbaseURI URI of the HBase instance to list the content of. * @return ordered set of instance names. * @throws IOException on I/O error. */ protected static Set<String> getInstanceNames(FijiURI hbaseURI) throws IOException { // TODO(SCHEMA-188): Consolidate this logic in a single central place: final Configuration conf = HBaseConfiguration.create(); conf.set(HConstants.ZOOKEEPER_QUORUM, Joiner.on(",").join(hbaseURI.getZookeeperQuorumOrdered())); conf.setInt(HConstants.ZOOKEEPER_CLIENT_PORT, hbaseURI.getZookeeperClientPort()); final HBaseAdmin hbaseAdmin = HBaseFactory.Provider.get().getHBaseAdminFactory(hbaseURI).create(conf); try { final Set<String> instanceNames = Sets.newTreeSet(); for (HTableDescriptor hTableDescriptor : hbaseAdmin.listTables()) { final String instanceName = parseInstanceName(hTableDescriptor.getNameAsString()); if (null != instanceName) { instanceNames.add(instanceName); } } return instanceNames; } finally { ResourceUtils.closeOrLog(hbaseAdmin); } }