private void testCrossNSSystemDatasetAccessWithAuthMapReduce(MapReduceManager mrManager) throws Exception { addDatasetInstance(NamespaceId.SYSTEM.dataset("table1"), "keyValueTable").create(); addDatasetInstance(NamespaceId.SYSTEM.dataset("table2"), "keyValueTable").create(); NamespaceMeta otherNS = new NamespaceMeta.Builder().setName("otherNS").build(); NamespaceId otherNsId = otherNS.getNamespaceId(); addDatasetInstance(datasetId, "keyValueTable").create(); addDummyData(NamespaceId.SYSTEM, "table1");
private void testSystemDatasetAccessFromService(ServiceManager serviceManager) throws Exception { addDatasetInstance(NamespaceId.SYSTEM.dataset("store"), "keyValueTable"); // give bob write permission on the dataset grantAndAssertSuccess(NamespaceId.SYSTEM.dataset("store"), BOB, EnumSet.of(Action.WRITE)); // switch to BOB SecurityRequestContext.setUserId(BOB.getName()); Map<String, String> args = ImmutableMap.of( CrossNsDatasetAccessApp.OUTPUT_DATASET_NS, NamespaceId.SYSTEM.getNamespace(), CrossNsDatasetAccessApp.OUTPUT_DATASET_NAME, "store" ); // Start the Service as BOB serviceManager.start(args); // Try to write data, it should fail as BOB don't have the permission to get system dataset URL url = new URL(serviceManager.getServiceURL(5, TimeUnit.SECONDS), "write/data"); HttpResponse response = HttpRequests.execute(HttpRequest.put(url).build()); Assert.assertEquals(500, response.getResponseCode()); Assert.assertTrue(response.getResponseBodyAsString().contains("Cannot access dataset store in system namespace")); serviceManager.stop(); serviceManager.waitForStopped(10, TimeUnit.SECONDS); // switch to back to ALICE SecurityRequestContext.setUserId(ALICE.getName()); // cleanup deleteDatasetInstance(NamespaceId.SYSTEM.dataset("store")); }
private void testCrossNSSystemDatasetAccessWithAuthSpark(SparkManager sparkManager) throws Exception { addDatasetInstance(NamespaceId.SYSTEM.dataset("table1"), "keyValueTable").create(); addDatasetInstance(NamespaceId.SYSTEM.dataset("table2"), "keyValueTable").create(); NamespaceMeta otherNS = new NamespaceMeta.Builder().setName("otherNS").build(); NamespaceId otherNSId = otherNS.getNamespaceId(); addDatasetInstance(otherTableId, "keyValueTable").create(); addDummyData(NamespaceId.SYSTEM, "table1");
addDatasetInstance(table1Id, "keyValueTable").create(); addDatasetInstance(table2Id, "keyValueTable").create();
addDatasetInstance(inputTableId, "keyValueTable").create(); addDatasetInstance(outputTableId, "keyValueTable").create();
); getNamespaceAdmin().create(outputDatasetNS); addDatasetInstance(datasetId, "keyValueTable");