private static String makeDatasetKey(DatasetId datasetInstance) { return Joiner.on('.').join("dataset", datasetInstance.getNamespace(), datasetInstance.getEntityName()); } }
@Override @Nullable public DatasetId fromNamespaced(DatasetId datasetInstanceId) { String namespacedDatasetName = datasetInstanceId.getEntityName(); if (!contains(namespacedDatasetName, datasetInstanceId.getNamespace())) { return null; } String prefix = rootPrefix + datasetInstanceId.getNamespace() + "."; String nonNamespaced = namespacedDatasetName.substring(prefix.length()); return datasetInstanceId.getParent().dataset(nonNamespaced); }
@Override @Nullable public DatasetId fromNamespaced(DatasetId datasetInstanceId) { String namespacedDatasetName = datasetInstanceId.getEntityName(); if (!contains(namespacedDatasetName, datasetInstanceId.getNamespace())) { return null; } String prefix = rootPrefix + datasetInstanceId.getNamespace() + "."; String nonNamespaced = namespacedDatasetName.substring(prefix.length()); return datasetInstanceId.getParent().dataset(nonNamespaced); }
private boolean isDatasetExplorable(DatasetId datasetInstance) { return !NamespaceId.SYSTEM.getNamespace().equals(datasetInstance.getNamespace()) && !"system.queue.config".equals(datasetInstance.getDataset()) && !datasetInstance.getDataset().startsWith("system.sharded.queue") && !datasetInstance.getDataset().startsWith("system.queue") && !datasetInstance.getDataset().startsWith("system.stream"); }
@Override public List<TriggerInfo> getTriggerInfos(TriggerInfoContext context) { TriggerInfo triggerInfo = new DefaultPartitionTriggerInfo(dataset.getNamespace(), dataset.getDataset(), numPartitions, getPartitionsCount(context.getNotifications())); return Collections.singletonList(triggerInfo); }
@Override public List<TriggerInfo> getTriggerInfos(TriggerInfoContext context) { TriggerInfo triggerInfo = new DefaultPartitionTriggerInfo(dataset.getNamespace(), dataset.getDataset(), numPartitions, getPartitionsCount(context.getNotifications())); return Collections.singletonList(triggerInfo); }
@Override public void drop(DatasetId datasetInstanceId, DatasetTypeMeta typeMeta, DatasetSpecification spec) throws Exception { DatasetType type = client.getDatasetType(typeMeta, null, new ConstantClassLoaderProvider()); if (type == null) { throw new IllegalArgumentException("Dataset type cannot be instantiated for provided type meta: " + typeMeta); } DatasetAdmin admin = type.getAdmin(DatasetContext.from(datasetInstanceId.getNamespace()), spec); admin.drop(); }
@Override public void drop(DatasetId datasetInstanceId, DatasetTypeMeta typeMeta, DatasetSpecification spec) throws Exception { DatasetType type = client.getDatasetType(typeMeta, null, new ConstantClassLoaderProvider()); if (type == null) { throw new IllegalArgumentException("Dataset type cannot be instantiated for provided type meta: " + typeMeta); } DatasetAdmin admin = type.getAdmin(DatasetContext.from(datasetInstanceId.getNamespace()), spec); admin.drop(); }
private void addDataset(MDSKey.Builder keyBuilder, DatasetId datasetInstance) { keyBuilder.add(DATASET_MARKER) .add(datasetInstance.getNamespace()) .add(datasetInstance.getEntityName()); }
protected QueryHandle doUpdateExploreDataset(DatasetId datasetInstance, DatasetSpecification oldSpec, DatasetSpecification newSpec) throws ExploreException { HttpResponse response = doPost(String.format("namespaces/%s/data/explore/datasets/%s/update", datasetInstance.getNamespace(), datasetInstance.getEntityName()), GSON.toJson(new UpdateExploreParameters(oldSpec, newSpec)), null); if (response.getResponseCode() == HttpURLConnection.HTTP_OK) { return QueryHandle.fromId(parseResponseAsMap(response, "handle")); } throw new ExploreException(String.format("Cannot update explore on dataset %s. Reason: %s", datasetInstance.toString(), response)); }
private void addDataset(MDSKey.Builder keyBuilder, DatasetId datasetInstance) { keyBuilder.add(DATASET_MARKER) .add(datasetInstance.getNamespace()) .add(datasetInstance.getEntityName()); }
@Override public MDSKey getKey(DatasetId datasetInstance) { return new MDSKey.Builder() .add(datasetInstance.getNamespace()) .add(datasetInstance.getEntityName()) .build(); }
@Override public MDSKey getKey(DatasetId datasetInstance) { return new MDSKey.Builder() .add(datasetInstance.getNamespace()) .add(datasetInstance.getEntityName()) .build(); }
@Override public void validate() { ProtoTrigger.validateNotNull(getDataset(), "dataset"); ProtoTrigger.validateNotNull(getDataset().getNamespace(), "dataset namespace"); ProtoTrigger.validateNotNull(getDataset().getDataset(), "dataset name"); ProtoTrigger.validateInRange(getNumPartitions(), "number of partitions", 1, null); }
@Override public void validate() { ProtoTrigger.validateNotNull(getDataset(), "dataset"); ProtoTrigger.validateNotNull(getDataset().getNamespace(), "dataset namespace"); ProtoTrigger.validateNotNull(getDataset().getDataset(), "dataset name"); ProtoTrigger.validateInRange(getNumPartitions(), "number of partitions", 1, null); }
private List<Job> getAllJobs() { return Transactionals.execute(transactional, context -> { JobQueueDataset jobQueue = context.getDataset(Schedulers.JOB_QUEUE_DATASET_ID.getNamespace(), Schedulers.JOB_QUEUE_DATASET_ID.getDataset()); try (CloseableIterator<Job> iterator = jobQueue.fullScan()) { return Lists.newArrayList(iterator); } }); } }
private HttpResponse deleteInstance(DatasetId instance) throws IOException { HttpRequest request = HttpRequest.delete(getUrl(instance.getNamespace(), "/data/datasets/" + instance.getEntityName())).build(); return HttpRequests.execute(request); }
private HttpResponse getInstance(DatasetId instance) throws IOException { URL instanceUrl = getUrl(instance.getNamespace(), "/data/datasets/" + instance.getEntityName()); HttpRequest request = HttpRequest.get(instanceUrl).build(); return HttpRequests.execute(request); }
private HttpResponse updateInstance(DatasetId instance, DatasetProperties props) throws IOException { HttpRequest request = HttpRequest.put(getUrl(instance.getNamespace(), "/data/datasets/" + instance.getEntityName() + "/properties")) .withBody(GSON.toJson(props.getProperties())).build(); return HttpRequests.execute(request); }
private void testAdminOp(DatasetId datasetInstanceId, String opName, int expectedStatus, Object expectedResult) throws IOException { String path = String.format("/namespaces/%s/data/datasets/%s/admin/%s", datasetInstanceId.getNamespace(), datasetInstanceId.getEntityName(), opName); URL targetUrl = resolve(path); HttpResponse response = HttpRequests.execute(HttpRequest.post(targetUrl).build()); DatasetAdminOpResponse body = getResponse(response.getResponseBody()); Assert.assertEquals(expectedStatus, response.getResponseCode()); Assert.assertEquals(expectedResult, body.getResult()); }