@Override public void call(MasterObserver observer) throws IOException { observer.preDeleteTable(this, tableName); } });
@Override public void preDropTable(ObserverContext<PhoenixMetaDataControllerEnvironment> ctx, String tenantId, String tableName, TableName physicalTableName, TableName parentPhysicalTableName, PTableType tableType, List<PTable> indexes) throws IOException { if (!accessCheckEnabled) { return; } for (MasterObserver observer : getAccessControllers()) { if (tableType != PTableType.VIEW) { observer.preDeleteTable(getMasterObsevrverContext(), physicalTableName); } if (indexes != null) { for (PTable index : indexes) { observer.preDeleteTable(getMasterObsevrverContext(), TableName.valueOf(index.getPhysicalName().getBytes())); } } } //checking similar permission checked during the create of the view. if (tableType == PTableType.VIEW || tableType == PTableType.INDEX) { requireAccess("Drop "+tableType, parentPhysicalTableName, Action.READ, Action.EXEC); } }
@Override public void call(MasterObserver oserver, ObserverContext<MasterCoprocessorEnvironment> ctx) throws IOException { oserver.preDeleteTable(ctx, tableName); } });
@Override public void preDeleteTable(ObserverContext<MasterCoprocessorEnvironment> c, TableName tableName) throws IOException { if(LOG.isDebugEnabled()) { LOG.debug("==> HBaseAtlasCoprocessor.preDeleteTable()"); } try { activatePluginClassLoader(); implMasterObserver.preDeleteTable(c, tableName); } finally { deactivatePluginClassLoader(); } if(LOG.isDebugEnabled()) { LOG.debug("<== HBaseAtlasCoprocessor.preDeleteTable()"); } }
@Override public void preDropTable(ObserverContext<PhoenixMetaDataControllerEnvironment> ctx, String tenantId, String tableName, TableName physicalTableName, TableName parentPhysicalTableName, PTableType tableType, List<PTable> indexes) throws IOException { if (!accessCheckEnabled) { return; } for (MasterObserver observer : getAccessControllers()) { if (tableType != PTableType.VIEW) { observer.preDeleteTable(getMasterObsevrverContext(), physicalTableName); } if (indexes != null) { for (PTable index : indexes) { observer.preDeleteTable(getMasterObsevrverContext(), TableName.valueOf(index.getPhysicalName().getBytes())); } } } //checking similar permission checked during the create of the view. if (tableType == PTableType.VIEW || tableType == PTableType.INDEX) { requireAccess("Drop "+tableType, parentPhysicalTableName, Action.READ, Action.EXEC); } }
@Override public void preDropTable(ObserverContext<PhoenixMetaDataControllerEnvironment> ctx, String tenantId, String tableName, TableName physicalTableName, TableName parentPhysicalTableName, PTableType tableType, List<PTable> indexes) throws IOException { if (!accessCheckEnabled) { return; } for (MasterObserver observer : getAccessControllers()) { if (tableType != PTableType.VIEW) { observer.preDeleteTable(getMasterObsevrverContext(), physicalTableName); } if (indexes != null) { for (PTable index : indexes) { observer.preDeleteTable(getMasterObsevrverContext(), TableName.valueOf(index.getPhysicalName().getBytes())); } } } //checking similar permission checked during the create of the view. if (tableType == PTableType.VIEW || tableType == PTableType.INDEX) { requireAccess("Drop "+tableType, parentPhysicalTableName, Action.READ, Action.EXEC); } }
void preDeleteTable(byte[] tableName) throws IOException { ObserverContext<MasterCoprocessorEnvironment> ctx = null; for (MasterEnvironment env: coprocessors) { if (env.getInstance() instanceof MasterObserver) { ctx = ObserverContext.createAndPrepare(env, ctx); try { ((MasterObserver)env.getInstance()).preDeleteTable(ctx, tableName); } catch (Throwable e) { handleCoprocessorThrowable(env, e); } if (ctx.shouldComplete()) { break; } } } }