public void setFieldValue(_Fields field, java.lang.Object value) { switch (field) { case ACL: if (value == null) { unset_acl(); } else { set_acl((java.util.List<AccessControl>)value); } break; case REPLICATION_FACTOR: if (value == null) { unset_replication_factor(); } else { set_replication_factor((java.lang.Integer)value); } break; } }
private static void createCli(String[] args) throws Exception { Map<String, Object> cl = CLI.opt("f", "file", null, CLI.AS_STRING) .opt("a", "acl", Collections.emptyList(), new AsAclParser()) .opt("r", "replication-factor", -1, CLI.AS_INT) .arg("key", CLI.FIRST_WINS) .parse(args); final String key = (String) cl.get("key"); final String file = (String) cl.get("f"); final List<AccessControl> acl = (List<AccessControl>) cl.get("a"); final Integer replicationFactor = (Integer) cl.get("r"); SettableBlobMeta meta = new SettableBlobMeta(acl); meta.set_replication_factor(replicationFactor); BlobStore.validateKey(key); LOG.info("Creating {} with ACL {}", key, generateAccessControlsInfo(acl)); if (StringUtils.isNotEmpty(file)) { try (BufferedInputStream f = new BufferedInputStream(new FileInputStream(file))) { BlobStoreSupport.createBlobFromStream(key, f, meta); } } else { BlobStoreSupport.createBlobFromStream(key, System.in, meta); } LOG.info("Successfully created {}", key); }
@Override public int updateBlobReplication(String key, int replication, Subject who) throws AuthorizationException, KeyNotFoundException { who = checkAndGetSubject(who); validateKey(key); SettableBlobMeta meta = getStoredBlobMeta(key); meta.set_replication_factor(replication); aclHandler.hasAnyPermissions(meta.get_acl(), WRITE | ADMIN, who, key); try { writeMetadata(key, meta); return hbs.updateBlobReplication(DATA_PREFIX + key, replication); } catch (IOException exp) { throw new RuntimeException(exp); } }
@Override public void setBlobMeta(String key, SettableBlobMeta meta, Subject who) throws AuthorizationException, KeyNotFoundException { if (meta.get_replication_factor() <= 0) { meta.set_replication_factor((int)conf.get(Config.STORM_BLOBSTORE_REPLICATION_FACTOR)); } who = checkAndGetSubject(who); validateKey(key); aclHandler.normalizeSettableBlobMeta(key, meta, who, ADMIN); BlobStoreAclHandler.validateSettableACLs(key, meta.get_acl()); SettableBlobMeta orig = getStoredBlobMeta(key); aclHandler.hasPermissions(orig.get_acl(), ADMIN, who, key); BlobStoreFileOutputStream mOut = null; writeMetadata(key, meta); }
@Test public void testGetFileLength() throws Exception { Map<String, Object> conf = new HashMap<>(); String validKey = "validkeyBasic"; String testString = "testingblob"; try (TestHdfsBlobStoreImpl hbs = new TestHdfsBlobStoreImpl(blobDir, conf, DFS_CLUSTER_RULE.getHadoopConf())) { BlobStoreFile pfile = hbs.write(validKey, false); // Adding metadata to avoid null pointer exception SettableBlobMeta meta = new SettableBlobMeta(); meta.set_replication_factor(1); pfile.setMetadata(meta); try (OutputStream ios = pfile.getOutputStream()) { ios.write(testString.getBytes(StandardCharsets.UTF_8)); } assertEquals(testString.getBytes(StandardCharsets.UTF_8).length, pfile.getFileLength()); } } }
throws AuthorizationException, KeyAlreadyExistsException { if (meta.get_replication_factor() <= 0) { meta.set_replication_factor((int)conf.get(Config.STORM_BLOBSTORE_REPLICATION_FACTOR));
meta.set_replication_factor(1); pfile.setMetadata(meta); try (OutputStream ios = pfile.getOutputStream()) {
public void testReplication(String path, BlobStore store) throws Exception { SettableBlobMeta metadata = new SettableBlobMeta(BlobStoreAclHandler.WORLD_EVERYTHING); metadata.set_replication_factor(4); try (AtomicOutputStream out = store.createBlob("test", metadata, null)) { out.write(1); metadata.set_replication_factor(4); try (AtomicOutputStream out = store.createBlob("test", metadata, admin)) { out.write(1); metadata.set_replication_factor(4); try (AtomicOutputStream out = store.createBlob("test", metadata, supervisor)) { out.write(1); metadata.set_replication_factor(4); try (AtomicOutputStream out = store.createBlob("test", metadata, adminsGroupsUser)) { out.write(1); List<AccessControl> acl = Arrays.asList(writeAccess, adminAccess); metadata = new SettableBlobMeta(acl); metadata.set_replication_factor(4); try (AtomicOutputStream out = store.createBlob("test", metadata, who)) { out.write(1);
public void setFieldValue(_Fields field, Object value) { switch (field) { case ACL: if (value == null) { unset_acl(); } else { set_acl((List<AccessControl>)value); } break; case REPLICATION_FACTOR: if (value == null) { unset_replication_factor(); } else { set_replication_factor((Integer)value); } break; } }
@Override public int updateBlobReplication(String key, int replication, Subject who) throws AuthorizationException, KeyNotFoundException { who = checkAndGetSubject(who); validateKey(key); SettableBlobMeta meta = getStoredBlobMeta(key); meta.set_replication_factor(replication); aclHandler.hasAnyPermissions(meta.get_acl(), WRITE | ADMIN, who, key); try { writeMetadata(key, meta); return hbs.updateBlobReplication(DATA_PREFIX + key, replication); } catch (IOException exp) { throw new RuntimeException(exp); } }
@Override public void setBlobMeta(String key, SettableBlobMeta meta, Subject who) throws AuthorizationException, KeyNotFoundException { if (meta.get_replication_factor() <= 0) { meta.set_replication_factor((int)conf.get(Config.STORM_BLOBSTORE_REPLICATION_FACTOR)); } who = checkAndGetSubject(who); validateKey(key); aclHandler.normalizeSettableBlobMeta(key, meta, who, ADMIN); BlobStoreAclHandler.validateSettableACLs(key, meta.get_acl()); SettableBlobMeta orig = getStoredBlobMeta(key); aclHandler.hasPermissions(orig.get_acl(), ADMIN, who, key); BlobStoreFileOutputStream mOut = null; writeMetadata(key, meta); }
throws AuthorizationException, KeyAlreadyExistsException { if (meta.get_replication_factor() <= 0) { meta.set_replication_factor((int)conf.get(Config.STORM_BLOBSTORE_REPLICATION_FACTOR));