Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,7 @@ private OzoneConsts() {
public static final String KEY = "key";
public static final String SRC_KEY = "srcKey";
public static final String DST_KEY = "dstKey";
public static final String USED_BYTES = "usedBytes";
public static final String QUOTA_IN_BYTES = "quotaInBytes";
public static final String QUOTA_IN_COUNTS = "quotaInCounts";
public static final String OBJECT_ID = "objectID";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ public class OzoneVolume extends WithMetadata {

private int listCacheSize;

private long usedBytes;

/**
* Constructs OzoneVolume instance.
* @param conf Configuration object.
Expand Down Expand Up @@ -131,6 +133,17 @@ public OzoneVolume(ConfigurationSource conf, ClientProtocol proxy,
this.modificationTime = Instant.ofEpochMilli(modificationTime);
}

@SuppressWarnings("parameternumber")
Comment thread
xiaoyuyao marked this conversation as resolved.
Outdated
public OzoneVolume(ConfigurationSource conf, ClientProtocol proxy,
String name, String admin, String owner, long quotaInBytes,
long quotaInCounts, long creationTime, long modificationTime,
List<OzoneAcl> acls, Map<String, String> metadata,
long usedBytes) {
this(conf, proxy, name, admin, owner, quotaInBytes, quotaInCounts,
creationTime, acls, metadata);
this.usedBytes = usedBytes;
}

@SuppressWarnings("parameternumber")
public OzoneVolume(ConfigurationSource conf, ClientProtocol proxy,
String name, String admin, String owner, long quotaInBytes,
Expand Down Expand Up @@ -254,6 +267,10 @@ public List<OzoneAcl> getAcls() {
return acls;
}

public long getUsedBytes() {
return usedBytes;
}

/**
* Sets/Changes the owner of this Volume.
* @param userName new owner
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,8 @@ public OzoneVolume getVolumeDetails(String volumeName)
volume.getModificationTime(),
volume.getAclMap().ozoneAclGetProtobuf().stream().
map(OzoneAcl::fromProtobuf).collect(Collectors.toList()),
volume.getMetadata());
volume.getMetadata(),
volume.getUsedBytes().sum());
}

@Override
Expand Down Expand Up @@ -420,7 +421,8 @@ public List<OzoneVolume> listVolumes(String user, String volumePrefix,
volume.getModificationTime(),
volume.getAclMap().ozoneAclGetProtobuf().stream().
map(OzoneAcl::fromProtobuf).collect(Collectors.toList()),
volume.getMetadata()))
volume.getMetadata(),
volume.getUsedBytes().sum()))
.collect(Collectors.toList());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.atomic.LongAdder;

import org.apache.hadoop.ozone.OzoneAcl;
import org.apache.hadoop.ozone.OzoneConsts;
Expand All @@ -46,6 +47,7 @@ public final class OmVolumeArgs extends WithObjectID implements Auditable {
private long quotaInBytes;
private long quotaInCounts;
private final OmOzoneAclMap aclMap;
private final LongAdder usedBytes = new LongAdder();

/**
* Private constructor, constructed via builder.
Expand All @@ -55,6 +57,7 @@ public final class OmVolumeArgs extends WithObjectID implements Auditable {
* @param quotaInBytes - Volume Quota in bytes.
* @param quotaInCounts - Volume Quota in counts.
* @param metadata - metadata map for custom key/value data.
* @param usedBytes - Volume Quota Usage in bytes.
* @param aclMap - User to access rights map.
* @param creationTime - Volume creation time.
* @param objectID - ID of this object.
Expand All @@ -65,14 +68,15 @@ public final class OmVolumeArgs extends WithObjectID implements Auditable {
"builder."})
private OmVolumeArgs(String adminName, String ownerName, String volume,
long quotaInBytes, long quotaInCounts, Map<String, String> metadata,
OmOzoneAclMap aclMap, long creationTime, long modificationTime,
long objectID, long updateID) {
long usedBytes, OmOzoneAclMap aclMap, long creationTime,
long modificationTime, long objectID, long updateID) {
this.adminName = adminName;
this.ownerName = ownerName;
this.volume = volume;
this.quotaInBytes = quotaInBytes;
this.quotaInCounts = quotaInCounts;
this.metadata = metadata;
this.usedBytes.add(usedBytes);
this.aclMap = aclMap;
this.creationTime = creationTime;
this.modificationTime = modificationTime;
Expand Down Expand Up @@ -172,6 +176,11 @@ public long getQuotaInCounts() {
public OmOzoneAclMap getAclMap() {
return aclMap;
}

public LongAdder getUsedBytes() {
return usedBytes;
}

/**
* Returns new builder class that builds a OmVolumeArgs.
*
Expand All @@ -195,6 +204,8 @@ public Map<String, String> toAuditMap() {
String.valueOf(this.quotaInCounts));
auditMap.put(OzoneConsts.OBJECT_ID, String.valueOf(this.getObjectID()));
auditMap.put(OzoneConsts.UPDATE_ID, String.valueOf(this.getUpdateID()));
auditMap.put(OzoneConsts.USED_BYTES,
String.valueOf(this.usedBytes));
return auditMap;
}

Expand Down Expand Up @@ -230,6 +241,7 @@ public static class Builder {
private OmOzoneAclMap aclMap;
private long objectID;
private long updateID;
private long usedBytes;

/**
* Sets the Object ID for this Object.
Expand Down Expand Up @@ -307,6 +319,11 @@ public Builder addAllMetadata(Map<String, String> additionalMetaData) {
return this;
}

public Builder setUsedBytes(long quotaUsage) {
this.usedBytes = quotaUsage;
return this;
}

public Builder addOzoneAcls(OzoneAclInfo acl) throws IOException {
aclMap.addAcl(acl);
return this;
Expand All @@ -321,8 +338,8 @@ public OmVolumeArgs build() {
Preconditions.checkNotNull(ownerName);
Preconditions.checkNotNull(volume);
return new OmVolumeArgs(adminName, ownerName, volume, quotaInBytes,
quotaInCounts, metadata, aclMap, creationTime, modificationTime,
objectID, updateID);
quotaInCounts, metadata, usedBytes, aclMap, creationTime,
modificationTime, objectID, updateID);
}

}
Expand All @@ -342,6 +359,7 @@ public VolumeInfo getProtobuf() {
.setModificationTime(modificationTime)
.setObjectID(objectID)
.setUpdateID(updateID)
.setUsedBytes(usedBytes.sum())
.build();
}

Expand All @@ -356,6 +374,7 @@ public static OmVolumeArgs getFromProtobuf(VolumeInfo volInfo)
volInfo.getQuotaInBytes(),
volInfo.getQuotaInCounts(),
KeyValueUtil.getFromProtobuf(volInfo.getMetadataList()),
volInfo.getUsedBytes(),
aclMap,
volInfo.getCreationTime(),
volInfo.getModificationTime(),
Expand All @@ -370,7 +389,8 @@ public String getObjectInfo() {
", admin='" + adminName + '\'' +
", owner='" + ownerName + '\'' +
", creationTime='" + creationTime + '\'' +
", quota='" + quotaInBytes + '\'' +
", quotaInBytes='" + quotaInBytes + '\'' +
", usedBytes='" + usedBytes.sum() + '\'' +
'}';
}

Expand All @@ -386,7 +406,7 @@ public OmVolumeArgs copyObject() {
OmOzoneAclMap cloneAclMap = aclMap.copyObject();

return new OmVolumeArgs(adminName, ownerName, volume, quotaInBytes,
quotaInCounts, cloneMetadata, cloneAclMap, creationTime,
modificationTime, objectID, updateID);
quotaInCounts, cloneMetadata, usedBytes.sum(), cloneAclMap,
creationTime, modificationTime, objectID, updateID);
}
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should getObjectInfo also be changed?

Loading