@Override public boolean apply(@Nullable ProjectInstance input) { return input.getName().equals(projectName); } }));
private void generateKylinProjectFileForSystemCube(String output, ProjectInstance projectInstance) throws IOException { saveSystemCubeMetadataToFile(output + D_PROJECT + projectInstance.getName() + ".json", projectInstance, CubeDescManager.CUBE_DESC_SERIALIZER); }
private List<String> getProjects(String projectSeed) { List<String> result = Lists.newLinkedList(); if (projectSeed.equalsIgnoreCase("-all")) { ProjectManager projectManager = ProjectManager.getInstance(KylinConfig.getInstanceFromEnv()); for (ProjectInstance projectInstance : projectManager.listAllProjects()) { result.add(projectInstance.getName()); } } else { result.add(projectSeed); } if (result.isEmpty()) { throw new RuntimeException("No project to extract."); } return result; }
private ProjectInstance save(ProjectInstance prj) throws IOException { crud.save(prj); clearL2Cache(prj.getName()); return prj; }
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#currentProject, 'ADMINISTRATION')") public ProjectInstance updateProject(ProjectInstance newProject, ProjectInstance currentProject) throws IOException { String newProjectName = newProject.getName(); String newDescription = newProject.getDescription(); LinkedHashMap<String, String> overrideProps = newProject.getOverrideKylinProps(); ProjectInstance updatedProject = getProjectManager().updateProject(currentProject, newProjectName, newDescription, overrideProps); logger.debug("Project updated."); return updatedProject; }
private void revokeTableACL(String entityType, String uuid, String name, String identityType) throws IOException { if (AclEntityType.PROJECT_INSTANCE.equals(entityType)) { String prj = projectService.getProjectManager().getPrjByUuid(uuid).getName(); if (tableACLService.exists(prj, name, identityType)) { tableACLService.deleteFromTableACL(prj, name, identityType); } } }
public String getProject() { DataModelDesc modelDesc = getModel(); if (modelDesc == null) { // In case the model for cube not exists in metadata List<ProjectInstance> ownerPrj = ProjectManager.getInstance(config).findProjects(RealizationType.CUBE, name); if (ownerPrj.size() == 1) { return ownerPrj.get(0).getName(); } else { throw new IllegalStateException("No project found for cube " + name); } } else { return getModel().getProject(); } }
public String getProjectOfModel(String modelName) { for (ProjectInstance p : getProjectManager().listAllProjects()) { if (p.containsModel(modelName)) return p.getName(); } return null; }
public String getProjectOfCube(String cubeName) { for (ProjectInstance p : getProjectManager().listAllProjects()) { if (p.containsRealization(RealizationType.CUBE, cubeName)) return p.getName(); } return null; }
public ProjectInstance updateProject(ProjectInstance project, String newName, String newDesc, LinkedHashMap<String, String> overrideProps) throws IOException { try (AutoLock lock = prjMapLock.lockForWrite()) { Preconditions.checkArgument(project.getName().equals(newName)); project.setName(newName); project.setDescription(newDesc); project.setOverrideKylinProps(overrideProps); if (project.getUuid() == null) project.updateRandomUuid(); return save(project); } }
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#project, 'ADMINISTRATION') or hasPermission(#project, 'MANAGEMENT')") public void saveDraft(ProjectInstance project, CubeInstance cube, String uuid, RootPersistentEntity... entities) throws IOException { Draft draft = new Draft(); draft.setProject(project.getName()); draft.setUuid(uuid); draft.setEntities(entities); getDraftManager().save(draft); }
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#project, 'ADMINISTRATION') or hasPermission(#project, 'MANAGEMENT')") public void saveDraft(ProjectInstance project, String uuid, RootPersistentEntity... entities) throws IOException { Draft draft = new Draft(); draft.setProject(project.getName()); draft.setUuid(uuid); draft.setEntities(entities); getDraftManager().save(draft); }
public String getProject() { return ProjectManager.getInstance(getConfig()).getProjectOfModel(this.getName()).getName(); }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { String cubeName = cacheKey; if (event == Event.DROP) removeCubeLocal(cubeName); else reloadCubeQuietly(cubeName); for (ProjectInstance prj : ProjectManager.getInstance(config).findProjects(RealizationType.CUBE, cubeName)) { broadcaster.notifyProjectDataUpdate(prj.getName()); } } }
@Override protected DataModelDesc initEntityAfterReload(DataModelDesc model, String resourceName) { String prj = ProjectManager.getInstance(config).getProjectOfModel(model.getName()).getName(); if (!model.isDraft()) { model.init(config, getAllTablesMap(prj), getModels(prj), true); } return model; } };
private void requireProject(ProjectInstance projectInstance) throws IOException { addRequired(projectInstance.getResourcePath()); List<RealizationEntry> realizationEntries = projectInstance.getRealizationEntries(); for (RealizationEntry realizationEntry : realizationEntries) { retrieveResourcePath(getRealization(realizationEntry)); } List<DataModelDesc> modelDescs = metadataManager.getModels(projectInstance.getName()); for (DataModelDesc modelDesc : modelDescs) { addRequired(DataModelDesc.concatResourcePath(modelDesc.getName())); } addOptional(badQueryHistoryManager.getBadQueriesForProject(projectInstance.getName()).getResourcePath()); }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { try (AutoLock lock = modelMapLock.lockForWrite()) { if (event == Event.DROP) dataModelDescMap.removeLocal(cacheKey); else crud.reloadQuietly(cacheKey); } for (ProjectInstance prj : ProjectManager.getInstance(config).findProjectsByModel(cacheKey)) { broadcaster.notifyProjectSchemaUpdate(prj.getName()); } } }
public void dropModel(DataModelDesc desc) throws IOException { aclEvaluate.checkProjectWritePermission(desc.getProjectInstance().getName()); Message msg = MsgPicker.getMsg(); //check cube desc exist List<CubeDesc> cubeDescs = getCubeDescManager().listAllDesc(); for (CubeDesc cubeDesc : cubeDescs) { if (cubeDesc.getModelName().equals(desc.getName())) { throw new BadRequestException( String.format(Locale.ROOT, msg.getDROP_REFERENCED_MODEL(), cubeDesc.getName())); } } getDataModelManager().dropModel(desc); }
@Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { String cubeDescName = cacheKey; CubeDesc cubeDesc = getCubeDesc(cubeDescName); String modelName = cubeDesc == null ? null : cubeDesc.getModelName(); if (event == Event.DROP) removeLocalCubeDesc(cubeDescName); else reloadCubeDescQuietly(cubeDescName); for (ProjectInstance prj : ProjectManager.getInstance(config).findProjectsByModel(modelName)) { broadcaster.notifyProjectSchemaUpdate(prj.getName()); } } }
private DataModelDesc saveDataModelDesc(DataModelDesc dataModelDesc) throws IOException { String prj = ProjectManager.getInstance(config).getProjectOfModel(dataModelDesc.getName()).getName(); if (!dataModelDesc.isDraft()) dataModelDesc.init(config, this.getAllTablesMap(prj), getModels(prj), false); crud.save(dataModelDesc); return dataModelDesc; }