Search in sources :

Example 1 with MetacatDeleteDatabasePostEvent

use of com.netflix.metacat.common.server.events.MetacatDeleteDatabasePostEvent in project metacat by Netflix.

the class DatabaseServiceImpl method delete.

/**
 * {@inheritDoc}
 */
@Override
public void delete(final QualifiedName name) {
    validate(name);
    final MetacatRequestContext metacatRequestContext = MetacatContextManager.getContext();
    this.authorizationService.checkPermission(metacatRequestContext.getUserName(), name, MetacatOperation.DELETE);
    log.info("Dropping schema {}", name);
    final DatabaseDto dto = get(name, GetDatabaseServiceParameters.builder().disableOnReadMetadataIntercetor(false).includeUserMetadata(true).includeTableNames(true).build());
    eventBus.post(new MetacatDeleteDatabasePreEvent(name, metacatRequestContext, this, dto));
    final ConnectorRequestContext connectorRequestContext = converterUtil.toConnectorContext(metacatRequestContext);
    connectorManager.getDatabaseService(name).delete(connectorRequestContext, name);
    // Delete definition metadata if it exists
    if (userMetadataService.getDefinitionMetadata(name).isPresent()) {
        log.info("Deleting user metadata for schema {}", name);
        userMetadataService.deleteDefinitionMetadata(ImmutableList.of(name));
    }
    eventBus.post(new MetacatDeleteDatabasePostEvent(name, metacatRequestContext, this, dto));
}
Also used : MetacatDeleteDatabasePostEvent(com.netflix.metacat.common.server.events.MetacatDeleteDatabasePostEvent) MetacatRequestContext(com.netflix.metacat.common.MetacatRequestContext) MetacatDeleteDatabasePreEvent(com.netflix.metacat.common.server.events.MetacatDeleteDatabasePreEvent) DatabaseDto(com.netflix.metacat.common.dto.DatabaseDto) ConnectorRequestContext(com.netflix.metacat.common.server.connectors.ConnectorRequestContext)

Aggregations

MetacatRequestContext (com.netflix.metacat.common.MetacatRequestContext)1 DatabaseDto (com.netflix.metacat.common.dto.DatabaseDto)1 ConnectorRequestContext (com.netflix.metacat.common.server.connectors.ConnectorRequestContext)1 MetacatDeleteDatabasePostEvent (com.netflix.metacat.common.server.events.MetacatDeleteDatabasePostEvent)1 MetacatDeleteDatabasePreEvent (com.netflix.metacat.common.server.events.MetacatDeleteDatabasePreEvent)1