@Override public void deleteDataset(final NamespaceKey datasetPath, String version) throws NamespaceException { NameSpaceContainer container = deleteEntity(datasetPath, DATASET, version, true); if (container.getDataset().getType() == PHYSICAL_DATASET_SOURCE_FOLDER) { // create a folder so that any existing datasets under the folder are now visible addOrUpdateFolder(datasetPath, new FolderConfig() .setFullPathList(datasetPath.getPathComponents()) .setName(datasetPath.getName()) ); } }
protected static Folder newInstance(NamespacePath folderPath, FolderConfig folderConfig, FileFormat fileFormat, NamespaceTree contents, boolean isQueryable, boolean isFileSystemFolder, List<String> tags) { String id = folderConfig.getId() == null ? folderPath.toUrlPath() : folderConfig.getId().getId(); return new Folder(id, folderConfig.getName(), folderPath.toUrlPath(), folderConfig.getIsPhysicalDataset(), isFileSystemFolder, isQueryable, folderConfig.getExtendedConfig(), folderConfig.getTag(), fileFormat, contents, tags); } }
public static FolderConfig getFolderConfig(Folder folder) { FolderConfig config = new FolderConfig(); config.setId(new EntityId(folder.getId())); config.setFullPathList(folder.getPath()); config.setName(Iterables.getLast(folder.getPath())); if (folder.getTag() != null) { config.setTag(folder.getTag()); } return config; }
protected Folder getFolderFromConfig(FolderConfig config, List<CatalogItem> children) { return new Folder(config.getId().getId(), config.getFullPathList(), String.valueOf(config.getTag()), children); }
public ResourceTreeEntity(FolderConfig folderConfig) throws UnsupportedEncodingException { this.type = ResourceType.FOLDER; this.name = folderConfig.getName(); this.fullPath = folderConfig.getFullPathList(); this.url = "/resourcetree/" + new NamespaceKey(this.fullPath).toUrlEncodedString(); }
FolderConfig folderConfig1 = new FolderConfig(); folderConfig1.setId(new EntityId("folder-id-1")); folderConfig1.setName("folder1"); folderConfig1.setFullPathList(Arrays.asList(sourceConfig.getName(), folderConfig1.getName())); NameSpaceContainer folder = new NameSpaceContainer(); folder.setFolder(folderConfig1); FolderConfig folderConfig2 = new FolderConfig(); folderConfig2.setId(new EntityId("folder-id-2")); folderConfig2.setName("folder2"); folderConfig2.setFullPathList(Arrays.asList(sourceConfig.getName(), folderConfig2.getName())); folder = new NameSpaceContainer(); folder.setFolder(folderConfig2); FolderConfig folderConfig11 = new FolderConfig(); folderConfig11.setId(new EntityId("folder-id-11")); folderConfig11.setName("folder11"); folderConfig11.setFullPathList(Arrays.asList(sourceConfig.getName(), folderConfig1.getName(), folderConfig11.getName())); folder = new NameSpaceContainer(); folder.setFolder(folderConfig11); folder.setType(NameSpaceContainer.Type.FOLDER); containerList2.add(folder); when(namespaceService.list(new NamespaceKey(folderConfig1.getFullPathList()))).thenReturn(containerList2); childrenForPath = catalogServiceHelper.getChildrenForPath(new NamespaceKey(folderConfig1.getFullPathList())); assertEquals(childrenForPath.size(), 1);
public static String getVersion(NamespaceKey namespaceKey, NamespaceService namespaceService) throws NamespaceException { NameSpaceContainer container = namespaceService.getEntities(Arrays.asList(namespaceKey)).get(0); switch (container.getType()) { case SOURCE: return container.getSource().getTag(); case SPACE: return container.getSpace().getTag(); case HOME: return container.getHome().getTag(); case FOLDER: return container.getFolder().getTag(); case DATASET: return container.getDataset().getTag(); default: throw new RuntimeException("Invalid container type"); } } }
public void addCPSource(boolean createFolder) throws Exception { getSourceService().registerSourceWithRuntime(InternalFileConf.create(TEST_SOURCE, new URI("classpath:///acceleration/"), SchemaMutability.ALL, CatalogService.DEFAULT_METADATA_POLICY)); final NamespaceService nsService = getNamespaceService(); final SpaceConfig config = new SpaceConfig().setName(TEST_SPACE); if(!nsService.exists(new SpacePath(config.getName()).toNamespaceKey())) { nsService.addOrUpdateSpace(new SpacePath(config.getName()).toNamespaceKey(), config); } if (createFolder) { final FolderConfig folderConfig = new FolderConfig().setName(TEST_FOLDER); nsService.addOrUpdateFolder(TEST_FOLDER_PATH.toNamespaceKey(), folderConfig); } }
FolderConfig config = (FolderConfig) object; String version = config.getTag(); namespaceService.deleteFolder(new NamespaceKey(config.getFullPathList()), version); } else { throw new UnsupportedOperationException(String.format("Catalog item [%s] of type [%s] can not be deleted.", id, object.getClass().getName()));
public FolderConfig newMessage() { return new FolderConfig(); }
/** helper method that sets the given id in given container */ static void setId(NameSpaceContainer container, String id) { switch (container.getType()) { case SOURCE: container.getSource().setId(new EntityId(id)); return; case SPACE: container.getSpace().setId(new EntityId(id)); return; case HOME: container.getHome().setId(new EntityId(id)); return; case FOLDER: container.getFolder().setId(new EntityId(id)); return; case DATASET: container.getDataset().setId(new EntityId(id)); return; default: throw new RuntimeException("Invalid container type"); } }
protected void updateFolder(Folder folder, NamespaceAttribute... attributes) throws NamespaceException { NamespaceKey namespaceKey = new NamespaceKey(folder.getPath()); FolderConfig folderConfig = namespaceService.getFolder(namespaceKey); Preconditions.checkArgument(CollectionUtils.isEqualCollection(folder.getPath(), folderConfig.getFullPathList()), "Folder path is immutable."); NameSpaceContainer rootContainer = getRootContainer(folder.getPath()); if (rootContainer.getType() == NameSpaceContainer.Type.SOURCE) { throw new UnsupportedOperationException("Can not update a folder inside a source"); } namespaceService.addOrUpdateFolder(namespaceKey, getFolderConfig(folder), attributes); }
/** helper method that returns the id of the entity in given container */ public static String getId(NameSpaceContainer container) { EntityId entityId; switch (container.getType()) { case SOURCE: entityId = container.getSource().getId(); break; case SPACE: entityId = container.getSpace().getId(); break; case HOME: entityId = container.getHome().getId(); break; case FOLDER: entityId = container.getFolder().getId(); break; case DATASET: entityId = container.getDataset().getId(); break; default: throw new RuntimeException("Invalid container type"); } return entityId != null ? entityId.getId() : null; }
@Override public void setTag(NameSpaceContainer value, String version) { switch (value.getType()) { case DATASET: value.getDataset().setTag(version); break; case FOLDER: value.getFolder().setTag(version); break; case HOME: value.getHome().setTag(version); break; case SOURCE: value.getSource().setTag(version); break; case SPACE: value.getSpace().setTag(version); break; default: throw new UnsupportedOperationException("Unknown type: " + value.getType()); } }
FolderConfig folderConfig1 = new FolderConfig(); folderConfig1.setId(new EntityId("folder-id-1")); folderConfig1.setName("folder1"); folderConfig1.setFullPathList(Arrays.asList(sourceConfig.getName(), folderConfig1.getName())); NameSpaceContainer folder = new NameSpaceContainer(); folder.setFolder(folderConfig1); FolderConfig folderConfig2 = new FolderConfig(); folderConfig2.setId(new EntityId("folder-id-2")); folderConfig2.setName("folder2"); folderConfig2.setFullPathList(Arrays.asList(sourceConfig.getName(), folderConfig2.getName())); folder = new NameSpaceContainer(); folder.setFolder(folderConfig2); SchemaEntity schemaEntityFolder1 = new SchemaEntity(com.dremio.common.utils.PathUtils.constructFullPath(folderConfig1.getFullPathList()), SchemaEntity.SchemaEntityType.FOLDER, "testuser"); SchemaEntity schemaEntityFolder2 = new SchemaEntity(com.dremio.common.utils.PathUtils.constructFullPath(folderConfig2.getFullPathList()), SchemaEntity.SchemaEntityType.FOLDER, "testuser");
public static CatalogItem fromFolderConfig(FolderConfig folderConfig) { return new Builder() .setId(folderConfig.getId().getId()) .setPath(Lists.newArrayList(folderConfig.getFullPathList())) .setTag(String.valueOf(folderConfig.getTag())) .setType(CatalogItemType.CONTAINER) .setContainerType(ContainerSubType.FOLDER) .build(); }
systemUserNamespaceService.deleteFolder(folderKey, folderConfig.getTag()); refreshResult = true; } catch (NamespaceNotFoundException ex) {
FolderConfig config = (FolderConfig) object; Folder folder = getFolderFromConfig(config, getChildrenForPath(new NamespaceKey(config.getFullPathList()))); return Optional.of((CatalogEntity) folder); } else if (object instanceof CatalogEntity) {
writer.write(NamespaceIndexKeys.FOLDER_ID, folderConfig.getId().getId()); break;
@POST @Path("/folder/{path: .*}") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Folder createFolder(FolderName name, @PathParam("path") String path) throws Exception { String fullPath = PathUtils.toFSPathString(Arrays.asList(path, name.toString())); FolderPath folderPath = FolderPath.fromURLPath(homeName, fullPath); final FolderConfig folderConfig = new FolderConfig(); folderConfig.setFullPathList(folderPath.toPathList()); folderConfig.setName(folderPath.getFolderName().getName()); try { namespaceService.addOrUpdateFolder(folderPath.toNamespaceKey(), folderConfig); } catch(NamespaceNotFoundException nfe) { throw new ClientErrorException("Parent folder doesn't exist", nfe); } return newFolder(folderPath, folderConfig, null); }