Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,20 @@ public class OzoneKeyLocation {
* Offset of this key.
*/
private final long offset;

/**
* KeyOffset of this key.
*/
private final long keyOffset;
/**
* Constructs OzoneKeyLocation.
*/
public OzoneKeyLocation(long containerID, long localID,
long length, long offset) {
long length, long offset, long keyOffset) {
this.containerID = containerID;
this.localID = localID;
this.length = length;
this.offset = offset;
this.keyOffset = keyOffset;
}

/**
Expand Down Expand Up @@ -79,4 +83,11 @@ public long getOffset() {
return offset;
}

/**
* Returns the KeyOffset of this Key.
*/
public long getKeyOffset() {
return keyOffset;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
import org.apache.hadoop.ozone.om.helpers.OmDeleteKeys;
import org.apache.hadoop.ozone.om.helpers.OmKeyArgs;
import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo;
import org.apache.hadoop.ozone.om.helpers.OmMultipartInfo;
import org.apache.hadoop.ozone.om.helpers.OmMultipartUploadCompleteInfo;
import org.apache.hadoop.ozone.om.helpers.OmMultipartUploadCompleteList;
Expand Down Expand Up @@ -858,9 +859,15 @@ public OzoneKeyDetails getKeyDetails(
OmKeyInfo keyInfo = ozoneManagerClient.lookupKey(keyArgs);

List<OzoneKeyLocation> ozoneKeyLocations = new ArrayList<>();
keyInfo.getLatestVersionLocations().getBlocksLatestVersionOnly().forEach(
(a) -> ozoneKeyLocations.add(new OzoneKeyLocation(a.getContainerID(),
a.getLocalID(), a.getLength(), a.getOffset())));
long lastKeyOffset = 0L;
List<OmKeyLocationInfo> omKeyLocationInfos = keyInfo
.getLatestVersionLocations().getBlocksLatestVersionOnly();
for (OmKeyLocationInfo info: omKeyLocationInfos) {
ozoneKeyLocations.add(new OzoneKeyLocation(info.getContainerID(),
info.getLocalID(), info.getLength(), info.getOffset(),
lastKeyOffset));
lastKeyOffset += info.getLength();
}
return new OzoneKeyDetails(keyInfo.getVolumeName(), keyInfo.getBucketName(),
keyInfo.getKeyName(), keyInfo.getDataSize(), keyInfo.getCreationTime(),
keyInfo.getModificationTime(), ozoneKeyLocations, ReplicationType
Expand Down