@Override protected void startUp() throws Exception { LOG.info("Starting DatasetService..."); typeService.startAndWait(); opExecutorClient.startAndWait(); httpService.start(); // setting watch for ops executor service that we need to be running to operate correctly ServiceDiscovered discover = discoveryServiceClient.discover(Constants.Service.DATASET_EXECUTOR); opExecutorDiscovered = SettableFuture.create(); opExecutorServiceWatch = discover.watchChanges( serviceDiscovered -> { if (!Iterables.isEmpty(serviceDiscovered)) { LOG.info("Discovered {} service", Constants.Service.DATASET_EXECUTOR); opExecutorDiscovered.set(serviceDiscovered); } }, MoreExecutors.sameThreadExecutor()); for (DatasetMetricsReporter metricsReporter : metricReporters) { metricsReporter.start(); } }
@Override protected void shutDown() throws Exception { LOG.info("Stopping DatasetService..."); for (DatasetMetricsReporter metricsReporter : metricReporters) { metricsReporter.stop(); } if (opExecutorServiceWatch != null) { opExecutorServiceWatch.cancel(); } typeService.stopAndWait(); if (cancelDiscovery != null) { cancelDiscovery.cancel(); } // Wait for a few seconds for requests to stop try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { LOG.error("Interrupted while waiting...", e); } httpService.stop(); opExecutorClient.stopAndWait(); }
/** * Drops a dataset. * * @param spec specification of dataset to be dropped. * @throws Exception on error. */ private void dropDataset(DatasetId instance, DatasetSpecification spec) throws Exception { LOG.info("Deleting dataset {}.{}", instance.getNamespace(), instance.getEntityName()); disableExplore(instance, spec); if (!instanceManager.delete(instance)) { throw new DatasetNotFoundException(instance); } metaCache.invalidate(instance); // by pass the auth check for dataset type when the operation is not creation DatasetTypeMeta typeMeta = getTypeInfo(instance.getParent(), spec.getType(), true); if (typeMeta == null) { throw new DatasetNotFoundException(instance); } opExecutorClient.drop(instance, typeMeta, spec); // Remove metadata for the dataset LOG.trace("Removing metadata for dataset {}", instance); metadataStore.removeMetadata(instance.toMetadataEntity()); LOG.trace("Removed metadata for dataset {}", instance); publishAudit(instance, AuditType.DELETE); // deletes the owner principal for the entity if one was stored during creation ownerAdmin.delete(instance); }
AuthorizationUtil.ensureAccess(instance, authorizationEnforcer, principal); result = opExecutorClient.exists(instance); break; case "truncate": throw new DatasetNotFoundException(instance); opExecutorClient.truncate(instance); publishAudit(instance, AuditType.TRUNCATE); break; throw new DatasetNotFoundException(instance); opExecutorClient.upgrade(instance); publishAudit(instance, AuditType.UPDATE); break;
DatasetCreationResponse response = opExecutorClient.update(instance, typeMeta, datasetProperties, existing); DatasetSpecification spec = response.getSpec(); instanceManager.add(instance.getParent(), spec);
DatasetCreationResponse response = opExecutorClient.create(datasetId, typeMeta, datasetProperties); LOG.trace("Received spec and metadata from op executor service for dataset {}: {}", name, response);
AuthorizationUtil.ensureAccess(instance, authorizationEnforcer, principal); result = opExecutorClient.exists(instance); break; case "truncate": throw new DatasetNotFoundException(instance); opExecutorClient.truncate(instance); publishAudit(instance, AuditType.TRUNCATE); break; throw new DatasetNotFoundException(instance); opExecutorClient.upgrade(instance); publishAudit(instance, AuditType.UPDATE); break;
DatasetCreationResponse response = opExecutorClient.update(instance, typeMeta, datasetProperties, existing); DatasetSpecification spec = response.getSpec(); instanceManager.add(instance.getParent(), spec);
DatasetCreationResponse response = opExecutorClient.create(datasetId, typeMeta, datasetProperties); LOG.trace("Received spec and metadata from op executor service for dataset {}: {}", name, response);
@Override protected void startUp() throws Exception { LOG.info("Starting DatasetService..."); typeService.startAndWait(); opExecutorClient.startAndWait(); httpService.start(); // setting watch for ops executor service that we need to be running to operate correctly ServiceDiscovered discover = discoveryServiceClient.discover(Constants.Service.DATASET_EXECUTOR); opExecutorDiscovered = SettableFuture.create(); opExecutorServiceWatch = discover.watchChanges( serviceDiscovered -> { if (!Iterables.isEmpty(serviceDiscovered)) { LOG.info("Discovered {} service", Constants.Service.DATASET_EXECUTOR); opExecutorDiscovered.set(serviceDiscovered); } }, MoreExecutors.sameThreadExecutor()); for (DatasetMetricsReporter metricsReporter : metricReporters) { metricsReporter.start(); } }
@Override protected void shutDown() throws Exception { LOG.info("Stopping DatasetService..."); for (DatasetMetricsReporter metricsReporter : metricReporters) { metricsReporter.stop(); } if (opExecutorServiceWatch != null) { opExecutorServiceWatch.cancel(); } typeService.stopAndWait(); if (cancelDiscovery != null) { cancelDiscovery.cancel(); } // Wait for a few seconds for requests to stop try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { LOG.error("Interrupted while waiting...", e); } httpService.stop(); opExecutorClient.stopAndWait(); }
/** * Drops a dataset. * * @param spec specification of dataset to be dropped. * @throws Exception on error. */ private void dropDataset(DatasetId instance, DatasetSpecification spec) throws Exception { LOG.info("Deleting dataset {}.{}", instance.getNamespace(), instance.getEntityName()); disableExplore(instance, spec); if (!instanceManager.delete(instance)) { throw new DatasetNotFoundException(instance); } metaCache.invalidate(instance); // by pass the auth check for dataset type when the operation is not creation DatasetTypeMeta typeMeta = getTypeInfo(instance.getParent(), spec.getType(), true); if (typeMeta == null) { throw new DatasetNotFoundException(instance); } opExecutorClient.drop(instance, typeMeta, spec); // Remove metadata for the dataset LOG.trace("Removing metadata for dataset {}", instance); metadataPublisher.publish(NamespaceId.SYSTEM, new MetadataOperation.Drop(instance.toMetadataEntity())); LOG.trace("Removed metadata for dataset {}", instance); publishAudit(instance, AuditType.DELETE); // deletes the owner principal for the entity if one was stored during creation ownerAdmin.delete(instance); }
public static Injector startMetricsService(CConfiguration conf) { Injector injector = Guice.createInjector(new AppFabricTestModule(conf)); injector.getInstance(TransactionManager.class).startAndWait(); injector.getInstance(DatasetOpExecutor.class).startAndWait(); injector.getInstance(DatasetService.class).startAndWait(); return injector; }
@AfterClass public static void afterClass() { dsService.stopAndWait(); dsOpsService.stopAndWait(); txService.stopAndWait(); }
txService.startAndWait(); dsOpService = injector.getInstance(DatasetOpExecutor.class); dsOpService.startAndWait(); datasetService = injector.getInstance(DatasetService.class); datasetService.startAndWait();
dsOpService.stopAndWait(); txService.stopAndWait();
txService.startAndWait(); dsOpService = injector.getInstance(DatasetOpExecutor.class); dsOpService.startAndWait(); datasetService = injector.getInstance(DatasetService.class); datasetService.startAndWait();
dsOpService.stopAndWait(); txService.stopAndWait();
injector.getInstance(DatasetOpExecutor.class).startAndWait(); injector.getInstance(DatasetService.class).startAndWait(); injector.getInstance(MetricsCollectionService.class).startAndWait();
@AfterClass public static void afterClass() throws Exception { deleteNamespaces(); appFabricServer.stopAndWait(); metricsCollectionService.stopAndWait(); datasetService.stopAndWait(); dsOpService.stopAndWait(); txManager.stopAndWait(); serviceStore.stopAndWait(); metadataSubscriberService.stopAndWait(); metadataService.stopAndWait(); if (messagingService instanceof Service) { ((Service) messagingService).stopAndWait(); } }