use of org.apache.hadoop.hdds.protocol.proto.HddsProtos.BlockTokenSecretProto.AccessModeProto.READ in project ozone by apache.
the class KeyManagerImpl method listMultipartUploads.
@Override
public OmMultipartUploadList listMultipartUploads(String volumeName, String bucketName, String prefix) throws OMException {
Preconditions.checkNotNull(volumeName);
Preconditions.checkNotNull(bucketName);
metadataManager.getLock().acquireReadLock(BUCKET_LOCK, volumeName, bucketName);
try {
Set<String> multipartUploadKeys = metadataManager.getMultipartUploadKeys(volumeName, bucketName, prefix);
List<OmMultipartUpload> collect = multipartUploadKeys.stream().map(OmMultipartUpload::from).peek(upload -> {
try {
Table<String, OmMultipartKeyInfo> keyInfoTable = metadataManager.getMultipartInfoTable();
OmMultipartKeyInfo multipartKeyInfo = keyInfoTable.get(upload.getDbKey());
upload.setCreationTime(Instant.ofEpochMilli(multipartKeyInfo.getCreationTime()));
upload.setReplicationConfig(multipartKeyInfo.getReplicationConfig());
} catch (IOException e) {
LOG.warn("Open key entry for multipart upload record can be read {}", metadataManager.getOzoneKey(upload.getVolumeName(), upload.getBucketName(), upload.getKeyName()));
}
}).collect(Collectors.toList());
return new OmMultipartUploadList(collect);
} catch (IOException ex) {
LOG.error("List Multipart Uploads Failed: volume: " + volumeName + "bucket: " + bucketName + "prefix: " + prefix, ex);
throw new OMException(ex.getMessage(), ResultCodes.LIST_MULTIPART_UPLOAD_PARTS_FAILED);
} finally {
metadataManager.getLock().releaseReadLock(BUCKET_LOCK, volumeName, bucketName);
}
}
Aggregations