private void disableAndDeleteTable(MasterServices master, TableName tableName) throws IOException { LOG.error(tableName + " already exists. Disabling and deleting table " + tableName + '.'); boolean disabled = master.getAssignmentManager().getZKTable().isDisabledTable(tableName); if (false == disabled) { LOG.info("Disabling table " + tableName + '.'); new DisableTableHandler(master, tableName, master.getCatalogTracker(), master.getAssignmentManager(), master.getTableLockManager(), false).prepare().process(); if (false == master.getAssignmentManager().getZKTable().isDisabledTable(tableName)) { throw new DoNotRetryIOException("Table " + tableName + " not disabled."); } } LOG.info("Disabled table " + tableName + '.'); LOG.info("Deleting table " + tableName + '.'); new DeleteTableHandler(tableName, master, master).prepare().process(); if (true == MetaReader.tableExists(master.getCatalogTracker(), tableName)) { throw new DoNotRetryIOException("Table " + tableName + " not deleted."); } LOG.info("Deleted table " + tableName + '.'); }
@Override public void postDeleteTableHandler(ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName) throws IOException { LOG.info("Entered into postDeleteTableHandler of table " + tableName + '.'); MasterServices master = ctx.getEnvironment().getMasterServices(); TableName indexTableName = TableName.valueOf(IndexUtils.getIndexTableName(tableName)); boolean indexTablePresent = master.getAssignmentManager().getZKTable().isTablePresent(indexTableName); // Not checking for disabled state because before deleting user table both user and index table // should be disabled. if ((!IndexUtils.isIndexTable(tableName)) && indexTablePresent) { LoadBalancer balancer = master.getAssignmentManager().getBalancer(); if (balancer instanceof SecIndexLoadBalancer) { ((SecIndexLoadBalancer) balancer).removeIndexedTable(tableName); } DeleteTableHandler dth = new DeleteTableHandler(indexTableName, master, master); dth.prepare(); dth.process(); } LOG.info("Exiting from postDeleteTableHandler of table " + tableName + '.'); }
private void disableAndDeleteTable(MasterServices master, String tableName) throws IOException { byte[] tableNameInBytes = Bytes.toBytes(tableName); LOG.error(tableName + " already exists. Disabling and deleting table " + tableName + '.'); boolean disabled = master.getAssignmentManager().getZKTable().isDisabledTable(tableName); if (false == disabled) { LOG.info("Disabling table " + tableName + '.'); new DisableTableHandler(master, tableNameInBytes, master.getCatalogTracker(), master.getAssignmentManager(), false).process(); if (false == master.getAssignmentManager().getZKTable().isDisabledTable(tableName)) { throw new IOException("Table " + tableName + " not disabled."); } } LOG.info("Disabled table " + tableName + '.'); LOG.info("Deleting table " + tableName + '.'); new DeleteTableHandler(tableNameInBytes, master, master).process(); if (true == MetaReader.tableExists(master.getCatalogTracker(), tableName)) { throw new IOException("Table " + tableName + " not deleted."); } LOG.info("Deleted table " + tableName + '.'); }
@Override public void deleteTable(final byte [] tableName) throws IOException { checkInitialized(); if (cpHost != null) { cpHost.preDeleteTable(tableName); } this.executorService.submit(new DeleteTableHandler(tableName, this, this)); if (cpHost != null) { cpHost.postDeleteTable(tableName); } }
@Override public void deleteTable(final TableName tableName) throws IOException { checkInitialized(); if (cpHost != null) { cpHost.preDeleteTable(tableName); } LOG.info(getClientIdAuditPrefix() + " delete " + tableName); this.service.submit(new DeleteTableHandler(tableName, this, this).prepare()); if (cpHost != null) { cpHost.postDeleteTable(tableName); } }
@Override public void deleteTable(final TableName tableName) throws IOException { checkInitialized(); if (cpHost != null) { cpHost.preDeleteTable(tableName); } LOG.info(getClientIdAuditPrefix() + " delete " + tableName); this.executorService.submit(new DeleteTableHandler(tableName, this, this).prepare()); if (cpHost != null) { cpHost.postDeleteTable(tableName); } }
@Override public void deleteTable(final byte [] tableName) throws IOException { if (cpHost != null) { cpHost.preDeleteTable(tableName); } this.executorService.submit(new DeleteTableHandler(tableName, this, this)); if (cpHost != null) { cpHost.postDeleteTable(tableName); } }
@Override public void deleteTable(final byte[] tableName) throws IOException { checkInitialized(); if (cpHost != null) { cpHost.preDeleteTable(tableName); } this.executorService.submit(new DeleteTableHandler(tableName, this, this)); if (cpHost != null) { cpHost.postDeleteTable(tableName); } }
@Override public void postDeleteTableHandler(ObserverContext<MasterCoprocessorEnvironment> ctx, byte[] tableName) throws IOException { LOG.info("Entered into postDeleteTableHandler of table " + Bytes.toString(tableName) + '.'); MasterServices master = ctx.getEnvironment().getMasterServices(); String indexTableName = IndexUtils.getIndexTableName(tableName); boolean indexTablePresent = master.getAssignmentManager().getZKTable().isTablePresent(indexTableName); // Not checking for disabled state because before deleting user table both user and index table // should be disabled. if ((false == IndexUtils.isIndexTable(Bytes.toString(tableName))) && indexTablePresent) { new DeleteTableHandler(Bytes.toBytes(indexTableName), master, master).process(); } LOG.info("Exiting from postDeleteTableHandler of table " + Bytes.toString(tableName) + '.'); }