@Override public List<NamespaceMeta> list() throws Exception { return namespaceAdmin.list(); }
@GET @Path("/namespaces") public void getAllNamespaces(HttpRequest request, HttpResponder responder) throws Exception { // return keytab URI without version responder.sendJson(HttpResponseStatus.OK, GSON.toJson(namespaceAdmin.list().stream() .map(meta -> new NamespaceMeta.Builder(meta).buildWithoutKeytabURIVersion()) .collect(Collectors.toList()))); }
@GET @Path("/namespaces") public void getAllNamespaces(HttpRequest request, HttpResponder responder) throws Exception { // return keytab URI without version responder.sendJson(HttpResponseStatus.OK, GSON.toJson(namespaceAdmin.list().stream() .map(meta -> new NamespaceMeta.Builder(meta).buildWithoutKeytabURIVersion()) .collect(Collectors.toList()))); }
@Override public void run() { try { List<NamespaceMeta> list = namespaceAdmin.list(); for (NamespaceMeta namespaceMeta : list) { Collection<DatasetSpecificationSummary> specs = datasetFramework.getInstances(namespaceMeta.getNamespaceId(), PROPERTIES); if (specs.isEmpty()) { // avoid fetching run records continue; } Set<String> activeRuns = getActiveRuns(namespaceMeta.getNamespaceId()); for (DatasetSpecificationSummary spec : specs) { deleteLocalDataset(namespaceMeta.getName(), spec.getName(), activeRuns, spec.getProperties()); } } } catch (Throwable t) { LOG.warn("Failed to delete the local datasets.", t); } }
@Override public void run() { try { List<NamespaceMeta> list = namespaceAdmin.list(); for (NamespaceMeta namespaceMeta : list) { Collection<DatasetSpecificationSummary> specs = datasetFramework.getInstances(namespaceMeta.getNamespaceId(), PROPERTIES); if (specs.isEmpty()) { // avoid fetching run records continue; } Set<String> activeRuns = getActiveRuns(namespaceMeta.getNamespaceId()); for (DatasetSpecificationSummary spec : specs) { deleteLocalDataset(namespaceMeta.getName(), spec.getName(), activeRuns, spec.getProperties()); } } } catch (Throwable t) { LOG.warn("Failed to delete the local datasets.", t); } }
@After public void afterTest() throws Exception { for (NamespaceMeta meta : namespaceAdmin.list()) { deleteNamespace(meta.getNamespaceId()); } }
@Test public void testNamespaces() throws Exception { NamespaceAdmin namespaceAdmin = getNamespaceAdmin(); Authorizer authorizer = getAuthorizer(); try { namespaceAdmin.create(AUTH_NAMESPACE_META); Assert.fail("Namespace create should have failed because alice is not authorized on " + AUTH_NAMESPACE); } catch (UnauthorizedException expected) { // expected } createAuthNamespace(); Assert.assertTrue(namespaceAdmin.list().contains(AUTH_NAMESPACE_META)); namespaceAdmin.get(AUTH_NAMESPACE); // revoke privileges revokeAndAssertSuccess(AUTH_NAMESPACE); try { Assert.assertTrue(namespaceAdmin.list().isEmpty()); namespaceAdmin.exists(AUTH_NAMESPACE); Assert.fail("Namespace existence check should fail since the privilege of alice has been revoked"); } catch (UnauthorizedException expected) { // expected } // grant privileges again grantAndAssertSuccess(AUTH_NAMESPACE, ALICE, ImmutableSet.of(Action.ADMIN)); namespaceAdmin.exists(AUTH_NAMESPACE); Assert.assertEquals(ImmutableSet.of(new Privilege(AUTH_NAMESPACE, Action.ADMIN)), authorizer.listPrivileges(ALICE)); NamespaceMeta updated = new NamespaceMeta.Builder(AUTH_NAMESPACE_META).setDescription("new desc").build(); namespaceAdmin.updateProperties(AUTH_NAMESPACE, updated); Assert.assertEquals(updated, namespaceAdmin.get(AUTH_NAMESPACE)); }
List<NamespaceMeta> namespaces = namespaceClient.list(); Assert.assertEquals(3, namespaces.size()); Set<NamespaceMeta> expectedNamespaces = ImmutableSet.of(NamespaceMeta.DEFAULT, TEST_NAMESPACE_META1,
NamespaceMeta.Builder builder = new NamespaceMeta.Builder(); int initialCount = namespaceAdmin.list().size(); Assert.assertEquals(initialCount, namespaceAdmin.list().size()); Assert.assertFalse(namespaceAdmin.exists(new NamespaceId(namespace))); Assert.assertEquals(initialCount, namespaceAdmin.list().size()); Assert.assertFalse(namespaceAdmin.exists(namespaceId)); Assert.assertEquals(initialCount + 1, namespaceAdmin.list().size()); Assert.assertTrue(namespaceAdmin.exists(namespaceId)); Assert.assertEquals(initialCount + 1, namespaceAdmin.list().size()); Assert.assertTrue(namespaceAdmin.exists(namespaceId));