public static Feed findFeed(MetadataTransactionContext mdTxnCtx, String dataverse, String feedName) throws AlgebricksException { return MetadataManager.INSTANCE.getFeed(mdTxnCtx, dataverse, feedName); }
public static Feed validateIfFeedExists(String dataverse, String feedName, MetadataTransactionContext ctx) throws AlgebricksException { Feed feed = MetadataManager.INSTANCE.getFeed(ctx, dataverse, feedName); if (feed == null) { throw new CompilationException("Unknown source feed: " + feedName); } return feed; }
protected void doDropFeed(IHyracksClientConnection hcc, MetadataProvider metadataProvider, Feed feed, SourceLocation sourceLoc) throws Exception { MetadataTransactionContext mdTxnCtx = metadataProvider.getMetadataTxnContext(); EntityId feedId = feed.getFeedId(); ActiveNotificationHandler activeNotificationHandler = (ActiveNotificationHandler) appCtx.getActiveNotificationHandler(); ActiveEntityEventsListener listener = (ActiveEntityEventsListener) activeNotificationHandler.getListener(feedId); if (listener != null && listener.getState() != ActivityState.STOPPED) { throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc, "Feed " + feedId + " is currently active and connected to the following dataset(s) \n" + listener.toString()); } else if (listener != null) { listener.unregister(); } JobSpecification spec = FeedOperations.buildRemoveFeedStorageJob(metadataProvider, MetadataManager.INSTANCE.getFeed(mdTxnCtx, feedId.getDataverse(), feedId.getEntityName())); runJob(hcc, spec); MetadataManager.INSTANCE.dropFeed(mdTxnCtx, feed.getDataverseName(), feed.getFeedName()); if (LOGGER.isInfoEnabled()) { LOGGER.info("Removed feed " + feedId); } }
protected void handleDropFeedStatement(MetadataProvider metadataProvider, Statement stmt, IHyracksClientConnection hcc) throws Exception { FeedDropStatement stmtFeedDrop = (FeedDropStatement) stmt; SourceLocation sourceLoc = stmtFeedDrop.getSourceLocation(); String dataverseName = getActiveDataverse(stmtFeedDrop.getDataverseName()); String feedName = stmtFeedDrop.getFeedName().getValue(); MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction(); metadataProvider.setMetadataTxnContext(mdTxnCtx); MetadataLockUtil.dropFeedBegin(lockManager, metadataProvider.getLocks(), dataverseName, dataverseName + "." + feedName); try { Feed feed = MetadataManager.INSTANCE.getFeed(mdTxnCtx, dataverseName, feedName); if (feed == null) { if (!stmtFeedDrop.getIfExists()) { throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc, "There is no feed with this name " + feedName + "."); } MetadataManager.INSTANCE.commitTransaction(mdTxnCtx); return; } doDropFeed(hcc, metadataProvider, feed, sourceLoc); MetadataManager.INSTANCE.commitTransaction(mdTxnCtx); } catch (Exception e) { abort(e, e, mdTxnCtx); throw e; } finally { metadataProvider.getLocks().unlock(); } }
try { Feed feed = MetadataManager.INSTANCE.getFeed(metadataProvider.getMetadataTxnContext(), dataverseName, feedName); if (feed != null) { if (cfs.getIfNotExists()) {