@Override public void onCreateTable(CreateTableEvent tableEvent) throws MetaException { // Subscriber can get notification about addition of a table in HCAT // by listening on a topic named "HCAT" and message selector string // as "HCAT_EVENT = HCAT_ADD_TABLE" if (tableEvent.getStatus()) { Table tbl = tableEvent.getTable(); IHMSHandler handler = tableEvent.getIHMSHandler(); Configuration conf = handler.getConf(); Table newTbl; try { newTbl = handler.get_table_core(tbl.getCatName(), tbl.getDbName(), tbl.getTableName()) .deepCopy(); newTbl.getParameters().put( HCatConstants.HCAT_MSGBUS_TOPIC_NAME, getTopicPrefix(conf) + "." + newTbl.getDbName().toLowerCase() + "." + newTbl.getTableName().toLowerCase()); handler.alter_table(newTbl.getDbName(), newTbl.getTableName(), newTbl); } catch (TException e) { MetaException me = new MetaException(e.toString()); me.initCause(e); throw me; } String topicName = getTopicPrefix(conf) + "." + newTbl.getDbName().toLowerCase(); send(messageFactory.buildCreateTableMessage(newTbl), topicName); } }
EventType.CREATE_TABLE, new CreateTableEvent(tbl, true, this), envContext); if (primaryKeys != null && !primaryKeys.isEmpty()) { MetaStoreListenerNotifier.notifyEvent(transactionalListeners, EventType.ADD_PRIMARYKEY, new CreateTableEvent(tbl, success, this), envContext, transactionalListenerResponses, ms); if (primaryKeys != null && !primaryKeys.isEmpty()) { MetaStoreListenerNotifier.notifyEvent(listeners, EventType.ADD_PRIMARYKEY,
assertEquals(notifyList.size(), listSize); CreateTableEvent tblEvent = (CreateTableEvent)(notifyList.get(listSize - 1)); assert tblEvent.getStatus(); assertEquals(envContext, tblEvent.getEnvironmentContext());
if (tableEvent.getStatus()) { Table tbl = tableEvent.getTable(); HMSHandler handler = tableEvent.getHandler(); HiveConf conf = handler.getHiveConf(); Table newTbl;
/** * @param tableEvent table event. * @throws MetaException */ @Override public void onCreateTable(CreateTableEvent tableEvent) throws MetaException { Table t = tableEvent.getTable(); FileIterator fileIter = MetaStoreUtils.isExternalTable(t) ? null : new FileIterator(t.getSd().getLocation()); CreateTableMessage msg = MessageBuilder.getInstance().buildCreateTableMessage(t, fileIter); NotificationEvent event = new NotificationEvent(0, now(), EventType.CREATE_TABLE.toString(), msgEncoder.getSerializer().serialize(msg)); event.setCatName(t.isSetCatName() ? t.getCatName() : DEFAULT_CATALOG_NAME); event.setDbName(t.getDbName()); event.setTableName(t.getTableName()); process(event, tableEvent); }
new CreateTableEvent(tbl, success, this); createTableEvent.setEnvironmentContext(envContext); listener.onCreateTable(createTableEvent);
if (tableEvent.getStatus()) { Table tbl = tableEvent.getTable(); HMSHandler handler = tableEvent.getHandler(); HiveConf conf = handler.getHiveConf(); Table newTbl;
/** * Listener which fires when a table is created. * * <p>For auditing purposes the read/write differential is the non-existence * and existence of the created table respectively.</p> * * @param event The create table event */ @Override public void onCreateTable(CreateTableEvent event) throws MetaException { try { Set<ReadEntity> readEntities = new HashSet<>(); Set<WriteEntity> writeEntities = new HashSet<>(); writeEntities.add( new WriteEntity( new Table(event.getTable()), WriteType.INSERT ) ); run(readEntities, writeEntities, HiveOperation.THRIFT_CREATE_TABLE); } catch (Exception e) { throw new RuntimeException(e); } }
@Override public void onCreateTable (CreateTableEvent tableEvent) throws MetaException { // don't sync paths/privileges if the operation has failed if (!tableEvent.getStatus()) { LOGGER.debug("Skip sync paths/privileges with Sentry server for onCreateTable event," + " since the operation failed. \n"); return; } if (tableEvent.getTable().getSd().getLocation() != null) { String authzObj = tableEvent.getTable().getDbName() + "." + tableEvent.getTable().getTableName(); String path = tableEvent.getTable().getSd().getLocation(); for (SentryMetastoreListenerPlugin plugin : sentryPlugins) { plugin.addPath(authzObj, path); } } // drop the privileges on the given table, in case if anything was left // behind during the drop if (!syncWithPolicyStore(AuthzConfVars.AUTHZ_SYNC_CREATE_WITH_POLICY_STORE)) { return; } dropSentryTablePrivilege(tableEvent.getTable().getDbName(), tableEvent.getTable().getTableName()); }
new CreateTableEvent(tbl, success, this); createTableEvent.setEnvironmentContext(envContext); listener.onCreateTable(createTableEvent);
@Override public void onCreateTable(CreateTableEvent tableEvent) throws MetaException { // Subscriber can get notification about addition of a table in HCAT // by listening on a topic named "HCAT" and message selector string // as "HCAT_EVENT = HCAT_ADD_TABLE" if (tableEvent.getStatus()) { Table tbl = tableEvent.getTable(); IHMSHandler handler = tableEvent.getIHMSHandler(); Configuration conf = handler.getConf(); Table newTbl; try { newTbl = handler.get_table_core(tbl.getCatName(), tbl.getDbName(), tbl.getTableName()) .deepCopy(); newTbl.getParameters().put( HCatConstants.HCAT_MSGBUS_TOPIC_NAME, getTopicPrefix(conf) + "." + newTbl.getDbName().toLowerCase() + "." + newTbl.getTableName().toLowerCase()); handler.alter_table(newTbl.getDbName(), newTbl.getTableName(), newTbl); } catch (TException e) { MetaException me = new MetaException(e.toString()); me.initCause(e); throw me; } String topicName = getTopicPrefix(conf) + "." + newTbl.getDbName().toLowerCase(); send(messageFactory.buildCreateTableMessage(newTbl), topicName); } }
/** * Listener which fires when a table is created. * * <p>For auditing purposes the read/write differential is the non-existence * and existence of the created table respectively.</p> * * @param event The create table event */ @Override public void onCreateTable(CreateTableEvent event) throws MetaException { try { Set<ReadEntity> readEntities = new HashSet<>(); Set<WriteEntity> writeEntities = new HashSet<>(); writeEntities.add( new WriteEntity( new Table(event.getTable()), WriteType.INSERT ) ); run(readEntities, writeEntities, HiveOperation.THRIFT_CREATE_TABLE); } catch (Exception e) { throw new RuntimeException(e); } }
new CreateTableEvent(tbl, success, this); createTableEvent.setEnvironmentContext(envContext); listener.onCreateTable(createTableEvent);
EventType.CREATE_TABLE, new CreateTableEvent(tbl, true, this), envContext); if (primaryKeys != null && !primaryKeys.isEmpty()) { MetaStoreListenerNotifier.notifyEvent(transactionalListeners, EventType.ADD_PRIMARYKEY, new CreateTableEvent(tbl, success, this), envContext, transactionalListenerResponses, ms); if (primaryKeys != null && !primaryKeys.isEmpty()) { MetaStoreListenerNotifier.notifyEvent(listeners, EventType.ADD_PRIMARYKEY,
/** * @param tableEvent table event. * @throws MetaException */ public void onCreateTable (CreateTableEvent tableEvent) throws MetaException { Table t = tableEvent.getTable(); NotificationEvent event = new NotificationEvent(0, now(), HCatConstants.HCAT_CREATE_TABLE_EVENT, msgFactory.buildCreateTableMessage(t).toString()); event.setDbName(t.getDbName()); event.setTableName(t.getTableName()); enqueue(event); }
table.setSd(new StorageDescriptor()); CreateTableEvent event = new CreateTableEvent(table, true, null); metastoreAuditLogListener.onCreateTable(event);
/** * @param tableEvent table event. * @throws MetaException */ public void onCreateTable (CreateTableEvent tableEvent) throws MetaException { Table t = tableEvent.getTable(); NotificationEvent event = new NotificationEvent(0, now(), HCatConstants.HCAT_CREATE_TABLE_EVENT, msgFactory.buildCreateTableMessage(t).toString()); event.setDbName(t.getDbName()); event.setTableName(t.getTableName()); enqueue(event); }
/** * @param tableEvent table event. * @throws MetaException */ @Override public void onCreateTable(CreateTableEvent tableEvent) throws MetaException { Table t = tableEvent.getTable(); NotificationEvent event = new NotificationEvent(0, now(), EventType.CREATE_TABLE.toString(), msgFactory .buildCreateTableMessage(t, new FileIterator(t.getSd().getLocation())).toString()); event.setCatName(t.isSetCatName() ? t.getCatName() : DEFAULT_CATALOG_NAME); event.setDbName(t.getDbName()); event.setTableName(t.getTableName()); process(event, tableEvent); }