Skip to content

Commit

Permalink
CLOUDSTACK-10060: ListUsage API always displays the Virtual size as '…
Browse files Browse the repository at this point in the history
…0' for Usage type=9 (snapshot) (apache#2257)

Bug Description:
In the listUsage API, the Virtual Size of Snapshot is always displayed as '0'.

Root Cause:
In case of snapshots, the usage is accounted for depending on the value of the global parameter, 'usage.snapshot.virtualsize.select'. If set to 'true', the usage calculation is done based on the Virtual Size, and if set to false, it is done based on the Physical size. In the Usage API, this value, (i.e. virtual or physical) is displayed as 'Size' field correctly, but the field 'VirtualSize' is always displayed as 0. This is misleading.

Expected Output:
Since this is a Usage API, ideally only that size should be displayed which is used for billing, depending on the value of 'usage.snapshot.virtualsize.select'.
There is another API - the ListSnapshot API that displays both, the physical as well as Virtual size and can be used to know both the sizes.

Fix Implemented:
Skipped showing the 'VirtualSize' Field for type=snapshot
  • Loading branch information
PranaliM authored and rohityadavcloud committed Oct 12, 2017
1 parent c3ed1b3 commit 189b0e4
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions usage/src/com/cloud/usage/parser/StorageUsageParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,11 @@ private static void createUsageRecord(long zoneId, int type, long runningTime, D
usageDesc += "Snapshot ";
break;
}
// Create the usage record
usageDesc += "Id:" + storageId + " Size:" + size + "VirtualSize:" + virtualSize;
//Create the usage record
usageDesc += "Id:" + storageId + " Size:" + size;
if (type != StorageTypes.SNAPSHOT) {
usageDesc += " VirtualSize:" + virtualSize;
}

//ToDo: get zone id
UsageVO usageRecord =
Expand Down

0 comments on commit 189b0e4

Please sign in to comment.