private boolean testTableOnlineState(byte [] tableName, boolean online) throws IOException { if (Bytes.equals(tableName, HConstants.ROOT_TABLE_NAME)) { // The root region is always enabled return online; } ZooKeeperWatcher zkw = getZooKeeperWatcher(); String tableNameStr = Bytes.toString(tableName); try { if (online) { return ZKTableReadOnly.isEnabledTable(zkw, tableNameStr); } return ZKTableReadOnly.isDisabledTable(zkw, tableNameStr); } catch (KeeperException e) { throw new IOException("Enable/Disable failed", e); } }
/** * Load the list of disabled tables in ZK into local set. * @throws ZooKeeperConnectionException * @throws IOException */ private void loadDisabledTables() throws ZooKeeperConnectionException, IOException { HConnectionManager.execute(new HConnectable<Void>(getConf()) { @Override public Void connect(HConnection connection) throws IOException { ZooKeeperWatcher zkw = connection.getZooKeeperWatcher(); try { for (String tableName : ZKTableReadOnly.getDisabledOrDisablingTables(zkw)) { disabledTables.add(Bytes.toBytes(tableName)); } } catch (KeeperException ke) { throw new IOException(ke); } return null; } }); }
/** * Load the list of disabled tables in ZK into local set. * @throws ZooKeeperConnectionException * @throws IOException */ private void loadDisabledTables() throws ZooKeeperConnectionException, IOException { HConnectionManager.execute(new HConnectable<Void>(getConf()) { @Override public Void connect(HConnection connection) throws IOException { ZooKeeperWatcher zkw = createZooKeeperWatcher(); try { for (TableName tableName : ZKTableReadOnly.getDisabledOrDisablingTables(zkw)) { disabledTables.add(tableName); } } catch (KeeperException ke) { throw new IOException(ke); } finally { zkw.close(); } return null; } }); }
@Test(timeout = 180000) public void testWhenUserTableIsDisabledButIndexTableIsInEnabledState() throws Exception { String table = "testWhenUserTableIsDisabledButIndexTableIsInEnabledState"; HTableDescriptor htd = TestUtils.createIndexedHTableDescriptor(table, "cf", "index_name", "cf", "cq"); byte[][] splits = new byte[10][]; char c = 'A'; for (int i = 0; i < 10; i++) { byte[] b = { (byte) c }; splits[i] = b; c++; } admin.createTable(htd, splits); admin.disableTable(table); admin.enableTable(IndexUtils.getIndexTableName(table)); SecondaryIndexColocator colocator = new SecondaryIndexColocator(UTIL.getConfiguration()); colocator.setUp(); colocator.checkForCoLocationInconsistency(); assertTrue( "The enabled table should be now disabled", ZKTableReadOnly.isDisabledTable(HBaseTestingUtility.getZooKeeperWatcher(UTIL), TableName.valueOf(IndexUtils.getIndexTableName(table)))); }
private boolean testTableOnlineState(byte [] tableName, boolean online) throws IOException { if (Bytes.equals(tableName, HConstants.ROOT_TABLE_NAME)) { // The root region is always enabled return online; } String tableNameStr = Bytes.toString(tableName); ZooKeeperKeepAliveConnection zkw = getKeepAliveZooKeeperWatcher(); try { if (online) { return ZKTableReadOnly.isEnabledTable(zkw, tableNameStr); } return ZKTableReadOnly.isDisabledTable(zkw, tableNameStr); } catch (KeeperException e) { throw new IOException("Enable/Disable failed", e); }finally { zkw.close(); } }
/** * Load the list of disabled tables in ZK into local set. * @throws ZooKeeperConnectionException * @throws IOException */ private void loadDisabledTables() throws ZooKeeperConnectionException, IOException { HConnectionManager.execute(new HConnectable<Void>(getConf()) { @Override public Void connect(HConnection connection) throws IOException { ZooKeeperWatcher zkw = createZooKeeperWatcher(); try { for (String tableName : ZKTableReadOnly.getDisabledOrDisablingTables(zkw)) { disabledTables.add(Bytes.toBytes(tableName)); } } catch (KeeperException ke) { throw new IOException(ke); } finally { zkw.close(); } return null; } }); }
/** * Load the list of disabled tables in ZK into local set. * @throws ZooKeeperConnectionException * @throws IOException */ private void loadDisabledTables() throws ZooKeeperConnectionException, IOException { HConnectionManager.execute(new HConnectable<Void>(getConf()) { @Override public Void connect(HConnection connection) throws IOException { ZooKeeperWatcher zkw = connection.getZooKeeperWatcher(); try { for (Entry<TableState, Set<String>> e : ZKTableReadOnly.getDisabledOrDisablingTables(zkw) .entrySet()) { for (String tableName : e.getValue()) { disabledTables.add(Bytes.toBytes(tableName)); } } } catch (KeeperException ke) { throw new IOException(ke); } return null; } }); }
private boolean enableAndCheckEnabled(ZooKeeperWatcher zkw, String tableName) throws Exception { // set the table to enabled, as that is the only state that differs // between the two formats ZKTable zkt = new ZKTable(zkw); zkt.setEnabledTable(tableName); return ZKTableReadOnly.isEnabledTable(zkw, tableName); }
@Override public boolean isTableOnlineState(TableName tableName, boolean enabled) throws IOException { ZooKeeperKeepAliveConnection zkw = hci.getKeepAliveZooKeeperWatcher(); try { if (enabled) { return ZKTableReadOnly.isEnabledTable(zkw, tableName); } return ZKTableReadOnly.isDisabledTable(zkw, tableName); } catch (KeeperException e) { throw new IOException("Enable/Disable failed", e); } finally { zkw.close(); } }