public HomeConfig newMessage() { return new HomeConfig(); }
@Override public Long getCtime() { return homeConfig.getCtime(); }
@RolesAllowed("admin") @PUT @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public UserUI createUser(UserForm userForm, @PathParam("userName") UserName userName) throws IOException, IllegalArgumentException, NamespaceException, DACUnauthorizedException { checkUser(userName, "create"); User newUser = SimpleUser.newBuilder(userForm.getUserConfig()).setCreatedAt(System.currentTimeMillis()).build(); newUser = userService.createUser(newUser, userForm.getPassword()); try { namespaceService.addOrUpdateHome(new HomePath(HomeName.getUserHomePath(userName.getName())).toNamespaceKey(), new HomeConfig().setCtime(System.currentTimeMillis()).setOwner(userName.getName())); } catch (Exception e) { try { userService.deleteUser(newUser.getUserName(), newUser.getVersion()); } catch (UserNotFoundException e1) { logger.warn("Could not delete a user {} after failing to create corresponding home space", userName.getName()); } finally { throw UserException.unsupportedError() .message("Could not create user '%s', make sure you don't already have a similar user with different casing", newUser.getUserName()) .addContext("Cause", e.getMessage()) .build(); } } return new UserUI(new UserResourcePath(userName), userName, newUser); }
@Test public void testGetTopLevelCatalogItems() throws Exception { HomeConfig homeConfig = new HomeConfig(); homeConfig.setOwner("user"); homeConfig.setId(new EntityId("home-id")); when(namespaceService.getHome(new HomePath(HomeName.getUserHomePath("user")).toNamespaceKey())).thenReturn(homeConfig); if (item.getContainerType() == CatalogItem.ContainerSubType.HOME) { homeCount++; assertEquals(item.getId(), homeConfig.getId().getId());
private static void createHomeDir(NamespaceService ns, String user) throws NamespaceException { final NamespaceKey homeKey = new HomePath(HomeName.getUserHomePath(user)).toNamespaceKey(); if (!ns.exists(homeKey, Type.HOME)) { final HomeConfig homeConfig = new HomeConfig().setOwner(user); ns.addOrUpdateHome(homeKey, homeConfig); } }
config.setName("testB"); namespaceService.addOrUpdateSpace(new SpacePath(config.getName()).toNamespaceKey(), config); final HomeConfig home1 = new HomeConfig(); home1.setOwner(DEFAULT_USER_NAME); namespaceService.addOrUpdateHome(new HomePath(HomeName.getUserHomePath(home1.getOwner())).toNamespaceKey(), home1);
private void addHome(String name) throws Exception { final HomeConfig home = new HomeConfig() .setId(new EntityId().setId(UUID.randomUUID().toString())) .setOwner(name); final NameSpaceContainer container = new NameSpaceContainer() .setType(NameSpaceContainer.Type.HOME) .setFullPathList(Arrays.asList(name)) .setHome(home); namespaceStore.put(NamespaceServiceImpl.getKey(new NamespaceKey("@" + name)), container); }
@Override public String getName() { return "@" + homeConfig.getOwner(); }
public String getId() { return homeConfig.getId().getId(); }
final NamespaceKey homeKey = new HomePath(HomeName.getUserHomePath(userName.getName())).toNamespaceKey(); final HomeConfig homeConfig = namespaceService.getHome(homeKey); namespaceService.deleteHome(homeKey, homeConfig.getTag()); } catch (NamespaceNotFoundException ex) { logger.debug("Home space is not found", ex);
/** 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"); } }
@PUT @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @Path("firstuser") public UserUI createUser(UserForm userForm) throws IOException, IllegalArgumentException, NamespaceException, DACUnauthorizedException, UserNotFoundException { synchronized (this) { if (dContext.getUserService().hasAnyUser()) { throw UserException.validationError().message(ERROR_MSG).build(logger); } final UserName userName = new UserName(userForm.getUserConfig().getUserName()); User newUser = SimpleUser.newBuilder(userForm.getUserConfig()).setCreatedAt(System.currentTimeMillis()).build(); newUser = userService.createUser(newUser, userForm.getPassword()); dContext.getNamespaceService(SystemUser.SYSTEM_USERNAME) .addOrUpdateHome( new HomePath(HomeName.getUserHomePath(userName.getName())).toNamespaceKey(), new HomeConfig().setCtime(System.currentTimeMillis()).setOwner(userName.getName()) ); return new UserUI(new UserResourcePath(userName), userName, newUser); } } }
public static void addHome(NamespaceService ns, String name) throws Exception { final HomeConfig homeConfig = new HomeConfig(); homeConfig.setOwner(name); ns.addOrUpdateHome(new NamespaceKey("@" + name), homeConfig); }
@Override public String getDescription() { return "Personal space for user " + homeConfig.getOwner(); } }
/** 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; }
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 static CatalogItem fromHomeConfig(HomeConfig homeConfig) { return new Builder() .setId(homeConfig.getId().getId()) .setPath(Lists.newArrayList(HomeName.getUserHomePath(homeConfig.getOwner()).toString())) .setTag(String.valueOf(homeConfig.getTag())) .setType(CatalogItemType.CONTAINER) .setContainerType(ContainerSubType.HOME) .build(); }
new HomeConfig().setCtime(System.currentTimeMillis()).setOwner(userConfig.getUserName()) );