@Override public void prepareBulkLoad(RpcController controller, PrepareBulkLoadRequest request, RpcCallback<PrepareBulkLoadResponse> done){ try { List<BulkLoadObserver> bulkLoadObservers = getBulkLoadObservers(); if(bulkLoadObservers != null) { ObserverContext<RegionCoprocessorEnvironment> ctx = new ObserverContext<RegionCoprocessorEnvironment>(); ctx.prepare(env); for(BulkLoadObserver bulkLoadObserver : bulkLoadObservers) { bulkLoadObserver.prePrepareBulkLoad(ctx, request); } } String bulkToken = createStagingDir(baseStagingDir, getActiveUser(), ProtobufUtil.toTableName(request.getTableName())).toString(); done.run(PrepareBulkLoadResponse.newBuilder().setBulkToken(bulkToken).build()); } catch (IOException e) { ResponseConverter.setControllerException(controller, e); } done.run(null); }
@Override public void cleanupBulkLoad(RpcController controller, CleanupBulkLoadRequest request, RpcCallback<CleanupBulkLoadResponse> done) { try { List<BulkLoadObserver> bulkLoadObservers = getBulkLoadObservers(); if(bulkLoadObservers != null) { ObserverContext<RegionCoprocessorEnvironment> ctx = new ObserverContext<RegionCoprocessorEnvironment>(); ctx.prepare(env); for(BulkLoadObserver bulkLoadObserver : bulkLoadObservers) { bulkLoadObserver.preCleanupBulkLoad(ctx, request); } } fs.delete(new Path(request.getBulkToken()), true); done.run(CleanupBulkLoadResponse.newBuilder().build()); } catch (IOException e) { ResponseConverter.setControllerException(controller, e); } done.run(null); }
public void prePrepareBulkLoad(User user) throws IOException { execOperation(coprocEnvironments.isEmpty() ? null : new BulkLoadObserverOperation(user) { @Override protected void call(BulkLoadObserver observer) throws IOException { observer.prePrepareBulkLoad(this); } }); }
public void preCleanupBulkLoad(User user) throws IOException { execOperation(coprocEnvironments.isEmpty() ? null : new BulkLoadObserverOperation(user) { @Override protected void call(BulkLoadObserver observer) throws IOException { observer.preCleanupBulkLoad(this); } }); }
private List<BulkLoadObserver> getBulkLoadObservers() { List<BulkLoadObserver> coprocessorList = this.env.getRegion().getCoprocessorHost().findCoprocessors(BulkLoadObserver.class); return coprocessorList; }
@Override public Optional<BulkLoadObserver> getBulkLoadObserver() { return Optional.of(this); }